AWS CloudFormation と ArcGIS Server での高可用性

AWS(Amazon Web Services)CloudFormation の機能を使用すると、AWS で ArcGIS Server を操作する際に特定の高可用性を得ることができます。

このアプローチの必要性を理解するには、バックグラウンドとなる知識が多少必要です。通常、AWS で ArcGIS Server の使用を開始するには、ArcGIS Server Cloud Builder を使用します。このとき、簡単なウィザードを使用して、Amazon EC2(Elastic Compute Cloud)内に ArcGIS Server サイトを設定することができます。ウィザードによって出力されるサイトでは、多数のコンピュータ間で互いにジョブを分散し、ArcGIS Server 10.1 および 10.2 で採用されているピアツーピア アーキテクチャを最大限に活用することができます。また、Cloud Builder は、同じパターンに従って別のサイトを起動するのに使用できるテンプレートだけでなく、サイトのバックアップを作成するためのフレームワークも提供します。

次の図に、Cloud Builder によって作成されるアーキテクチャを示します。

Cloud Builder によって起動される ArcGIS Server アーキテクチャ

Cloud Builder で作成したサイトには、さまざまな利点がありますが、高可用性という点ではいくつか短所があります。構成ストアを実行する GIS サーバ インスタンスが失われると、サイトは使用できなくなります。また、バックアップの復元には 30 分以上かかることがあり、組織によってはこのダウンタイムは許容できない場合もあります。

このような問題を回避するための別の方法として、下記に示したサイロ アーキテクチャがあります。このアーキテクチャでは、同じではあるが独立している多くの ArcGIS Server サイトが ELB(Elastic Load Balancer)の下で接続されます。このアーキテクチャが AWS 上で使用されていたのは、10.1 より前のバージョンの ArcGIS Server の場合のみでしたが、10.1 および 10.2 でも使用できます。ただし、管理の簡単さやサーバ間の大規模ジョブの分散機能(キャッシュ タイルの構築など)は低下します。

サイロ アーキテクチャの主な利点の 1 つは、GIS サーバ インスタンスを失った場合でも、ArcGIS Server の実行を継続できることです。

CloudFormation で起動できる ArcGIS Server のサイロ アーキテクチャのタイプ

サイロ アーキテクチャは、Cloud Builder では構築できません。AWS Management Console または API を使用して手動で作成する必要があります。一方で、Amazon CloudFormation の機能を使用すると、サイロ アーキテクチャの起動と管理がこれまでより大幅に簡単になります。CloudFormation を使用すると、サイト内で最小数のコンピュータ数を常に維持することができ、コンピュータの 1 つが使用できなくなったときにシームレスな復旧が可能になります。

次に、CloudFormation を使用してサイロ アーキテクチャを設定する方法について説明します。

CloudFormation を使用したサイロ アーキテクチャの構築

Amazon CloudFormation は、使用する Amazon Web Services のアーキテクチャを定義するのに役立つサービスです。これは、コードとしてのインフラストラクチャの例です。つまり、クラウド環境で特定のハードウェア インフラストラクチャを配置できるコードを記述します。CloudFormation の場合、JSON(JavaScript Object Notation)のテンプレートを使用して、事前定義された方法で連携する多くのリソースを定義します。この場合、テンプレートを使用して、ArcGIS Server のサイロ サイトとこれらを保持する Elastic Load Balancer を定義します。

テンプレートのコピーと検証

手順:
  1. 開始するには、テンプレートの例の 1 つを調べます。
  2. テンプレート コードをテキスト ファイルにコピーして、保存します。
  3. 設定されている JSON プロパティを検証して、必要に応じて変更します。

    パラメータ オブジェクトには多くのプロパティがあり、これらはスタックを起動する際に設定できます。たとえば、サイト内にあるインスタンスの数とタイプ、使用される AMI(Amazon Machine Image)などです。ELB(Elastic Load Balancer)設定などの他のリソースはテンプレートに組み込まれ、テンプレート作成者のみが変更できます。

    自動スケーリングと CloudWatch は、CPU の使用量などの要素に基づいてサイトにコンピュータを追加したり削除したりするためのトリガを定義する設定を管理します。また、AMI を変更する場合に、一度にいくつのコンピュータを更新するのかを定義できます。これにより、使用可能なインスタンスを常に維持できます。

  4. このテンプレートのアイテムだけでなく、ELB の LBCookieStickinessPolicy を追加できます。これにより、固定的なセッションを有効にするかどうかが決定されます。これらの設定によって、セッションの間、ユーザのリクエストが同じ GIS サーバ コンピュータに送られるようになります。これは、非同期ジオプロセシング ジョブなどの長時間実行される機能で有効です。
  5. また、スタックに適用する SSL 証明書を定義することもできます。これを定義するには、AWS IAM(Identity and Access Management)に証明書をアップロードし、テンプレートにコードを挿入して、ELB で SSLCertificateId 設定を指定します。

スタックの作成

テンプレートを選択したら、以下の手順に従って、サイロ アーキテクチャを使用して複数のコンピュータの ArcGIS Server サイトを起動します。

手順:
  1. AWS Management Console で、Esri が提供する ArcGIS Server AMI の 1 つを使用してインスタンスを起動します。
  2. ArcGIS Server にライセンス供与して、インスタンス上にサイトを作成します。
  3. サービス、データ、インストールするサードパーティ アプリケーションでインスタンスを構成します。
    注意注意:

    キャッシュを使用しないマップ サービスがある場合、URL の代わりに、MIME にマップ サービスの supportedImageReturnType プロパティを 設定します(このため、ユーザはマップ イメージを取得しようとする際に、スタックや間違ったインスタンスにルーティングされません)。ArcGIS Server Administrator Directory のサービス プロパティを編集して、この設定を調整する必要があります。これは Manager ではできません。

  4. インスタンスから AMI を保存します。この AMI から作成したインスタンスはすべて同じです。それぞれが独自の ArcGIS Server サイトとなり、独自のコンフィグレーション ストア、サーバ ディレクトリ、データが含まれます。
  5. AMI を作成したら、AMI の ID を記録します。これはスタックの作成に必要です。
  6. AWS Management Console で、[Services] [CloudFormation] の順にクリックして、CloudFormation Stacks ページを開きます。
  7. [Create Stack] をクリックします。
  8. [Stack Name] を指定します。
  9. [Upload a Template File] を選択し、上記で保存と変更をしたテンプレート ファイルの 1 つを参照し、[Continue] をクリックします。
  10. スタックの次のプロパティを設定します。
    1. [AMI] プロパティが手順 3 で作成した AMI の ID になるよう変更します。
    2. [MaxSize] をスタック内で一度に保有するインスタンスの最大数に変更します。
    3. VPC テンプレートを使用する場合、対象の VPC 環境設定に対応するよう、[VPCId][Subnets]、および [AZs](アベイラビリティ ゾーン)のオプションを設定します。
    4. 対象のインスタンスのサイズに合わせて [InstanceType] を調整します。
    5. [KeyName] を Amazon キー ペアのいずれかの名前に変更します。拡張子 *.pem を含めないでください。
    6. [MinSize] をスタック内で一度に保有するインスタンスの最小数に変更します。この値を 2 以上にしておくと、コンピュータが使用できなくなった場合にもサイトを失わずにすみます。インスタンスが 1 つだけ検出された場合、CloudFormation は 即座に2 つ目のインスタンスを作成します。
  11. [続行] をクリックします。
  12. タグを追加して、Key = NameValue = MyCloudFormation などのインスタンスを簡単に特定し、[Continue] をクリックします。
  13. スタックを作成する準備ができたら、すべてのパラメータを調べて [Continue] をクリックします。

スタックが起動します。しばらくすると、ArcGIS Server が http://<Elastic Load Balancer アドレス>/arcgis/rest からアクセス可能になります。.

5/16/2014