.NET TIPS

[Azure]Windows Azureアプリケーションをアップグレードするには?[3.5、4、C#、VB]

山田 祥寛
2010/07/01

 作成して配置済みのWindows Azureアプリケーション(以降、Azureアプリケーション)をアップグレード(=更新)する方法には、VIP Swap UpgradeとIn-Place Upgradeという2つのアプローチがあり、それぞれAzure管理者ポータルから行える。本稿では、それぞれの手順について解説するものだ。

 なお、本稿の手順を行うには、「TIPS:[Azure]Windows AzureアプリケーションをVisual Studioからデプロイするには?」の手順にのっとって、ホスティング・サービスを作成し、アプリケーションをデプロイしておく必要がある。

●VIP Swap Upgrade

 VIP Swap Upgradeとは、Staging(=テスト)環境に新しいバージョン(のAzureアプリケーション)を配置したうえで、すでに稼働しているProduction(=本番)環境と差し替えるアップグレード方法である。Staging/Production環境の仮想IPアドレス(=VIP)を入れ替える(=Swap)ことから、このように呼ばれている。

 後述するIn-Place Upgradeは、アプリケーションの構造に変化がない場合にしか利用できないので、構造を変化させた場合にはVIP Swap Upgradeを利用する必要がある。ただし、エンドポイントに変更があった場合には、VIP Swap Upgradeも利用できず、その場合は既存のアプリケーションを削除したうえで、再デプロイする必要がある。

 VIP Swap Upgradeを行う手順は、ほとんど前述のTIPSで作成したデプロイの手順と同様である。Production環境に現バージョンのアプリケーションが稼働している状態で、Staging環境にアップグレードしたAzureアプリケーションを配置する(配置の方法はVisual Studioからでもポータルサイトからでも構わない)。

[Manage Project]画面

 Azureアプリケーションを配置/起動できたら、後は[Manage Project]画面中央の双方向矢印をクリックするだけだ。

Are you sure you want to swap with the production deployment?
(Production環境と入れ替えてもよいか?)

という確認ダイアログが表示されるので、[OK]ボタンをクリックする。

 VIPの入れ替えが発生し、Staging環境のバージョンがProduction環境に適用されれば成功である。Staging環境に移った旧バージョンは不要であれば削除しておくこと*1

*1 削除に当たっては、まず[Suspend]ボタンでアプリケーションを停止しておく必要がある。

●In-Place Upgrade

 In-Place Upgradeは、サービスに含まれる複数、または単一のロールを差し替えるためのアップグレード方法だ。上記のVIP Swap Upgradeと違って、ロール単位の差し替えが行えるが、半面、バージョン・アップの前後でアプリケーションの構造に変化がある場合には利用できないという制約もある(その場合は、VIP Swap Upgradeを利用のこと)。構造の変化とは、例えばロールの増減や設定項目の追加/削除のようなケースである。

 In-Place Upgradeを行うには、[Manage Project]画面から対象のスロット(Production|Staging)から[Upgrade]ボタンをクリックする。

[Upgrade Deployment]画面

 [Upgrade Deployment]画面が表示されるので、下記の表のように必要な情報を入力してほしい。

項目 概要
Upgrade Mode 自動更新か、手動更新か
Application Package アプリケーション・パッケージのパス
Configuration Settings サービス設定ファイルのパス
Operating System Settings ゲストOSのバージョン設定
Service Deployment Name デプロイを識別するための名前
Service Upgrade 更新対象のロール(すべて、または指定されたロール)
In-Place Upgradeの設定

 もっとも、設定内容のほとんどは新規デプロイのそれと共通しているので、さほど戸惑うところはないだろう。[Service Upgrade]で[No, I only want to upgrade the selected role〜](選択されたロールのみアップグレード)を選択した場合には、アップグレードする対象のロールを指定する必要がある。

 [Deploy]ボタンをクリックすると、アップグレードが開始される。以下は、[Upgrade Mode]でManual Upgrade(=手動更新)を選択した場合の結果である。

In-Place UpgradeをManual(手動)モードで実行した場合

 In-Place Upradeでは、Azureアプリケーションはアップグレード・ドメイン(以降、ドメイン)単位でアップグレードが実施される(手動更新では、このドメインの単位に確認しながら更新が進められる)。ドメインとは、アップグレードを行うためのインスタンスのグループ、と考えていただければよいだろう。Windows Azureではドメイン単位で順に更新を行うことで、ほかのインスタンスを稼働させたまま、アップグレード作業を行うことができる*2

*2 ただし、ロールが複数のインスタンスを持っている場合に限る。ロールが1つしかインスタンスを持たない場合は、アップグレード中はオフライン状態となる。

 以上、本稿ではWindows Azureにおける2種類のアップグレードについて解説した。VIP Swap Upgrade、もしくはIn-Place Upgradeというアプローチを利用することで、Windows Azureでは停止時間を最小限に抑えながら、アプリケーションのアップグレードを行えることがお分かりいただけたと思う。End of Article

利用可能バージョン:.NET Framework 3.5
利用可能バージョン:.NET Framework 4
カテゴリ:Azure 処理対象: Windows Azure
関連TIPS:[Azure]Windows AzureアプリケーションをVisual Studioからデプロイするには?

この記事と関連性の高い別の.NET TIPS
[Azure]Windows Azureアプリケーションをポータル・サイトからデプロイするには?
[Azure]Windows AzureアプリケーションをVisual Studioからデプロイするには?
[Azure]Windows Azureアプリケーションを開発するには?(環境設定)
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間