インプレース アップグレードの実行

Windows Azure Platform

ステージング展開スロットまたは運用展開スロットで実行中のロールに対してインプレース アップグレードを実行できるのは、新しいサービス モデルがアップグレード対象のサービス モデルと同じ場合に限ります。

Windows Azure では、ロールのインスタンスはアップグレード ドメインと呼ばれる仮想グループにまとめられます。サービス内の 1 つ以上のロールをインプレースでアップグレードすると、ロール インスタンスはセットとして、それが属するアップグレード ドメインごとにアップグレードされます。Windows Azure は一度に 1 つのドメインをアップグレードします。つまり、アップグレード ドメイン内で実行中のインスタンスを停止し、停止したインスタンスをアップグレードし、アップグレードしたインスタンスを元のオンラインに復帰させてから、次のドメインに移ってアップグレードを続行する、といった具合にです。現在のアップグレード ドメイン内で実行中のインスタンスだけを停止することで、実行中のサービスに対する影響を可能な限り抑えてアップグレードを実行します。

注意

サービスからロールを追加または削除する場合やサービス定義を変更する場合は、インプレース アップグレードは実行できません。サービスの定義をアップグレードする場合は、代わりに VIP スワップ アップグレードを実行する必要があります。詳細については、「仮想 IP スワップ アップグレードの実行」を参照してください。

ロールをインプレースでアップグレードするには、サービスでロールのインスタンスを 2 つ以上定義している必要があります。サービスで定義されているロールのインスタンスが 1 つしかない場合、そのロールはアップグレードの間オフラインになります。

 

複数のアップグレード ドメインへのロールの分配

Windows Azure は、設定されたアップグレード ドメイン数にわたって、ロールのインスタンスを同じ数ずつ分配します。サービスのアップグレード ドメイン数は、サービス定義ファイルで指定できます。アップグレード ドメインの既定の数は 5 です。サービス定義ファイルの変更の詳細については、「サービス定義スキーマ」を参照してください。

たとえば、ロールがインスタンスを 10 個持っている場合、既定では、各アップグレード ドメインに含まれるインスタンス数は 2 個になります。ロールがインスタンスを 14 個持っている場合、4 つのアップグレード ドメインはそれぞれ 3 個のインスタンスを、5 番目のアップグレード ドメインは 2 個のインスタンスを持ちます。

アップグレード ドメインは、0 から始まるインデックスで識別されます。具体的には、最初のアップグレード ドメインの ID は 0、2 番目のアップグレード ドメインの ID は 1、のようになります。

次の図に、サービスがアップグレード ドメインを 2 つ定義した場合、サービスを構成する 2 つのロールがどのように分配されるかを示します。サービスは、Web ロールのインスタンスを 8 個とワーカー ロールのインスタンスを 9 個実行しています。

アップグレード ドメインへの分配

 

注意

Windows Azure は、複数のアップグレード ドメインにインスタンスをどのように割り当てるかを制御します。どのロールをどのドメインに割り当てるかを指定することはできません。

アップグレードの処理手順

サービス内のすべてのロールをアップグレードするか単一のロールをアップグレードするかを選択できます。どちらの場合も、最初のアップグレード ドメインに属するアップグレード対象の各ロールのすべてのインスタンスが停止され、アップグレードされて、元のオンラインに復帰します。すべてのインスタンスがオンラインに復帰したら、2 番目のアップグレード ドメインのインスタンスが停止され、アップグレードされて、オンラインに復帰します。

次の図に、サービスのすべてのロールをアップグレードする場合にアップグレードが処理される様子を示します。

サービスのアップグレード

 

また、次の図に、単一のロールだけをアップグレードする場合にアップグレードが処理される様子を示します。

ロールのアップロード

デベロッパー ポータルを使用したインプレース アップグレード

デベロッパー ポータルを使用してインプレース アップグレードを実行するには、ホスト サービスの [Summary] ページを表示し、次に、アップグレードする展開 (ステージングまたは運用) の [Upgrade…] ボタンをクリックします。[Upgrade] ページには、以下のオプションがあります。

  • Upgrade Mode: [Automatic] を選択すると、すべてのアップグレード ドメインがアップグレードされます。[Manual] を選択すると、一度に 1 つのドメインがアップグレードされます。
  • Application Package: ローカル ファイル システムからアプリケーション パッケージをアップロードするか、BLOB サービスに格納されたアプリケーション パッケージをポイントすることができます。
  • Configuration Settings: ローカル ファイル システムから新しい構成ファイルをアップロードするか、BLOB サービスに格納された構成ファイルをポイントすることができます。
  • Service Deployment Name: 更新される展開の名前を指定します。
  • Service Upgrade: サービス全体をアップグレードするか、サービス内の単一のロールだけをアップグレードするかを指定します。

Service Management API を使用したインプレース アップグレード

Service Management API を使用してサービスのロールをアップグレードする場合は、まずサービス パッケージを Windows Azure BLOB サービスにアップロードする必要があります。アップグレードに使用するパッケージの BLOB サービスのアドレスを指定します。BLOB サービスの詳細については、「BLOB サービス API」を参照してください。

Service Management API には、ロールをアップグレードするための REST 操作が 2 つ用意されています。展開のアップグレードを呼び出して、アップグレードを開始します。この操作で次のデータを指定します。

  • アップグレードするサービス展開の識別子、または展開スロット (ステージングまたは運用)。
  • アップグレード モード。automatic または manual のいずれか。automatic を指定した場合、それ以降の入力を行わなくてもアップグレードは続行します。manual を指定した場合は、アップグレード ドメインごとにアップグレード ドメインのウォーク操作を呼び出してアップグレード プロセスを開始する必要があります。
  • 新しいバージョンのサービスを含むパッケージのアドレス。パッケージは、あらかじめ Windows Azure BLOB サービスにアップロードされている必要があります。
  • Base64 でエンコードされた、新しいバージョンのサービスのサービス構成ファイル。
  • 単一のロールをアップグレードする場合は、アップグレードするロールの名前。このパラメーターは、サービスのすべてのロールをアップグレードする場合は省略できます。

アップグレード モードで manual を指定している場合は、各ドメインをアップグレードするには、アップグレード ドメインのウォーク操作も呼び出す必要があります。この操作は、指定されたアップグレード ドメイン内のロールのインスタンスを停止し、停止したロールのインスタンスをアップグレードし、アップグレードしたロールのインスタンスを再開します。

ロールを完全にアップグレードするには、各アップグレード ドメインについて 1 回ずつ、合わせて 2 回、アップグレード ドメインのウォークを呼び出す必要があります。ID が 0 のアップグレード ドメインから開始して順番に、アップグレード ドメインをウォークする必要があります。アップグレード ドメインを順番にウォークしない場合は、エラーが返されます。

参照

概念

仮想 IP スワップ アップグレードの実行

その他の資料

Windows Azure Service Management REST API リファレンス

ページのトップへ