ArcGIS Server 10.7 では、管理者は、入力ディレクトリと出力ディレクトリだけでなく、ジョブ ディレクトリもディスクの格納場所から Amazon S3 バケットに変更できます。 ジオプロセシング サービスで常に大規模な出力が生成される場合は、Amazon S3 バケットを使用して、ストレージ リソースをスケール処理することができます。 この構成では、ジオプロセシング サービスの処理速度が遅くなることがあります。
注意:
ジオプロセシング サービスの結果として生成されるマップ イメージ レイヤーは、この構成では使用できません。
アクセス キーまたは IAM ロールを使用してこのクラウド ストレージ構成を設定するには、次の手順を実行します。
Amazon Web Services (AWS) 環境の準備
同期ジオプロセシング サービスの場合は、Amazon S3 サービスだけが必要となります。 非同期サービスの場合は、ArcGIS Server から DynamoDB と Simple Queue Service にアクセスできるようにする必要があります。 Amazon S3 バケット、DynamoDB テーブル、Simple Queue Service キューは同じ領域内に配置しなければなりません。
- Amazon S3 内にバケットを作成します。
詳細については、「最初の S3 バケットの作成」をご参照ください。
- 必要な場合は、serviceId をパーティション キーとして使用し、jobId をソート キーとして使用して、テーブルを作成します。
どちらのキーも文字列形式で指定します。 キーを指定しないと、ArcGIS Server で自動的にテーブルが作成されます。
- 非同期ジオプロセシング サービスごとに、Simple Queue Service で一意のスタンダード タイプ キューを作成します。
アクセス キーの使用
アクセス キーを使用して Amazon S3 バケットに接続するには、次の手順を実行します。
注意:
ジオプロセシング サービスからファイルまたはラスター出力が生成される場合、アクセス キーは、結果として生成されるファイルまたはラスター出力の URL、JSON スキーマ ファイル、ヘルプ URL の一部になります。 この内容が組織のセキュリティ ポリシーに準拠しているかどうかを確認する必要があります。
ArcGIS Server では、データ ストア アイテム登録プロセスの実行時にアクセス キーのシークレット キーも必要となります。 ただし、ArcGIS Server では、常にシークレット キーが暗号化されます。
- ArcGIS Server Administrator Directory にサイン インして、Register Item を参照します。
- アクセス キーやシークレット キーなど、Amazon S3 バケットと DynamoDB に関する接続情報を提供します。
データ アイテムを ArcGIS REST API に登録する場合の JSON サンプル
{ "path": "/cloudStores/<name of your cloud store>", "type": "cloudStore", "provider": "amazon", "info": { "isManaged": false, "connectionString": { "accessKeyId":"<your access key>", "secretAccessKey":"<your secret key>", "region":"<your region>", "defaultEndpointsProtocol":"https", "credentialType":"accesskey" }, "objectStore": "<name of your S3 bucket>/<optional folder name>", "dynamoDbTable":"<dynamoDB table name>" } }
- Administrator Directory のホーム ページに戻り、[サービス] をクリックします。
- AWS 環境を使用するジオプロセシング サービスを検索し、そのサービスの名前をクリックしてから [編集] をクリックします。
- そのサービスの JSON 表現に、新しい一意の serviceId 値、クラウド ストアの名前、そのサービスのキューを組み合わせて次のキー ペアを追加します。
非同期ジオプロセシング構成
{ "serviceId": "<a unique service ID>", "jobQueueStore":"/cloudStores/<name of your cloud store>", "jobTableStore": "/cloudStores/<name of your cloud store>", "outputStore": "/cloudStores/<name of your cloud store>", "jobObjectStore": "/cloudStores/<name of your cloud store>", "jobsStoreQueue": "<name of the queue>" }
同期ジオプロセシング構成
{ "serviceId": "<a unique service ID>", "outputStore": "/cloudStores/<name of your cloud store>", "jobObjectStore": "/cloudStores/<name of your cloud store>" }
ヒント:
<name of the cloud store> 値は、Administrator Directory でデータ アイテム URL エンドポイントの末尾に配置されます。
- [編集の保存] をクリックして、構成を確定します。
ジオプロセシング サービスが自動的に再起動しますが、少し時間がかかります。
- サービスを追加するごとにステップ 4 ~ 6 を繰り返します。
JSON サンプル
上記のステップ 5 で必要なキー値のペアを追加して、ジオプロセシング サービスのサービス プロパティ JSON を変更します。
GPServer を編集します。 これは、非同期ジオプロセシング サービス構成に合わせて切り詰められた JSON です。{
"serviceName": "myGPService1",
"resultMapServer": "false",
"maximumRecords": "1000",
"virtualOutputDir": "/rest/directories/arcgisoutput",
"serviceId": "<this_is_a_unique_serviceid>",
"jobQueueStore":"/cloudStores/<name of your cloud store>",
"jobTableStore": "/cloudStores/<name of your cloud store>",
"outputStore": "/cloudStores/<name of your cloud store>",
"jobObjectStore": "/cloudStores/<name of your cloud store>",
"jobsStoreQueue": "<this_is_a_unique_queue_name>",
"portalURL": "https://domain/webadaptor/"
},
"portalProperties": "",
"extensions": "",
"frameworkProperties": {},
"datasets": []
}
IAM ロールを使用して設定
AWS の IAM ロールを使用するには、Amazon S3 バケットと同じ領域に配置する必要があります。 DynamoDB テーブルと Simple Queue Service 詳細については、「ArcGIS Enterprise on Amazon Web Services」をご参照ください。
自分の IAM ロールに、ArcGIS Enterprise on Amazon Web Services の IAM ポリシーだけでなく、Simple Queue Service ポリシーも含まれていることを確認します。
この構成手順は、ステップ 2 のデータ ストアの登録を除いて上記の手順と同じです。 ステップ 2 で、次の JSON サンプルを使用します。 IAM ロールを使用してデータ アイテムを ArcGIS REST API に登録する場合の JSON サンプル{
"path": "/cloudStores/<name of your cloud store>",
"type": "cloudStore",
"provider": "amazon",
"info": {
"isManaged": false,
"connectionString": {
"region":"<your region>",
"defaultEndpointsProtocol":"https",
"credentialType":"iamrole"
},
"objectStore": "<name of your S3 bucket>/<optional folder name>",
"dynamoDbTable":"<dynamoDB table name>"
}
}