で ARC 準備状況チェック API オペレーションを使用する例 AWS CLI - Amazon Application Recovery Controller (ARC)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

で ARC 準備状況チェック API オペレーションを使用する例 AWS CLI

このセクションでは、 を使用して API オペレーションを使用して Amazon Application Recovery Controller (ARC) の準備状況チェック機能 AWS Command Line Interface を操作する簡単なアプリケーション例について説明します。この例では、 CLI を使用して準備状況チェック機能を使用する方法の基本的な理解を深めやすくすることを目的としています。

ARC 監査での準備状況チェックで、アプリケーションレプリカ内のリソースの不一致を確認します。アプリケーションの準備状況チェックを設定するには、アプリケーション用に作成したレプリカと一致するアプリケーションリソースを ARC セルにセットアップするか、モデル化する必要があります。次に、スタンバイアプリケーションレプリカとそのリソースが本番稼働用レプリカと継続的に一致するように、これらのレプリカを監査する準備状況チェックを設定します。

簡単な例として、米国東部 (バージニア北部) リージョン (us-east-1) で実行中の Simple-Service という名前のアプリケーションを見てみましょう。米国西部 (オレゴン) リージョン (us-west-2) にもアプリケーションのスタンバイコピーがあります。この例では、準備状況チェックを設定して、これら 2 つのバージョンのアプリケーションを比較します。これにより、フェイルオーバーのシナリオで必要な場合に、スタンバイの米国西部 (オレゴン) リージョンがトラフィックを受信できる状態になっていることを確認できます。

の使用の詳細については AWS CLI、AWS CLI 「 コマンドリファレンス」を参照してください。準備状況 API アクションのリストと詳細情報へのリンクについては、「 準備状況チェック API オペレーション」を参照してください。

ARC のセルは障害の境界 (アベイラビリティーゾーンやリージョンなど) を表し、リカバリグループに収集されます。リカバリグループとは、フェイルオーバーの準備状況を確認したいアプリケーションのことです。準備状況チェックのコンポーネントの詳細については、「準備状況チェックのコンポーネント 」を参照してください。

注記

ARC は複数の のエンドポイントをサポートするグローバルサービス AWS リージョン ですが、ほとんどの ARC CLI コマンドで米国西部 (オレゴン) リージョンを指定 (つまり、パラメータ を指定--region us-west-2) する必要があります。たとえば、リカバリグループや準備状況チェックなどのリソースを作成します。

このアプリケーションの例では、まず、リソースがあるリージョンごとに 1 つのセルを作成します。次に、リカバリグループを作成し、準備状況チェックの設定を完了します。

1. セルを作成する

1a. us-east-1 セルを作成します。

aws route53-recovery-readiness --region us-west-2 create-cell \ --cell-name east-cell
{ "CellArn": "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell", "CellName": "east-cell", "Cells": [], "ParentReadinessScopes": [], "Tags": {} }

1b. us-west-1 セルを作成します。

aws route53-recovery-readiness --region us-west-2 create-cell \ --cell-name west-cell
{ "CellArn": "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell", "CellName": "west-cell", "Cells": [], "ParentReadinessScopes": [], "Tags": {} }

1c. これで 2 つのセルができました。list-cells API を呼び出して、それらが存在することを確認できます。

aws route53-recovery-readiness --region us-west-2 list-cells
{ "Cells": [ { "CellArn": "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell", "CellName": "east-cell", "Cells": [], "ParentReadinessScopes": [], "Tags": {} }, { "CellArn": "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell", "CellName": "west-cell" "Cells": [], "ParentReadinessScopes": [], "Tags": {} } ] }

2. リカバリグループを作成する

リカバリグループは、ARC でのリカバリの準備状況に関する最上位のリソースです。リカバリグループはアプリケーション全体を表します。このステップでは、アプリケーション全体をモデル化するリカバリグループを作成し、作成した 2 つのセルを追加します。

2a. リカバリグループを作成します。

aws route53-recovery-readiness --region us-west-2 create-recovery-group \ --recovery-group-name simple-service-recovery-group \ --cells "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell"\ "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell"
{ "Cells": [], "RecoveryGroupArn": "arn:aws:route53-recovery-readiness::111122223333:recovery-group/simple-service-recovery-group", "RecoveryGroupName": "simple-service-recovery-group", "Tags": {} }

2b. (オプション) list-recovery-groups API を呼び出して、リカバリグループが正しく作成されたことを確認できます。

aws route53-recovery-readiness --region us-west-2 list-recovery-groups
{ "RecoveryGroups": [ { "Cells": [ "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell", "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell" ], "RecoveryGroupArn": "arn:aws:route53-recovery-readiness::111122223333:recovery-group/simple-service-recovery-group", "RecoveryGroupName": "simple-service-recovery-group", "Tags": {} } ] }

アプリケーションのモデルができたので、モニタリングするリソースを追加しましょう。ARC では、モニタリングするリソースのグループはリソースセットと呼ばれます。リソースセットには、すべて同じタイプのリソースが含まれています。リソースセット内のリソースを相互に比較して、セルのフェイルオーバー準備状況を判断します。

3. リソースセットを作成する

Simple-Service アプリケーションが本当にシンプルで、DynamoDB テーブルのみを使用していると仮定しましょう。us-east-1 に DynamoDB テーブルがあり、us-west-2 に別のテーブルがあります。リソースセットには、各リソースが含まれるセルを識別する準備状況の範囲も含まれています。

3a. Simple-Service アプリケーションのリソースを反映したリソースセットを作成します。

aws route53-recovery-readiness --region us-west-2 create-resource-set \ --resource-set-name ImportantInformationTables \ --resource-set-type AWS::DynamoDB::Table \ --resources ResourceArn="arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2",ReadinessScopes="arn:aws:route53-recovery-readiness::111122223333:cell/west-cell" ResourceArn="arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsEast1",ReadinessScopes="arn:aws:route53-recovery-readiness::111122223333:cell/east-cell"
{ "ResourceSetArn": "arn:aws:route53-recovery-readiness::111122223333:resource-set/sample-resource-set", "ResourceSetName": "ImportantInformationTables", "Resources": [ { "ReadinessScopes": [ "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell" ], "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2" }, { "ReadinessScopes": [ "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell" ], "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsEast1" } ], "Tags": {} }

3b. (オプション) list-resource-sets API を呼び出すと、リソースセットに何が含まれているかを確認できます。これにより、 AWS アカウントのすべてのリソースセットが一覧表示されます。先ほど作成したリソースセットは 1 つだけであることがわかります。

aws route53-recovery-readiness --region us-west-2 list-resource-sets
{ "ResourceSets": [ { "ResourceSetArn": "arn:aws:route53-recovery-readiness::111122223333:resource-set/ImportantInformationTables", "ResourceSetName": "ImportantInformationTables", "Resources": [ { "ReadinessScopes": [ "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell" ], "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2" }, { "ReadinessScopes": [ "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell" ], "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsEast1" } ], "Tags": {} } ] }{ "ResourceSets": [ { "ResourceSetArn": "arn:aws:route53-recovery-readiness::111122223333:resource-set/ImportantInformationTables", "ResourceSetName": "ImportantInformationTables", "Resources": [ { "ReadinessScopes": [ "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell" ], "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2" }, { "ReadinessScopes": [ "arn:aws:route53-recovery-readiness::&ExampleAWSAccountNo1;:cell/east-cell" ], "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsEast1" } ], "Tags": {} } ] }

これで、ARC でSimple-Serviceアプリケーションをモデル化するためのセル、リカバリグループ、リソースセットが作成されました。次に、準備状況チェックを設定して、リソースのフェイルオーバー準備状況をモニタリングします。

4. 準備状況チェックを作成する

準備状況チェックは、チェックにアタッチされているリソースセット内の各リソースに一連のルールを適用します。ルールはリソースタイプごとに異なります。つまり、AWS::DynamoDB::TableAWS::EC2::Instance などには異なるルールがあるということです。ルールは、構成、容量 (利用可能かつ適用可能な場合)、制限 (利用可能で適用可能な場合)、ルーティング構成など、リソースのさまざまな側面をチェックします。

注記

準備状況チェックでリソースに適用されるルールを確認するには、ステップ 5 に説明があるとおり get-readiness-check-resource-status API を使用できます。ARC のすべての準備状況ルールのリストを表示するには、 を使用するlist-rulesか、「」を参照してくださいARC の準備状況ルールの説明。ARC には、リソースタイプごとに実行される特定のルールのセットがあります。現時点ではカスタマイズできません。

4a. ImportantInformationTables というリソースセットの準備状況チェックを作成します。

aws route53-recovery-readiness --region us-west-2 create-readiness-check \ --readiness-check-name ImportantInformationTableCheck --resource-set-name ImportantInformationTables
{ "ReadinessCheckArn": "arn:aws:route53-recovery-readiness::111122223333:readiness-check/ImportantInformationTableCheck", "ReadinessCheckName": "ImportantInformationTableCheck", "ResourceSet": "ImportantInformationTables", "Tags": {} }

4b. (オプション) 準備状況チェックが正常に作成されたことを確認するには、list-readiness-checks API を実行します。この API は、アカウントのすべての準備状況チェックを表示します。

aws route53-recovery-readiness --region us-west-2 list-readiness-checks
{ "ReadinessChecks": [ { "ReadinessCheckArn": "arn:aws:route53-recovery-readiness::111122223333:readiness-check/ImportantInformationTableCheck", "ReadinessCheckName": "ImportantInformationTableCheck", "ResourceSet": "ImportantInformationTables", "Tags": {} } ] }

5. 準備状況チェックをモニタリングする

アプリケーションをモデル化し、準備状況チェックを追加したので、リソースをモニタリングする準備が整いました。アプリケーションの準備状況は次の 4 つのレベルでモデル化できます。準備状況チェックレベル (リソースのグループ)、個別のリソースレベル、セルレベル (アベイラビリティーゾーンまたはリージョン内のすべてのリソース)、リカバリグループレベル (アプリケーション全体) です。これらの各タイプの準備状況ステータスを取得するためのコマンドを次に示します。

5a. 準備状況チェックのステータスを確認します。

aws route53-recovery-readiness --region us-west-2 get-readiness-check-status\ --readiness-check-name ImportantInformationTableCheck
{ "Readiness": "READY", "Resources": [ { "LastCheckedTimestamp": "2021-01-07T00:53:39Z", "Readiness": "READY", "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2" }, { "LastCheckedTimestamp": "2021-01-07T00:53:39Z", "Readiness": "READY", "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsEast2" ] }

5b. チェックされた各ルールのステータスなど、準備状況チェックにおける単一のリソースの詳細な準備状況ステータスを確認します。

aws route53-recovery-readiness --region us-west-2 get-readiness-check-resource-status \ --readiness-check-name ImportantInformationTableCheck \ --resource-identifier "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2"
{"Readiness": "READY", "Rules": [ { "LastCheckedTimestamp": "2021-01-07T00:55:41Z", "Messages": [], "Readiness": "READY", "RuleId": "DynamoTableStatus" }, { "LastCheckedTimestamp": "2021-01-07T00:55:41Z", "Messages": [], "Readiness": "READY", "RuleId": "DynamoCapacity" }, { "LastCheckedTimestamp": "2021-01-07T00:55:41Z", "Messages": [], "Readiness": "READY", "RuleId": "DynamoPeakRcuWcu" }, { "LastCheckedTimestamp": "2021-01-07T00:55:41Z", "Messages": [], "Readiness": "READY", "RuleId": "DynamoGSIsPeakRcuWcu" }, { "LastCheckedTimestamp": "2021-01-07T00:55:41Z", "Messages": [], "Readiness": "READY", "RuleId": "DynamoGSIsConfig" }, { "LastCheckedTimestamp": "2021-01-07T00:55:41Z", "Messages": [], "Readiness": "READY", "RuleId": "DynamoGSIsStatus" }, { "LastCheckedTimestamp": "2021-01-07T00:55:41Z", "Messages": [], "Readiness": "READY", "RuleId": "DynamoGSIsCapacity" }, { "LastCheckedTimestamp": "2021-01-07T00:55:41Z", "Messages": [], "Readiness": "READY", "RuleId": "DynamoReplicationLatency" }, { "LastCheckedTimestamp": "2021-01-07T00:55:41Z", "Messages": [], "Readiness": "READY", "RuleId": "DynamoAutoScalingConfiguration" }, { "LastCheckedTimestamp": "2021-01-07T00:55:41Z", "Messages": [], "Readiness": "READY", "RuleId": "DynamoLimits" } ] }

5c. セルの全体的な準備状況を確認します。

aws route53-recovery-readiness --region us-west-2 get-cell-readiness-summary \ --cell-name west-cell
{ "Readiness": "READY", "ReadinessChecks": [ { "Readiness": "READY", "ReadinessCheckName": "ImportantTableCheck" } ] }

5d. 最後に、リカバリグループレベルにおけるアプリケーションの最上位の準備状況を確認します。

aws route53-recovery-readiness --region us-west-2 get-recovery-group-readiness-summary \ --recovery-group-name simple-service-recovery-group
{ "Readiness": "READY", "ReadinessChecks": [ { "Readiness": "READY", "ReadinessCheckName": "ImportantTableCheck" } ] }