FIS AWS の実験レポート設定 - AWS フォールトインジェクションサービス

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

FIS AWS の実験レポート設定

AWS Fault Injection Service (FIS) を有効にして実験のレポートを生成できるため、耐障害性テストの証拠を簡単に生成できます。実験レポートは、実験アクションを要約し、オプションで指定した CloudWatch ダッシュボードからのアプリケーションレスポンスをキャプチャする PDF ドキュメントです。実験レポートの例を表示するには、ここで zip ファイルをダウンロードします。

実験用に生成されたレポートの内容を有効にして設定するには、実験テンプレートの実験レポート設定を定義します。CloudWatch ダッシュボードを指定すると、 AWS FIS には、次の例に示すように、指定した期間における実験の開始時刻と終了時刻が注釈された、特定のダッシュボード内のすべてのウィジェットのスナップショットグラフが含まれます。

この例では、アベイラビリティーゾーン (AZ) でのパケット損失実験の影響を示します。AZ use1-az6 でパケット損失が発生すると、トラフィックは use1-az6 から use1-az4 に移行し、その AZ のロードバランサーによって処理されたバイト数が減少します。

Two graphs showing ProcessedBytes over time, with one increasing and one decreasing sharply.

実験が終了すると、レポートは FIS AWS コンソールからダウンロードでき、Amazon S3 バケットにも保存されます。レポート設定に CloudWatch ダッシュボードを含めると、各ウィジェットのイメージも配信されます。ターゲットプレビュー ( actionsMode を に設定) の一部として実行cancelledされた実験のレポートは生成されませんskip-all。実験が実験データ保持制限を超えると、レポートは Amazon S3 バケットからのみ使用できます。内部エラーで失敗したレポートを除き、配信されたレポートごとに AWS FIS 料金が適用されます。詳細については、AWS 「Fault Injection Service の料金」および「」を参照してくださいFault Injection Service AWS のクォータと制限GetMetricWidgetImage および GetDashboard リクエストの Amazon S3 および CloudWatch API 料金の取り込み料金とストレージ料金が適用される場合があります。詳細については、Amazon S3の料金」とCloudWatch の料金」を参照してください。

実験レポート設定構文

以下は、実験テンプレートのオプションセクションである実験レポート設定の構文です。

{ "experimentReportConfiguration": { "outputs": { "s3Configuration": { "bucketName": "my-bucket-name", "prefix": "report-storage-prefix" } }, "dataSources": { "cloudWatchDashboards": [ { "dashboardIdentifier": "arn:aws:cloudwatch::123456789012:dashboard/MyDashboard" } ] }, "preExperimentDuration": "PT20M", "postExperimentDuration": "PT20M" } }

を使用するとexperimentReportConfiguration、データの出力先、入力データ、および時間枠をカスタマイズして実験レポートに含めることができます。これにより、FIS AWS 実験の影響と結果をよりよく理解できます。実験レポート設定を定義するときは、以下を指定します。

出力

実験レポートの配信先experimentReportConfigurationを指定する のセクション。ではoutputs、以下を指定s3Configurationして を指定します。

  • bucketName - レポートが保存される Amazon S3 バケットの名前。バケットは実験と同じリージョンにある必要があります。

  • prefix (オプション) - レポートが保存される Amazon S3 バケット内のプレフィックス。プレフィックスにのみアクセスを制限できるように、このフィールドを強くお勧めします。

dataSources

実験レポートに含める追加のデータソースexperimentReportConfigurationを指定する のオプションセクション。

  • cloudWatchDashboards - レポートに含まれる CloudWatch ダッシュボードの配列。CloudWatch ダッシュボードは 1 つに制限されています。

  • dashboardIdentifier- CloudWatch ダッシュボードの ARN。このダッシュボードmetricの タイプを持つすべてのウィジェットのスナップショットグラフは、クロスリージョンメトリクスを除き、レポートに含まれます。

preExperimentDuration

CloudWatch ダッシュボードメトリクスがレポートに含める実験前期間experimentReportConfigurationを最大 30 分まで定義する のオプションセクション。これは、アプリケーションの定常状態を表す期間である必要があります。たとえば、実験前期間が 5 分の場合、スナップショットグラフには実験開始の 5 分前にメトリクスが含まれることを意味します。期間の形式は ISO 8601 で、デフォルトは 20 分です。

postExperimentDuration

CloudWatch ダッシュボードメトリクスが最大 2 時間レポートに含める実験後期間experimentReportConfigurationを定義する のオプションセクション。これは、アプリケーションの定常状態または復旧期間を表す期間である必要があります。たとえば、実験後の期間を 5 分に指定すると、スナップショットグラフには実験終了後 5 分までのメトリクスが含まれます。期間の形式は ISO 8601 で、デフォルトは 20 分です。

実験レポートのアクセス許可

AWS FIS が実験レポートを生成して保存できるようにするには、FIS 実験 IAM AWS ロールから次のオペレーションを許可する必要があります。

  • cloudwatch:GetDashboard

  • cloudwatch:GetMetricWidgetImage

  • s3:GetObject

  • s3:PutObject

AWS セキュリティのベストプラクティスに従い、実験ロールをバケットとプレフィックスに制限することをお勧めします。以下は、実験ロールへのアクセスを制限するポリシーステートメントの例です。

JSON
{ "Version": "2012-10-17" , "Statement": [ { "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::my-experiment-report-bucket/my-prefix/*", "Effect": "Allow" }, { "Action": [ "cloudwatch:GetDashboard" ], "Resource": "arn:aws:cloudwatch::012345678912:dashboard/my-experiment-report-dashboard", "Effect": "Allow" }, { "Action": [ "cloudwatch:GetMetricWidgetImage" ], "Resource": "*", "Effect": "Allow" } ] }

カスタマーマネージドキー (CMK) で暗号化された Amazon S3 バケットに配信されるレポートの追加のアクセス許可

で指定した Amazon S3 バケットS3Configurationが CMK で暗号化されている場合は、KMS キーポリシーの FIS 実験ロールに次の追加のアクセス許可を付与する必要があります。

  • kms:GenerateDataKey

  • kms:Decrypt

以下は、FIS 実験ロールが暗号化されたバケットにレポートを書き込むことを許可する KMS キーポリシーステートメントの例です。

{ "Sid": "Allow FIS experiment report", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::012345678912:role/FISExperimentRole", ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

実験レポートのベストプラクティス

AWS FIS 実験レポート設定を使用するためのベストプラクティスは次のとおりです。

  • 実験を開始する前に、ターゲットプレビューを生成して、実験テンプレートが期待どおりに設定されていることを確認します。ターゲットプレビューでは、実験の予想されるターゲットに関する情報が表示されます。詳細については実験テンプレートからターゲットプレビューを生成するを参照してください。

  • このレポートは、失敗した実験のトラブルシューティングには使用しないでください。代わりに、実験ログを使用して実験エラーをトラブルシューティングします。以前に実行し、正常に完了した実験のみにレポートを使用することをお勧めします。

  • 実験 IAM ロールの配置を制限し、S3 送信先バケットとプレフィックスへのオブジェクトアクセスを取得します。バケット/プレフィックスは FIS AWS 実験レポートのみに専念し、他の AWS サービスにはこのバケットとプレフィックスへのアクセスを許可しないことをお勧めします。

  • Amazon S3 オブジェクトロックを使用して、レポートが一定期間または無期限に削除または上書きされないようにします。詳細については、「オブジェクトロックによるオブジェクトのロック」を参照してください。

  • CloudWatch ダッシュボードが同じリージョン内の別のアカウントにある場合は、CloudWatch クロスアカウントオブザーバビリティを使用して、モニタリングアカウントとして AWS FIS オーケストレーターアカウントを有効にし、CloudWatch コンソールまたは API AWS CLI の Observability Access Manager コマンドからソースアカウントとして別のアカウントを有効にできます。詳細については、CloudWatch クロスアカウントオブザーバビリティ」を参照してください。