

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

# シナリオのリファレンス
<a name="scenario-library-scenarios"></a>

シナリオライブラリに含まれるシナリオは、可能な限り[タグ](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html)を使用するように設計されており、各シナリオでは、シナリオ説明の「**前提条件**」セクションと「**仕組み**」セクションで必要なタグについて説明しています。リソースにこれらの事前定義されたタグを付けることも、共有パラメータ編集エクスペリエンスを使用して独自のタグを設定することもできます (「」を参照[シナリオの使用](scenario-library.md#using-a-scenario))。

このリファレンスでは、AWS FIS シナリオライブラリの共通のシナリオについて説明します。AWS FIS コンソールを使用して、サポートされているシナリオを一覧表示することもできます。

詳細については、「[AWS FIS シナリオライブラリの使用](scenario-library.md)」を参照してください。

AWS FIS は、次の Amazon EC2 のシナリオをサポートしています。これらのシナリオは、[タグ](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html)を使用するインスタンスをターゲットにしています。独自のタグを使用することも、シナリオに含められているデフォルトのタグを使用することもできます。一部のシナリオは、[SSM ドキュメントを使用します](https://docs.aws.amazon.com//fis/latest/userguide/actions-ssm-agent.html)。
+ **EC2 ストレス: インスタンス障害** - 1 つ以上の EC2 インスタンスを停止して、インスタンス障害の影響を調べてください。

  現在のリージョンで、特定のタグを持つインスタンスをターゲットにします。このシナリオでは、これらのインスタンスを停止し、アクションの終了時 (デフォルトでは 5 分) に再起動します。
+ **EC2 ストレス: ディスク** - ディスク使用率の増加が EC2 ベースのアプリケーションに及ぼす影響を調べます。

  このシナリオでは、特定のタグがアタッチされている現在のリージョンの EC2 インスタンスをターゲットにします。このシナリオでは、アクションの実行中にターゲット EC2 インスタンスに注入されるディスク使用量の増加をカスタマイズできます。デフォルトでは、ディスクストレスアクションごとに 5 分です。
+ **EC2 ストレス: CPU-** - CPU の増加が EC2 ベースのアプリケーションに及ぼす影響を調べます。

  このシナリオでは、特定のタグがアタッチされている現在のリージョンの EC2 インスタンスをターゲットにします。このシナリオでは、ターゲット EC2 インスタンスに注入される CPU ストレス量の増加をアクションの間（デフォルトでは各 CPU ストレスアクションにつき 5 分）カスタマイズできます。
+ **EC2 ストレス: メモリ** -メモリ使用量の増加が EC2 ベースのアプリケーションに及ぼす影響を調べます。

  このシナリオでは、特定のタグがアタッチされている現在のリージョンの EC2 インスタンスをターゲットにします。このシナリオでは、ターゲット EC2 インスタンスに注入されるメモリストレス量の増加をアクションの間 (デフォルトではメモリストレスアクションごとに 5 分) に合わせてカスタマイズできます。
+ **EC2 ストレス: ネットワークレイテンシー** -ネットワークレイテンシーの増加が EC2 ベースのアプリケーションに及ぼす影響を調べます。

  このシナリオでは、特定のタグがアタッチされている現在のリージョンの EC2 インスタンスをターゲットにします。このシナリオでは、ターゲット EC2 インスタンスに注入されるネットワークレイテンシーの増加を、アクションの継続時間 (デフォルトでは各レイテンシーアクションにつき 5 分) に合わせてカスタマイズできます。

AWS FIS は、次の Amazon EKS のシナリオをサポートしています。これらのシナリオは、Kubernetes アプリケーションラベルを使用する EKS ポッドをターゲットにしています。独自のラベルを使用することも、シナリオに含められているデフォルトのラベルを使用することもできます。FIS を使用した EKS の詳細については、「[EKS Pod アクション](eks-pod-actions.md)」を参照してください。
+ **EKS ストレス: ポッドの削除** -1 つ以上のポッドを削除して、EKS ポッドの障害による影響を調べてください。

  このシナリオでは、アプリケーションラベルに関連付けられている現在のリージョンのポッドをターゲットにします。このシナリオでは、一致したすべてのポッドを終了します。ポッドの再作成は kubernetes の設定によって制御されます。
+ **EKS ストレス: CPU** - CPU の増加が EKS ベースのアプリケーションに及ぼす影響を調べてください。

  このシナリオでは、アプリケーションラベルに関連付けられている現在のリージョンのポッドをターゲットにします。このシナリオでは、アクションの実行中にターゲット EKS ポッドに注入される CPU ストレスの増加量をカスタマイズできます。デフォルトでは、CPU ストレスアクションごとに 5 分です。
+ **EKS ストレス: ディスク** - ディスク使用率の増加が EKS ベースのアプリケーションに及ぼす影響を調べてください。

  このシナリオでは、アプリケーションラベルに関連付けられている現在のリージョンのポッドをターゲットにします。このシナリオでは、アクションの間、ターゲット EKS ポッドに注入されるディスクストレスの増加量をカスタマイズできます。デフォルトでは、CPU ストレスアクションごとに 5 分です。
+ **EKS ストレス: メモリ** -メモリ使用量の増加が EKS ベースのアプリケーションに及ぼす影響を調べてください。

  このシナリオでは、アプリケーションラベルに関連付けられている現在のリージョンのポッドをターゲットにします。このシナリオでは、アクションの実行中にターゲットの EKS ポッドに注入されるメモリストレスの増加量をカスタマイズできます。デフォルトでは、各メモリストレスアクションにつき 5 分です。
+ **EKS ストレス: ネットワーク遅延** -ネットワーク遅延の増加が EKS ベースのアプリケーションに及ぼす影響を調べます。

  このシナリオでは、アプリケーションラベルに関連付けられている現在のリージョンのポッドをターゲットにします。このシナリオでは、ターゲット EKS ポッドに注入されるネットワークレイテンシーの増加を、アクションの継続時間 (デフォルトでは 1 つのレイテンシーアクションにつき 5 分) に合わせてカスタマイズできます。

AWS FIS は、シングル AZ、マルチ AZ、マルチリージョンアプリケーションの次のシナリオをサポートしています。これらのシナリオは、複数のリソースタイプをターゲットにしています。
+ **AZ Availability: Power Interruption** - アベイラビリティーゾーン (AZ) の電力が完全に中断された場合に予想される症状を挿入します。[AZ Availability: Power Interruption](az-availability-scenario.md) の詳細を確認してください。
+ **AZ: Application Slowdown** - 単一のアベイラビリティーゾーン (AZ) 内のリソース間にレイテンシーを追加して、アプリケーションを遅くします。[AZ: Application Slowdown](az-application-slowdown-scenario.md) の詳細を確認してください。
+ **Cross-AZ: Traffic Slowdown** - パケット損失を挿入して、アベイラビリティーゾーン (AZs。[Cross-AZ: Traffic Slowdown](cross-az-traffic-slowdown-scenario.md) の詳細を確認してください。
+ **Cross-Region: Connectivity** - 実験リージョンから宛先リージョンへのアプリケーションネットワークトラフィックをブロックし、クロスリージョンデータレプリケーションを一時停止します。[Cross-Region: Connectivity](cross-region-scenario.md) の使用の詳細については、こちらを参照してください。

AWS FIS では、Amazon EBS ボリュームの以下のシナリオがサポートされています。これらのシナリオでは、タグを使用してボリュームをターゲットにします。独自のタグを使用することも、シナリオに含められているデフォルトのタグを使用することもできます。ターゲットボリュームは同じアベイラビリティーゾーンにある必要があります。詳細については、[Amazon EBS での障害テスト](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-fis.html)を参照してください。
+ **EBS: Sustained Latency** — アプリケーションに対する永続的 I/O レイテンシーの影響を調べます。

  このシナリオでは、特定のタグがアタッチされている現在のアベイラビリティーゾーンのボリュームをターゲットにします。このシナリオでは、15 分間に 1 回のレイテンシーアクションを使用して、ボリュームの読み取りオペレーションの 50% と書き込みオペレーションの 100% に 500 ミリ秒の一定のレイテンシーを挿入します。このシナリオでは、挿入されたレイテンシーの量、挿入された I/O の割合、アクションの期間をカスタマイズできます。
+ **EBS: Increasing Latency** — アプリケーションに対する I/O レイテンシーの増加の影響を調べます。

  このシナリオでは、特定のタグがアタッチされている現在のアベイラビリティーゾーンのボリュームをターゲットにします。このシナリオでは、15 分間に 5 つのレイテンシーアクションを使用して、ボリュームの読み取りオペレーションの 10% と書き込みオペレーションの 25% で、レイテンシーが 50 ミリ秒、200 ミリ秒、700 ミリ秒、1 秒、15 秒増加します。このシナリオでは、レイテンシーアクションごとに、挿入されたレイテンシーの量、挿入された I/O の割合、およびアクション期間をカスタマイズできます。
+ **EBS: Intermittent Latency** — アプリケーションに対する断続的な I/O レイテンシースパイクの影響を調べます。

  このシナリオでは、特定のタグがアタッチされている現在のアベイラビリティーゾーンのボリュームをターゲットにします。このシナリオでは、3 つのレイテンシーアクションを使用して、ボリュームの読み取り/書き込み I/O オペレーションの 0.1% に 30 秒、10 秒、20 秒の急激な断続的なレイテンシースパイクを 3 回注入し、15 分間の各スパイクの間に回復間隔を置きます。このシナリオでは、レイテンシーアクションごとに、挿入されたレイテンシーの量、挿入された I/O の割合、およびアクション期間をカスタマイズできます。
+ **EBS: Decreasing Latency** — アプリケーションに対する I/O レイテンシーの減少の影響を調べます。

  このシナリオでは、特定のタグがアタッチされている現在のアベイラビリティーゾーンのボリュームをターゲットにします。このシナリオでは、15 分間に 5 つのレイテンシーアクションを使用して、ボリュームの読み取りおよび書き込みオペレーションの 10% で 20 秒、5 秒、900 ミリ秒、300 ミリ秒、40 ミリ秒のレイテンシーを短縮します。このシナリオでは、レイテンシーアクションごとに、挿入されたレイテンシーの量、挿入された I/O の割合、およびアクション期間をカスタマイズできます。

# AZ Availability: Power Interruption
<a name="az-availability-scenario"></a>

 AZ Availability: Power Interruption のシナリオを使用して、アベイラビリティーゾーン (AZ) の電力が完全に中断されるという予想される症状を誘発できます。

このシナリオは、AZ に完全な停電が 1 回発生したときに、マルチ AZ アプリケーションが想定どおりに動作することをデモンストレーションするために使用できます。これには、ゾーンコンピューティング (Amazon EC2、EKS、ECS) の損失、AZ でのコンピューティングの再スケーリングの禁止、サブネット接続の損失、RDS フェイルオーバー、ElastiCache フェイルオーバー、S3 Express One Zone ディレクトリバケットへのアクセスの障害、応答しない EBS ボリュームが含まれます。デフォルトで、ターゲットが見つからないアクションはスキップされます。

## アクション
<a name="az-availability-scenario-actions"></a>

次のアクションにより、単一の AZ で完全な停電が発生したときに予想される症状の多くを作成できます。AZ アベイラビリティー: 停電は、単一の AZ の停電中に影響が予想されるサービスにのみ影響します。デフォルトで、このシナリオでは 30 分間の停電症状を挿入し、さらに 30 分間、復旧中に発生する可能性のある症状を挿入します。

### Stop-Instances
<a name="az-availability-scenario-actions-stop-instances"></a>

AZ の電源が中断されている間、影響を受けた AZ の EC2 インスタンスはシャットダウンします。電力が復旧すると、インスタンスは再起動します。AZ Availability: Power Interruption には [aws:ec2:stop-instances](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#stop-instances) が含まれ、中断の期間に影響を受けた AZ のすべてのインスタンスを停止します。この期間の後、インスタンスは再起動されます。Amazon EKS によって管理されている EC2 インスタンスを停止すると、依存する EKS ポッドが削除されます。Amazon ECS によって管理されている EC2 インスタンスを停止すると、依存する ECS タスクが停止します。

このアクションは、影響を受けた AZ で実行されている EC2 インスタンスをターゲットにしています。デフォルトで、`StopInstances` の値を持つ `AzImpairmentPower` という名前のタグのインスタンスがターゲットになります。このタグをインスタンスに追加することも、デフォルトタグを実験テンプレートの独自のタグに置き換えることもできます。デフォルトで、有効なインスタンスが見つからない場合、このアクションはスキップされます。

### Stop-ASG-Instances
<a name="az-availability-scenario-actions-stop-asg-instances"></a>

AZ の電源が中断されている間、影響を受けた AZ で Auto Scaling グループにより管理されている EC2 インスタンスはシャットダウンします。電力が復旧すると、インスタンスは再起動します。AZ Availability: Power Interruption には [aws:ec2:stop-instances](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#stop-instances) が含まれ、自動スケーリングにより管理されているものを含め、中断の期間に影響を受けた AZ のすべてのインスタンスを停止します。この期間の後、インスタンスは再起動されます。

このアクションは、影響を受けた AZ で実行されている EC2 インスタンスをターゲットにしています。デフォルトで、`IceAsg` の値を持つ `AzImpairmentPower` という名前のタグのインスタンスがターゲットになります。このタグをインスタンスに追加することも、デフォルトタグを実験テンプレートの独自のタグに置き換えることもできます。デフォルトで、有効なインスタンスが見つからない場合、このアクションはスキップされます。

### インスタンスの起動を一時停止する
<a name="az-availability-scenario-actions-pause-instance-launches"></a>

AZ の電源が中断されている間、AZ で容量をプロビジョニングするための EC2 API 呼び出しは失敗します。特に、`ec2:StartInstances`、`ec2:CreateFleet`、および `ec2:RunInstances` の API が影響を受けます。AZ Availability: Power Interruption includes には、[aws:ec2:api-insufficient-instance-capacity-error](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#api-ice) が含まれ、影響を受けた AZ に新しいインスタンスがプロビジョニングされるのを回避します。

このアクションは、インスタンスのプロビジョニングに使用される IAM ロールをターゲットにしています。これらは ARN を使用してターゲットにする必要があります。デフォルトで、有効な IAM ロールが見つからない場合、このアクションはスキップされます。

### ASG スケーリングを一時停止する
<a name="az-availability-scenario-actions-pause-asg-scaling"></a>

 AZ の電源が中断されている間、自動スケーリングコントロールプレーンが AZ で失われた容量を回復するために行った EC2 API 呼び出しは失敗します。特に、`ec2:StartInstances`、`ec2:CreateFleet`、および `ec2:RunInstances` の API が影響を受けます。AZ Availability: Power Interruption には、[aws:ec2:asg-insufficient-instance-capacity-error](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#asg-ice) が含まれ、影響を受けた AZ に新しいインスタンスがプロビジョニングされるのを回避します。これにより、Amazon EKS と Amazon ECS が影響を受けた AZ でスケーリングされることも回避されます。

このアクションは Auto Scaling グループをターゲットにしています。デフォルトで、`IceAsg` の値を持つ `AzImpairmentPower` という名前のタグの Auto Scaling グループがターゲットになります。このタグを Auto Scaling グループに追加するか、またはデフォルトタグを実験テンプレートの独自のタグに置き換えることができます。デフォルトで、有効な Auto Scaling グループが見つからない場合、このアクションはスキップされます。

### ネットワーク接続を一時停止する
<a name="az-availability-scenario-actions-pause-network-connectivity"></a>

AZ の電源が中断されている間、AZ のネットワークは利用できなくなります。このような状況の場合、一部の AWS サービスでは、影響を受けた AZ のプライベートエンドポイントが利用できないことを反映し、DNS を更新するのに数分かかることがあります。この間、DNS ルックアップはアクセスできない IP アドレスを返すことがあります。AZ Availability: Power Interruption には、[aws:network:disrupt-connectivity](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#network-actions-reference) が含まれ、影響を受けた AZ のすべてのサブネットのネットワーク接続すべてが 2 分間ブロックされます。これにより、ほとんどのアプリケーションでタイムアウトと DNS 更新が強制されます。2 分後にアクションが終了し、AZ が利用できない状態が継続しながら、後続のリージョン別のサービス DNS の復旧が許可されます。

このアクションはサブネットをターゲットにしています。デフォルトで、`DisruptSubnet` の値を持つ `AzImpairmentPower` という名前のタグのクラスターがターゲットになります。このタグをサブネットに追加するか、またはデフォルトタグを実験テンプレートの独自のタグに置き換えることができます。デフォルトで、有効なサブネットが見つからない場合、このアクションはスキップされます。

### RDS のフェイルオーバー
<a name="az-availability-scenario-actions-failover-rds"></a>

AZ の電源が中断されている間、影響を受けた AZ の RDS ノードはシャットダウンします。影響を受けた AZ の単一 AZ RDS ノードは完全に利用できなくなります。マルチ AZ クラスターの場合、ライターノードは影響を受けていない AZ にフェイルオーバーし、影響を受けた AZ のリーダーノードは利用できなくなります。マルチ AZ クラスターの場合、AZ Availability: Power Interruption に [aws:rds:failover-db-cluster](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#failover-db-cluster) が含まれ、ライターが影響を受けた AZ に存在する場合はフェイルオーバーします。

このアクションは RDS クラスターをターゲットにしています。デフォルトでは、`DisruptRds` の値を持つ `AzImpairmentPower` という名前のタグのクラスターがターゲットになります。このタグをクラスターに追加するか、またはデフォルトタグを実験テンプレートの独自のタグに置き換えることができます。デフォルトで、有効なクラスターが見つからない場合、このアクションはスキップされます。

### ElastiCache レプリケーショングループの一時停止
<a name="az-availability-scenario-actions-pause-elasticache"></a>

AZ 電源の中断中、AZ 内の ElastiCache ノードは使用できません。 AZ Availability: Power Interruptionには、影響を受ける AZ 内の ElastiCache ノードを終了するための [aws:elasticache:replicationgroup-interrupt-az-power](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#interrupt-elasticache) が含まれています。中断期間中、新しいインスタンスは影響を受ける AZ にプロビジョニングされないため、レプリケーショングループは容量が減少したままになります。

このアクションは ElastiCache レプリケーショングループをターゲットにします。デフォルトでは、値が の という名前のタグ`AzImpairmentPower`を持つレプリケーショングループを対象としています`ElasticacheImpact`。このタグをレプリケーショングループに追加するか、デフォルトのタグを実験テンプレートの独自のタグに置き換えることができます。デフォルトでは、有効なレプリケーショングループが見つからない場合、このアクションはスキップされます。影響を受ける AZ にノードがあるレプリケーショングループのみが有効なターゲットと見なされることに注意してください。

### ARC ゾーンオートシフトを開始する
<a name="az-availability-scenario-actions-zonal-autoshift"></a>

AZ の電源中断が開始されてから 5 分後、復旧アクションは、電源中断の残りの 25 分間、リソーストラフィックを指定された AZ から`aws:arc:start-zonal-autoshift`自動的に移行します。その後、トラフィックは元の AZ に戻ります。実際の AZ 電源の中断中は AWS 、オートシフトが有効になっている場合に障害を検出し、リソーストラフィックをシフトすることに注意してください。このシフトのタイミングは異なりますが、障害の開始から 5 分後に発生すると推定されます。

このアクションは、Amazon Application Recovery Controller (ARC) 自動シフト対応リソースを対象としています。デフォルトでは、タグキー `AzImpairmentPower`と値 を持つリソースをターゲットにしています`RecoverAutoshiftResources`。このタグをリソースに追加するか、デフォルトのタグを実験テンプレートの独自のタグに置き換えることができます。たとえば、アプリケーション固有のタグを使用できます。デフォルトでは、有効なリソースが見つからない場合、このアクションはスキップされます。

### EBS I/O を一時停止する
<a name="az-availability-scenario-actions-pause-ebs-io"></a>

AZ の電源中断の後、電力が復旧したとき、ごく一部のインスタンスで EBS ボリュームが応答しなくなることがあります。AZ Availability: Power Interruption には [aws:ebs:pause-io](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#ebs-actions-reference) が含まれ、1 つの EBS ボリュームは応答しない状態のままになります。

デフォルトで、インスタンスの終了後も維持するように設定されたボリュームのみがターゲットになります。このアクションは、値が `APIPauseVolume` の `AzImpairmentPower` という名前のタグがあるボリュームをターゲットにしています。このタグをボリュームに追加するか、またはデフォルトタグを実験テンプレートの独自のタグに置き換えることができます。デフォルトで、有効なボリュームが見つからない場合、このアクションはスキップされます。

### S3 Express One Zone ディレクトリバケットへの接続を中断する
<a name="az-availability-scenario-actions-pause-network-connectivity-s3-express"></a>

AZ の電源の中断中、AZ の S3 Express One Zone ディレクトリバケットに保存されているデータにはアクセスできません。AZ の可用性: 電力中断には、実験中に影響を受けた AZ 内のサブネットと 1 ゾーンディレクトリバケット間の接続を中断する [aws:network:disrupt-connectivity](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#network-actions-reference) が含まれており、ゾーンエンドポイントデータプレーン API オペレーションへのタイムアウトが発生します。このアクションを使用して、コンピューティングが AZ のストレージと同じ場所にある場合の中断をテストします。

このアクションはサブネットをターゲットにしています。デフォルトでは、値が の という名前のタグ`AzImpairmentPower`を持つサブネットをターゲットにしています`DisruptSubnet`。このタグをサブネットに追加するか、またはデフォルトタグを実験テンプレートの独自のタグに置き換えることができます。デフォルトで、有効なサブネットが見つからない場合、このアクションはスキップされます。

## 制限事項
<a name="az-availability-scenario-limitations"></a>
+ このシナリオに[停止条件](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions.html)は含まれていません。アプリケーションに適した停止条件を実験テンプレートに追加する必要があります。
+  ターゲット AZ では、EC2 で実行されている Amazon EKS ポッドは EC2 ワーカーノードで終了し、新しい EC2 ノードの開始はブロックされます。ただし、AWS Fargate で実行されている Amazon EKS ポッドはサポートされていません。
+  ターゲット AZ では、EC2 で実行されている Amazon ECS タスクは EC2 ワーカーノードで終了し、新しい EC2 ノードの開始はブロックされます。ただし、AWS Fargate で実行されている Amazon ECS タスクはサポートされていません。
+ 読み取り可能なスタンバイ DB インスタンスが 2 つある [Amazon RDS マルチ AZ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html#multi-az-db-clusters-migrating-to-with-read-replica) はサポートされていません。この場合、インスタンスは終了し、RDS はフェイルオーバーされ、容量は直ちに影響を受けた AZ にプロビジョニングされます。影響を受けた AZ の読み取り可能なスタンバイは引き続き利用できます。

## 要件
<a name="az-availability-scenario-requirements"></a>
+ 必要なアクセス許可を AWS FIS [実験ロール](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)に追加します。
+ リソースタグは、実験のターゲットとなるリソースに適用する必要があります。独自のタグ付け規則を使用することも、シナリオで定義したデフォルトタグを使用することもできます。

## アクセス許可
<a name="az-availability-scenario-permissions"></a>

ARC ゾーンオートシフトは、IAM サービスにリンクされたロール`AWSServiceRoleForZonalAutoshiftPracticeRun`を使用して、ユーザーに代わってゾーンシフトを実行します。このロールは IAM 管理ポリシー を使用します[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSZonalAutoshiftPracticeRunSLRPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSZonalAutoshiftPracticeRunSLRPolicy.html)。ロールを手動で作成する必要はありません。 AWS マネジメントコンソール、、 AWS CLIまたは AWS SDK の AZ Power Interruption シナリオから実験テンプレートを作成すると、ARC によってサービスにリンクされたロールが作成されます。詳細については、[「ARC でのゾーンオートシフトのサービスにリンクされたロールの使用](https://docs.aws.amazon.com/r53recovery/latest/dg/using-service-linked-roles-zonal-autoshift.html)」を参照してください。

次のポリシーは、AZ Availability: Power Interruption シナリオを使用して実験を実行するために必要なアクセス許可を AWS FIS に付与しています。このポリシーを[実験ロール](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)にアタッチする必要があります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowFISExperimentLoggingActionsCloudwatch",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:PutResourcePolicy",
                "logs:DescribeResourcePolicies",
                "logs:DescribeLogGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:network-acl/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateNetworkAcl",
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkAcl",
            "Resource": "arn:aws:ec2:*:*:network-acl/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkAclEntry",
                "ec2:DeleteNetworkAcl"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:network-acl/*",
                "arn:aws:ec2:*:*:vpc/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkAcl",
            "Resource": "arn:aws:ec2:*:*:vpc/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeManagedPrefixLists",
                "ec2:DescribeSubnets",
                "ec2:DescribeNetworkAcls"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:ReplaceNetworkAclAssociation",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:network-acl/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "rds:FailoverDBCluster"
            ],
            "Resource": [
                "arn:aws:rds:*:*:cluster:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "rds:RebootDBInstance"
            ],
            "Resource": [
                "arn:aws:rds:*:*:db:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:DescribeReplicationGroups",
                "elasticache:InterruptClusterAzPower"
            ],
            "Resource": [
                "arn:aws:elasticache:*:*:replicationgroup:*"
            ]
        },
        {
            "Sid": "TargetResolutionByTags",
            "Effect": "Allow",
            "Action": [
                "tag:GetResources"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant"
            ],
            "Resource": [
                "arn:aws:kms:*:*:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "kms:ViaService": "ec2.*.amazonaws.com"
                },
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVolumes"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:PauseVolumeIO"
            ],
            "Resource": "arn:aws:ec2:*:*:volume/*"
        },
        {
            "Sid": "AllowInjectAPI",
            "Effect": "Allow",
            "Action": [
                "ec2:InjectApiError"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "ec2:FisActionId": [
                        "aws:ec2:api-insufficient-instance-capacity-error",
                        "aws:ec2:asg-insufficient-instance-capacity-error"
                    ]
                }
            }
        },
        {
            "Sid": "DescribeAsg",
            "Effect": "Allow",
            "Action": [
                "autoscaling:DescribeAutoScalingGroups"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## シナリオのコンテンツ
<a name="az-availability-scenario-content"></a>

次のコンテンツはシナリオを定義しています。この JSON を保存し、AWS コマンドラインインターフェイス (AWS CLI) から [create-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/create-experiment-template.html) コマンドを使用して[実験テンプレート](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates.html)を作成するのに使用できます。シナリオの最新バージョンについては、FIS コンソールのシナリオライブラリを参照してください。

```
{
    "targets": {
        "IAM-role": {
            "resourceType": "aws:iam:role",
            "resourceArns": [],
            "selectionMode": "ALL"
        },
        "EBS-Volumes": {
            "resourceType": "aws:ec2:ebs-volume",
            "resourceTags": {
                "AzImpairmentPower": "ApiPauseVolume"
            },
            "selectionMode": "COUNT(1)",
            "parameters": {
                "availabilityZoneIdentifier": "us-east-1a"
            },
            "filters": [
                {
                    "path": "Attachments.DeleteOnTermination",
                    "values": [
                        "false"
                    ]
                }
            ]
        },
        "EC2-Instances": {
            "resourceType": "aws:ec2:instance",
            "resourceTags": {
                "AzImpairmentPower": "StopInstances"
            },
            "filters": [
                {
                    "path": "State.Name",
                    "values": [
                        "running"
                    ]
                },
                {
                    "path": "Placement.AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "selectionMode": "ALL"
        },
        "ASG": {
            "resourceType": "aws:ec2:autoscaling-group",
            "resourceTags": {
                "AzImpairmentPower": "IceAsg"
            },
            "selectionMode": "ALL"
        },
        "ASG-EC2-Instances": {
            "resourceType": "aws:ec2:instance",
            "resourceTags": {
                "AzImpairmentPower": "IceAsg"
            },
            "filters": [
                {
                    "path": "State.Name",
                    "values": [
                        "running"
                    ]
                },
                {
                    "path": "Placement.AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "selectionMode": "ALL"
        },
        "Subnet": {
            "resourceType": "aws:ec2:subnet",
            "resourceTags": {
                "AzImpairmentPower": "DisruptSubnet"
            },
            "filters": [
                {
                    "path": "AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "selectionMode": "ALL",
            "parameters": {}
        },
        "RDS-Cluster": {
            "resourceType": "aws:rds:cluster",
            "resourceTags": {
                "AzImpairmentPower": "DisruptRds"
            },
            "selectionMode": "ALL",
            "parameters": {
                "writerAvailabilityZoneIdentifiers": "us-east-1a"
            }
        },
        "ElastiCache-Cluster": {
            "resourceType": "aws:elasticache:replicationgroup",
            "resourceTags": {
                "AzImpairmentPower": "DisruptElasticache"
            },
            "selectionMode": "ALL",
            "parameters": {
                "availabilityZoneIdentifier": "us-east-1a"
            }
        }
    },
    "actions": {
        "Pause-Instance-Launches": {
            "actionId": "aws:ec2:api-insufficient-instance-capacity-error",
            "parameters": {
                "availabilityZoneIdentifiers": "us-east-1a",
                "duration": "PT30M",
                "percentage": "100"
            },
            "targets": {
                "Roles": "IAM-role"
            }
        },
        "Pause-EBS-IO": {
            "actionId": "aws:ebs:pause-volume-io",
            "parameters": {
                "duration": "PT30M"
            },
            "targets": {
                "Volumes": "EBS-Volumes"
            },
            "startAfter": [
                "Stop-Instances",
                "Stop-ASG-Instances"
            ]
        },
        "Stop-Instances": {
            "actionId": "aws:ec2:stop-instances",
            "parameters": {
                "completeIfInstancesTerminated": "true",
                "startInstancesAfterDuration": "PT30M"
            },
            "targets": {
                "Instances": "EC2-Instances"
            }
        },
        "Pause-ASG-Scaling": {
            "actionId": "aws:ec2:asg-insufficient-instance-capacity-error",
            "parameters": {
                "availabilityZoneIdentifiers": "us-east-1a",
                "duration": "PT30M",
                "percentage": "100"
            },
            "targets": {
                "AutoScalingGroups": "ASG"
            }
        },
        "Stop-ASG-Instances": {
            "actionId": "aws:ec2:stop-instances",
            "parameters": {
                "completeIfInstancesTerminated": "true",
                "startInstancesAfterDuration": "PT30M"
            },
            "targets": {
                "Instances": "ASG-EC2-Instances"
            }
        },
        "Pause-network-connectivity": {
            "actionId": "aws:network:disrupt-connectivity",
            "parameters": {
                "duration": "PT2M",
                "scope": "all"
            },
            "targets": {
                "Subnets": "Subnet"
            }
        },
        "Failover-RDS": {
            "actionId": "aws:rds:failover-db-cluster",
            "parameters": {},
            "targets": {
                "Clusters": "RDS-Cluster"
            }
        },
        "Pause-ElastiCache": {
            "actionId": "aws:elasticache:replicationgroup-interrupt-az-power",
            "parameters": {
                "duration": "PT30M"
            },
            "targets": {
                "ReplicationGroups": "ElastiCache-Cluster"
            }
        }
    },
    "stopConditions": [
        {
            "source": "aws:cloudwatch:alarm",
            "value": ""
        }
    ],
    "roleArn": "",
    "tags": {
        "Name": "AZ Impairment: Power Interruption"
    },
    "logConfiguration": {
        "logSchemaVersion": 2
    },
    "experimentOptions": {
        "accountTargeting": "single-account",
        "emptyTargetResolutionMode": "skip"
    },
    "description": "Affect multiple resource types in a single AZ, targeting by tags and explicit ARNs, to approximate power interruption in one AZ."
}
```

# AZ: Application Slowdown
<a name="az-application-slowdown-scenario"></a>

 AZ: Application Slowdown シナリオを使用して、単一のアベイラビリティーゾーン (AZ) 内のリソース間にレイテンシーを追加できます。このレイテンシーにより、アプリケーションの速度低下、部分的な中断、グレー障害と呼ばれる多くの症状が発生します。ターゲットリソース間のネットワークフローにレイテンシーを追加します。ネットワークフローは、コンピューティングリソース間のトラフィック、つまりサーバー、コンテナ、サービス間のリクエスト、レスポンス、その他の通信を伝送するデータパケットを表します。このシナリオは、オブザーバビリティ設定の検証、アラームしきい値の調整、速度低下に対するアプリケーションの感度の検出、AZ 退避などの重要な運用上の意思決定の実践に役立ちます。

 デフォルトでは、シナリオは 30 分間、選択した AZ 内のターゲットリソース間のネットワークフローの 100% に 200 ミリ秒のレイテンシーを追加します。AWS FIS コンソール**の共有パラメータの編集**ダイアログを使用して、シナリオレベルで次のパラメータを調整し、基盤となるアクションに適用できます。
+  アベイラビリティーゾーン - シナリオで損なう AZ を選択できます。
+  ミリ秒 (ms) のレイテンシー - アプリケーションの感度とニーズに基づいて調整します。たとえば、より機密性の高いアプリケーションではレイテンシーを低く設定したり、タイムアウト処理をテストしたりすることができます。現在のアプリケーションレイテンシーの倍数をベースラインとして使用することを検討してください。
+  フローの割合 - トラフィックのサブセットを損なうように減らします。たとえば、ネットワークフローの 25% に影響する 200 ミリ秒のレイテンシーを追加して、より微妙なテストを行うことができます。
+  Duration - 実験の実行時間を設定します。を短縮してテストを高速化したり、長時間持続テストを実行したりできます。たとえば、障害が発生した条件下で復旧メカニズムをテストするには、期間を 2 時間に設定します。
+  リソースターゲティング - タグ (EC2 インスタンスまたは EC2 または Fargate の ECS タスクの場合) またはラベル (EC2 の EKS ポッドの場合) を使用して、シナリオ全体のターゲットリソースを定義できますEC2。独自のタグとラベルを指定することも、シナリオで提供されるデフォルトを使用することもできます。タグやラベルを使用しない場合は、他のパラメータを指定して アクションを編集してリソースをターゲットにできます。
+  カスタマイズ - EC2 または ECS リソースをターゲットにしない場合は、アクションをデフォルトのタグのままにできます。実験では、ターゲットとするリソースが見つからず、アクションはスキップされます。ただし、EKS リソースをターゲットにしない場合は、EKS クラスター識別子を指定する必要があるため、シナリオから EKS アクションとターゲットを完全に削除する必要があります。さらに詳細なカスタマイズのために、実験テンプレートで個々のアクションを直接変更できます。

## アクション
<a name="az-application-slowdown-scenario-actions"></a>

 以下のアクションを組み合わせると、ネットワークフローにレイテンシーが追加され、アプリケーションを介して伝播されるため、アプリケーションの速度低下の多くの症状を 1 つの AZ で作成できます。これらのアクションは並行して実行され、デフォルトでは 200 ミリ秒のレイテンシーが 30 分間追加されます。この期間を過ぎると、レイテンシーは通常のレベルに戻ります。このシナリオを実行するには、EC2 インスタンス、ECS タスク、または EKS ポッドのいずれかのリソースタイプが必要です。

### ECS ネットワークレイテンシー
<a name="az-application-slowdown-scenario-actions-ecs-network-latency"></a>

 AZ: Application Slowdown には、ECS タスクのレイテンシーを導入するための [aws:ecs:task-network-latency](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#task-network-latency) が含まれています。アクションは、選択した AZ のタスクをターゲットにします。デフォルトでは、値が の という名前の[タグ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)`AZApplicationSlowdown`を持つタスクを対象としています`LatencyForECS`。デフォルトのタグを独自のタグに置き換えるか、タスクにシナリオタグを追加できます。有効なタスクが見つからない場合、このアクションはスキップされます。ECS で実験を実行する前に、[ECS タスクアクションの設定手順](https://docs.aws.amazon.com/fis/latest/userguide/ecs-task-actions.html)に従う必要があります。

### EKS ネットワークレイテンシー
<a name="az-application-slowdown-scenario-actions-eks-network-latency"></a>

 AZ: Application Slowdown には、EKS ポッドのレイテンシーを導入するための [aws:eks:pod-network-latency](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#pod-network-latency) が含まれています。アクションは、選択した AZ のポッドをターゲットにします。デフォルトでは、key=value 形式のラベルを持つクラスター内のポッドをターゲットにします。デフォルトのラベルは です`AZApplicationSlowdown=LatencyForEKS`。デフォルトのラベルを独自のラベルに置き換えるか、このラベルをポッドに追加できます。有効なポッドが見つからない場合、このアクションはスキップされます。EKS で実験を実行する前に、[EKS ポッドアクションのセットアップ手順](https://docs.aws.amazon.com/fis/latest/userguide/eks-pod-actions.html)に従う必要があります。

### EC2 ネットワークレイテンシー
<a name="az-application-slowdown-scenario-actions-ec2-network-latency"></a>

 AZ: Application Slowdown は、[aws:ssm:send-command](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#ssm-send-command) アクションを使用して [AWSFIS-Run-Network-Latency-Sources](https://docs.aws.amazon.com/fis/latest/userguide/actions-ssm-agent.html#awsfis-run-network-latency-sources) ドキュメントを実行し、EC2 インスタンスのレイテンシーを導入します。アクションは、選択した AZ のインスタンスをターゲットにします。デフォルトでは、値が の という名前の[タグ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)`AZApplicationSlowdown`を持つインスタンスをターゲットにしています`LatencyForEC2`。デフォルトのタグを独自のタグに置き換えるか、このタグをインスタンスに追加できます。有効なインスタンスが見つからない場合、このアクションはスキップされます。SSM を使用して EC2 で実験を実行する前に、[AWS Systems Manager エージェントを設定](https://docs.aws.amazon.com/fis/latest/userguide/actions-ssm-agent.html)する必要があります。

## 制限事項
<a name="az-application-slowdown-scenario-limitations"></a>
+  このシナリオに[停止条件](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions.html)は含まれていません。アプリケーションに適した停止条件を実験テンプレートに追加する必要があります。

## 要件
<a name="az-application-slowdown-scenario-requirements"></a>
+  AWS FIS [実験ロール](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)に必要なアクセス許可を追加します。
+  選択した AZ 内の EC2 インスタンス、ECS タスク、または EKS ポッドの 3 つのタイプのいずれかから 1 つ以上のリソースをターゲットにする必要があります。
+  シナリオのすべてのターゲットは、同じ VPC 内にある必要があります。

## アクセス許可
<a name="az-application-slowdown-scenario-permissions"></a>

 このシナリオを実行するには、FIS が実験でターゲットとするリソースタイプのロールと管理ポリシー、EC2、ECS、EKS を引き受けることを許可する信頼ポリシーを持つ IAM ロールが必要です。AZ: Application Slowdown シナリオから実験テンプレートを作成すると、FIS は信頼ポリシーと次の AWS 管理ポリシーを使用してロールを作成します。
+  [AWSFaultInjectionSimulatorEC2Access](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorEC2Access) 
+  [AWSFaultInjectionSimulatorECSAccess](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorECSAccess) 
+  [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorEKSAccess) 

 既存の [IAM ロール](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)を使用して AZ: Application Slowdown シナリオを実行している場合は、次のポリシーをアタッチして AWS FIS に必要なアクセス許可を付与できます。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeTasks",
            "Effect": "Allow",
            "Action": "ecs:DescribeTasks",
            "Resource": "*"
        },
        {
            "Sid": "DescribeContainerInstances",
            "Effect": "Allow",
            "Action": "ecs:DescribeContainerInstances",
            "Resource": "arn:aws:ecs:*:*:container-instance/*/*"
        },
        {
            "Sid": "DescribeInstances",
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        },
        {
            "Sid": "DescribeSubnets",
            "Effect": "Allow",
            "Action": "ec2:DescribeSubnets",
            "Resource": "*"
        },
        {
            "Sid": "DescribeCluster",
            "Effect": "Allow",
            "Action": "eks:DescribeCluster",
            "Resource": "arn:aws:eks:*:*:cluster/*"
        },
        {
            "Sid": "TargetResolutionByTags",
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        },
        {
            "Sid": "SendCommand",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ssm:*:*:managed-instance/*",
                "arn:aws:ssm:*:*:document/*"
            ]
        },
        {
            "Sid": "ListCommands",
            "Effect": "Allow",
            "Action": [
                "ssm:ListCommands"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CancelCommand",
            "Effect": "Allow",
            "Action": [
                "ssm:CancelCommand"
            ],
            "Resource": "*"
        }
    ]
}
```

## シナリオのコンテンツ
<a name="az-application-slowdown-scenario-content"></a>

 次のコンテンツはシナリオを定義しています。この JSON を保存し、AWS コマンドラインインターフェイス (AWS CLI) から [create-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/create-experiment-template.html) コマンドを使用して[実験テンプレート](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates.html)を作成するのに使用できます。シナリオの最新バージョンについては、FIS コンソールのシナリオライブラリにアクセスし、**コンテンツ**タブに移動します。

```
{
    "tags": {
        "Name": "AZ: Application Slowdown"
    },
    "description": "Add latency between resources within a single AZ.",
    "actions": {
        "LatencyForEKS": {
            "actionId": "aws:eks:pod-network-latency",
            "parameters": {
                "delayMilliseconds": "200",
                "duration": "PT30M",
                "flowsPercent": "100",
                "interface": "DEFAULT",
                "kubernetesServiceAccount": "fis-service-account",
                "sources": "us-east-1a"
            },
            "targets": {
                "Pods": "TargetsForEKS"
            }
        },
        "LatencyForEC2": {
            "actionId": "aws:ssm:send-command",
            "parameters": {
                "duration": "PT30M",
                "documentArn": "arn:aws:ssm:us-east-1::document/AWSFIS-Run-Network-Latency-Sources",
                "documentParameters": "{\"DelayMilliseconds\":\"200\",\"Sources\":\"us-east-1a\",\"Interface\":\"DEFAULT\",\"TrafficType\":\"egress\",\"DurationSeconds\":\"1800\",\"FlowsPercent\":\"100\",\"InstallDependencies\":\"True\"}"
            },
            "targets": {
                "Instances": "TargetsForEC2"
            }
        },
        "LatencyForECS": {
            "actionId": "aws:ecs:task-network-latency",
            "parameters": {
                "delayMilliseconds": "200",
                "duration": "PT30M",
                "flowsPercent": "100",
                "installDependencies": "true",
                "sources": "us-east-1a",
                "useEcsFaultInjectionEndpoints": "true"
            },
            "targets": {
                "Tasks": "TargetsForECS"
            },
            "startAfter": []
        }
    },
    "targets": {
        "TargetsForEKS": {
            "parameters": {
                "availabilityZoneIdentifier": "us-east-1a",
                "clusterIdentifier": "",
                "namespace": "default",
                "selectorType": "labelSelector",
                "selectorValue": "AZApplicationSlowdown=LatencyForEKS"
            },
            "resourceType": "aws:eks:pod",
            "selectionMode": "ALL"
        },
        "TargetsForEC2": {
            "filters": [
                {
                    "path": "Placement.AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "resourceTags": {
                "AZApplicationSlowdown": "LatencyForEC2"
            },
            "resourceType": "aws:ec2:instance",
            "selectionMode": "ALL"
        },
        "TargetsForECS": {
            "filters": [
                {
                    "path": "AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "resourceTags": {
                "AZApplicationSlowdown": "LatencyForECS"
            },
            "resourceType": "aws:ecs:task",
            "selectionMode": "ALL"
        }
    },
    "experimentOptions": {
        "accountTargeting": "single-account",
        "emptyTargetResolutionMode": "skip"
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ]
}
```

# Cross-AZ: Traffic Slowdown
<a name="cross-az-traffic-slowdown-scenario"></a>

 Cross-AZ: Traffic Slowdown シナリオを使用して、パケット損失を挿入し、アベイラビリティーゾーン (AZs) 間のトラフィックを中断および減速できます。パケット損失は、グレー障害と呼ばれる部分的な中断であるクロス AZ 通信を損ないます。ターゲットリソース間のネットワークフローにパケット損失を注入します。ネットワークフローは、コンピューティングリソース間のトラフィックを表します。サーバー、コンテナ、サービス間のリクエスト、レスポンス、その他の通信を伝送するデータパケットです。このシナリオは、オブザーバビリティの設定の検証、アラームのしきい値の調整、AZ 間の通信におけるアプリケーションの機密性と依存関係の検出、AZ 退避などの重要な運用上の意思決定の実践に役立ちます。

 デフォルトでは、シナリオは 30 分間、選択した AZ からのターゲットリソースのアウトバウンドネットワークフローの 100% に 15% のパケット損失を挿入します。AWS FIS コンソール**の共有パラメータの編集**ダイアログを使用して、シナリオレベルで以下のパラメータを調整し、基盤となるアクションに適用できます。
+  アベイラビリティーゾーン - 中断する AZ を選択できます。パケット損失は、その AZ からリージョン内の他の AZs に挿入されます。
+  パケット損失 - パケット損失を 5% 以上の微妙な中断テスト用に低く調整し、50% などの重大な通信低下と復旧メカニズムをテストします。さらに、接続全体への影響については 100% もテストします。
+  フローの割合 - トラフィックのサブセットを損なうように減らします。たとえば、ネットワークフローの 25% に影響する 15% のパケット損失を挿入して、さらに微妙なテストを行うことができます。
+  Duration - 実験の実行時間を設定します。を短縮してテストを高速化したり、長期間持続するテストを実行したりできます。例えば、障害のある条件下で復旧メカニズムをテストできるように、期間を 2 時間に設定します。
+  リソースターゲット - タグ (EC2 インスタンスまたは EC2 または Fargate の ECS タスクの場合) またはラベル (EC2 の EKS ポッドの場合) を使用して、シナリオ全体のターゲットリソースを定義できますEC2。独自のタグとラベルを指定するか、シナリオで提供されるデフォルトを使用できます。タグやラベルを使用しない場合は、他のパラメータを指定して アクションを編集してリソースをターゲットにできます。
+  カスタマイズ - EC2 または ECS リソースをターゲットにしない場合は、アクションをデフォルトのタグのままにできます。実験では、ターゲットとするリソースが見つからず、アクションはスキップされます。ただし、EKS リソースをターゲットにしない場合は、EKS クラスター識別子を指定する必要があるため、シナリオから EKS アクションとターゲットを完全に削除する必要があります。さらに詳細なカスタマイズのために、実験テンプレートで個々のアクションを直接変更できます。

## アクション
<a name="cross-az-traffic-slowdown-scenario-actions"></a>

 次のアクションは、ターゲット AZs からネットワークレイヤーのリージョン AZs 内の他の AZ へのアウトバウンド通信にパケット損失を導入することで、AZ 間のトラフィックの速度低下の症状を作成するのに役立ちます。これらのアクションは並行して実行され、それぞれがデフォルトで 30 分間 15% のパケット損失を挿入します。この期間を過ぎると、通信は通常に戻ります。シナリオを実行するには、選択した AZ に EC2 インスタンス、ECS タスク、または EKS ポッドのいずれかのリソースタイプが必要です。

### ECS ネットワークパケット損失
<a name="cross-az-traffic-slowdown-scenario-actions-ecs-network-packet-loss"></a>

 クロス AZ: トラフィックスローダウンには、ECS タスクのパケット損失を挿入するための [aws:ecs:task-network-packet-loss](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#task-network-packet-loss) が含まれます。アクションは、選択した AZ 内のタスクをターゲットとし、リージョン内の他のすべての AZs。アクションを編集し、 `Sources`フィールドで AZs を追加または削除することで、影響の範囲をさらにカスタマイズできます。デフォルトでは、値が の という名前の[タグ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)`CrossAZTrafficSlowdown`を持つタスクを対象としています`PacketLossForECS`。デフォルトのタグを独自のタグに置き換えるか、タスクにシナリオタグを追加できます。有効なタスクが見つからない場合、このアクションはスキップされます。ECS で実験を実行する前に、[ECS タスクアクションの設定手順](https://docs.aws.amazon.com/fis/latest/userguide/ecs-task-actions.html)に従う必要があります。

### EKS ネットワークパケット損失
<a name="cross-az-traffic-slowdown-scenario-actions-eks-network-packet-loss"></a>

 クロス AZ: トラフィックスローダウンには、EKS ポッドのパケット損失を挿入するための [aws:eks:pod-network-packet-loss](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#pod-network-packet-loss) が含まれます。アクションは、選択した AZ 内のポッドをターゲットとし、リージョン内の他のすべての AZs へのアウトバウンド通信を損ないます。アクションを編集し、 `Sources`フィールドで AZs を追加または削除することで、影響の範囲をさらにカスタマイズできます。デフォルトでは、key=value 形式のラベルを持つクラスター内のポッドをターゲットにします。デフォルトのラベルは です`CrossAZTraffic=PacketLossForEKS`。デフォルトのラベルを独自のラベルに置き換えるか、このラベルをポッドに追加できます。有効なポッドが見つからない場合、このアクションはスキップされます。EKS で実験を実行する前に、[EKS ポッドアクションのセットアップ手順](https://docs.aws.amazon.com/fis/latest/userguide/eks-pod-actions.html)に従う必要があります。

### EC2 ネットワークパケット損失
<a name="cross-az-traffic-slowdown-scenario-actions-ec2-network-packet-loss"></a>

 クロス AZ: Traffic Slowdown は、[aws:ssm:send-command](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#ssm-send-command) アクションを使用して [AWSFIS-Run-Network-Packet-Loss-Sources](https://docs.aws.amazon.com/fis/latest/userguide/actions-ssm-agent.html#awsfis-run-network-packet-loss-sources) ドキュメントを実行し、EC2 インスタンスのパケット損失を挿入し、リージョン内の他のすべての AZs へのアウトバウンド通信を妨げます。アクションを編集し、AZs を `Sources`フィールドに追加または削除することで、影響の範囲をさらにカスタマイズできます。アクションは、選択した AZ のインスタンスをターゲットにします。デフォルトでは、値が の という名前の[タグ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)`CrossAZTrafficSlowdown`を持つインスタンスをターゲットにしています`PacketLossForEC2`。デフォルトのタグを独自のタグに置き換えるか、このタグをインスタンスに追加できます。有効なインスタンスが見つからない場合、このアクションはスキップされます。SSM を使用して EC2 で実験を実行する前に、[AWS Systems Manager エージェントを設定](https://docs.aws.amazon.com/fis/latest/userguide/actions-ssm-agent.html)する必要があります。

## 制限事項
<a name="cross-az-traffic-slowdown-scenario-limitations"></a>
+  このシナリオに[停止条件](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions.html)は含まれていません。アプリケーションに適した停止条件を実験テンプレートに追加する必要があります。

## 要件
<a name="cross-az-traffic-slowdown-scenario-requirements"></a>
+  AWS FIS [実験ロール](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)に必要なアクセス許可を追加します。
+  選択した AZ 内の EC2 インスタンス、ECS タスク、または EKS ポッドの 3 つのタイプのいずれかから 1 つ以上のリソースをターゲットにする必要があります。
+  シナリオのすべてのターゲットは、同じ VPC 内にある必要があります。

## アクセス許可
<a name="cross-az-traffic-slowdown-scenario-permissions"></a>

 このシナリオを実行するには、FIS が実験でターゲットとするリソースタイプのロールと管理ポリシー、EC2、ECS、EKS を引き受けることを許可する信頼ポリシーを持つ IAM ロールが必要です。Cross-AZ: Traffic Slowdown シナリオから実験テンプレートを作成すると、FIS は信頼ポリシーと次の AWS 管理ポリシーを使用してロールを作成します。
+  [AWSFaultInjectionSimulatorEC2Access](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorEC2Access) 
+  [AWSFaultInjectionSimulatorECSAccess](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorECSAccess) 
+  [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorEKSAccess) 

 既存の [IAM ロール](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)を使用して Cross-AZ: Traffic Slowdown シナリオを実行している場合は、次のポリシーをアタッチして AWS FIS に必要なアクセス許可を付与できます。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeTasks",
            "Effect": "Allow",
            "Action": "ecs:DescribeTasks",
            "Resource": "*"
        },
        {
            "Sid": "DescribeContainerInstances",
            "Effect": "Allow",
            "Action": "ecs:DescribeContainerInstances",
            "Resource": "arn:aws:ecs:*:*:container-instance/*/*"
        },
        {
            "Sid": "DescribeInstances",
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        },
        {
            "Sid": "DescribeSubnets",
            "Effect": "Allow",
            "Action": "ec2:DescribeSubnets",
            "Resource": "*"
        },
        {
            "Sid": "DescribeCluster",
            "Effect": "Allow",
            "Action": "eks:DescribeCluster",
            "Resource": "arn:aws:eks:*:*:cluster/*"
        },
        {
            "Sid": "TargetResolutionByTags",
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        },
        {
            "Sid": "SendCommand",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ssm:*:*:managed-instance/*",
                "arn:aws:ssm:*:*:document/*"
            ]
        },
        {
            "Sid": "ListCommands",
            "Effect": "Allow",
            "Action": [
                "ssm:ListCommands"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CancelCommand",
            "Effect": "Allow",
            "Action": [
                "ssm:CancelCommand"
            ],
            "Resource": "*"
        }
    ]
}
```

## シナリオのコンテンツ
<a name="cross-az-traffic-slowdown-scenario-content"></a>

 次のコンテンツはシナリオを定義しています。この JSON を保存し、AWS コマンドラインインターフェイス (AWS CLI) から [create-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/create-experiment-template.html) コマンドを使用して[実験テンプレート](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates.html)を作成するのに使用できます。シナリオの最新バージョンについては、FIS コンソールのシナリオライブラリにアクセスし、**コンテンツ**タブに移動します。

```
{
    "tags": {
        "Name": "Cross-AZ: Traffic Slowdown"
    },
    "description": "Inject packet loss to disrupt and slow down traffic between AZs.",
    "actions": {
        "PacketLossForEC2": {
            "actionId": "aws:ssm:send-command",
            "parameters": {
                "duration": "PT30M",
                "documentArn": "arn:aws:ssm:us-east-1::document/AWSFIS-Run-Network-Packet-Loss-Sources",
                "documentParameters": "{\"Sources\":\"us-east-1b,us-east-1c,us-east-1d,us-east-1e,us-east-1f\",\"LossPercent\":\"15\",\"Interface\":\"DEFAULT\",\"TrafficType\":\"egress\",\"DurationSeconds\":\"1800\",\"FlowsPercent\":\"100\",\"InstallDependencies\":\"True\"}"
            },
            "targets": {
                "Instances": "TargetsForEC2"
            }
        },
        "PacketLossForECS": {
            "actionId": "aws:ecs:task-network-packet-loss",
            "parameters": {
                "sources": "us-east-1b,us-east-1c,us-east-1d,us-east-1e,us-east-1f",
                "lossPercent": "15",
                "duration": "PT30M",
                "flowsPercent": "100",
                "installDependencies": "true",
                "useEcsFaultInjectionEndpoints": "true"
            },
            "targets": {
                "Tasks": "TargetsForECS"
            }
        },
        "PacketLossForEKS": {
            "actionId": "aws:eks:pod-network-packet-loss",
            "parameters": {
                "sources": "us-east-1b,us-east-1c,us-east-1d,us-east-1e,us-east-1f",
                "lossPercent": "15",
                "duration": "PT30M",
                "flowsPercent": "100",
                "interface": "DEFAULT",
                "kubernetesServiceAccount": "fis-service-account"
            },
            "targets": {
                "Pods": "TargetsForEKS"
            }
        }
    },
    "targets": {
        "TargetsForEC2": {
            "filters": [
                {
                    "path": "Placement.AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "resourceTags": {
                "CrossAZTrafficSlowdown": "PacketLossForEC2"
            },
            "resourceType": "aws:ec2:instance",
            "selectionMode": "ALL"
        },
        "TargetsForECS": {
            "filters": [
                {
                    "path": "AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "resourceTags": {
                "CrossAZTrafficSlowdown": "PacketLossForECS"
            },
            "resourceType": "aws:ecs:task",
            "selectionMode": "ALL"
        },
        "TargetsForEKS": {
            "parameters": {
                "availabilityZoneIdentifier": "us-east-1a",
                "clusterIdentifier": "",
                "namespace": "default",
                "selectorType": "labelSelector",
                "selectorValue": "CrossAZTrafficSlowdown=PacketLossForEKS"
            },
            "resourceType": "aws:eks:pod",
            "selectionMode": "ALL"
        }
    },
    "experimentOptions": {
        "accountTargeting": "single-account",
        "emptyTargetResolutionMode": "skip"
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ]
}
```

# Cross-Region: Connectivity
<a name="cross-region-scenario"></a>

このCross-Region: Connectivityシナリオを使用して、実験リージョンから送信先リージョンへのアプリケーションネットワークトラフィックをブロックし、Amazon S3 および Amazon DynamoDB マルチリージョングローバルテーブルのクロスリージョンレプリケーションを一時停止できます。クロスリージョン: 接続は、実験を実行するリージョン (実験リージョン**) からのアウトバウンドアプリケーショントラフィックに影響します。実験リージョン** (宛先リージョン**) から分離するリージョンからのステートレスインバウンドトラフィックはブロックされないことがあります。AWS マネージドサービスからのトラフィックはブロックされないことがあります。

このシナリオを使用して、宛先リージョンのリソースが実験リージョンからアクセスできない場合でも、マルチリージョンアプリケーションが想定どおりに動作することをデモンストレーションできます。これには、トランジットゲートウェイとルートテーブルをターゲットにすることにより、実験リージョンから宛先リージョンへのネットワークトラフィックをブロックすることが含まれます。また、S3 および DynamoDB グローバルテーブルのクロスリージョンレプリケーションを一時停止します。デフォルトで、ターゲットが見つからないアクションはスキップされます。

## アクション
<a name="cross-region-scenario-actions"></a>

次のアクションにより、含まれている AWS のサービスのクロスリージョン接続をブロックします。アクションは並列で実行されます。デフォルトで、シナリオは 3 時間トラフィックをブロックしますが、最大 12 時間まで増やすことができます。

### Transit Gateway の接続を中断する
<a name="cross-region-scenario-actions-disrupt-transit-gateway-connectivity"></a>

Cross Region: Connectivity には [aws:network:transit-gateway-disrupt-cross-region-connectivity](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#network-actions-reference) が含まれ、実験リージョン**の VPC からトランジットゲートウェイで接続された宛先リージョン**の VPC へのクロスリージョンネットワークトラフィックをブロックします。これは、実験リージョン**内の VPC エンドポイントへのアクセスには影響しませんが、実験リージョン**から宛先リージョン**の VPC エンドポイント宛てのトラフィックはブロックします。

このアクションは、実験リージョン**と宛先リージョン**を接続するトランジットゲートウェイをターゲットにしています。デフォルトで、`Allowed` の値を持つ `DisruptTransitGateway` という名前の[タグ](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-transit-gateways.html#tgw-tagging)のトランジットゲートウェイがターゲットになります。このタグをトランジットゲートウェイに追加するか、またはデフォルトタグを実験テンプレートの独自のタグに置き換えることができます。デフォルトで、有効なトランジットゲートウェイが見つからない場合、このアクションはスキップされます。

### サブネット接続を中断する
<a name="cross-region-scenario-actions-disrupt-subnet-connectivity"></a>

Cross Region: Connectivity には [aws:network:route-table-disrupt-cross-region-connectivity](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#network-actions-reference) が含まれ、実験リージョン**の VPC から宛先リージョン**のパブリック AWS IP ブロックへのクロスリージョンネットワークトラフィックをブロックします。これらのパブリック IP ブロックには、宛先リージョン**の AWS のサービスエンドポイント (S3 リージョナルエンドポイントなど) と、マネージドサービスの AWS IP ブロック (ロードバランサーや Amazon API Gateway に使用される IP アドレスなど) が含まれます。このアクションは、実験リージョン**から宛先リージョン**へのクロスリージョン VPC ピアリング接続を介したネットワーク接続もブロックします。これは、実験リージョン**の VPC エンドポイントへのアクセスには影響しませんが、実験リージョン**から宛先リージョン**の VPC エンドポイント宛てのトラフィックはブロックします。

このアクションは、実験リージョンのサブネットをターゲットにしています。デフォルトで、`Allowed` の値を持つ `DisruptSubnet` という名前の[タグ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)のサブネットがターゲットになります。このタグをサブネットに追加するか、またはデフォルトタグを実験テンプレートの独自のタグに置き換えることができます。デフォルトで、有効なサブネットが見つからない場合、このアクションはスキップされます。

### VPC エンドポイント接続の中断
<a name="cross-region-scenario-actions-disrupt-vpc-endpoint-connectivity"></a>

Cross Region: Connectivity には、ターゲット VPC エンドポイントに関連付けられたサービスへの [aws:network:disrupt-vpc-endpoint](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#network-actions-reference) 中断接続が含まれています。たとえば、VPC エンドポイントが com.amazonaws.us-east-1.ec2 へのプライベートリンクを作成すると、そのサービスへの接続が中断されます。

このアクションは、実験リージョンの VPC エンドポイントをターゲットにします。デフォルトでは、値 を持つ DisruptVpcEndpoint という名前の[タグ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)を持つインターフェイス VPC エンドポイントをターゲットにします`Allowed`。このタグを VPC エンドポイントに追加するか、デフォルトのタグを実験テンプレートの独自のタグに置き換えることができます。デフォルトでは、有効な VPC エンドポイントが見つからない場合、このアクションはスキップされます。

### S3 レプリケーションを一時停止する
<a name="cross-region-scenario-actions-pause-s3-replication"></a>

Cross Region: Connectivity には [aws:s3:bucket-pause-replication](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#s3-actions-reference-fis) が含まれ、実験リージョン**からターゲットバケットの宛先リージョン**への S3 レプリケーションを一時停止します。宛先リージョン**から実験リージョン**へのレプリケーションには影響ありません。シナリオが終了した後、バケットのレプリケーションは一時停止した時点から再開されます。レプリケーションですべてのオブジェクトの同期を保つまでにかかる時間は、実験の期間と、バケットへのオブジェクトのアップロード速度に応じて異なることに注意してください。

このアクションは、宛先リージョンの S3 バケットに[クロスリージョンレプリケーション](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html) (CRR) が有効になっている実験リージョンの S3 バケットをターゲットにしています。デフォルトで、`Allowed` の値を持つ `DisruptS3` という名前の[タグ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/view-bucket-properties.html)のバケットがターゲットになります。このタグをバケットに追加するか、またはデフォルトタグを実験テンプレートの独自のタグに置き換えることができます。デフォルトで、有効なバケットが見つからない場合、このアクションはスキップされます。

### DynamoDB レプリケーションを一時停止する
<a name="cross-region-scenario-actions-pause-dynamodb-replication"></a>

Cross-Region: Connectivity には [aws:dynamodb:global-table-pause-replication](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#dynamodb-actions-reference) が含まれ、実験リージョンと、宛先リージョンを含め、他のすべてのリージョンとの間のレプリケーションを一時停止します。これにより、実験リージョン**とのレプリケーションは回避されますが、他のリージョン間のレプリケーションには影響しません。シナリオが終了した後、テーブルのレプリケーションは一時停止した時点から再開されます。レプリケーションですべてのデータの同期を保つまでにかかる時間は、実験の期間と、テーブルへの変更速度に応じて異なることに注意してください。

このアクションは、実験リージョン内の DynamoDB マルチリージョンと結果整合性のあるグローバルテーブルの両方をターゲットとします。デフォルトで、`Allowed` の値を持つ `DisruptDynamoDb` という名前の[タグ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html)のテーブルがターゲットになります。このタグをテーブルに追加することも、デフォルトタグを実験テンプレートの独自のタグに置き換えることもできます。デフォルトで、有効なグローバルテーブルが見つからない場合、このアクションはスキップされます。

### MemoryDB マルチリージョンレプリケーションを一時停止する
<a name="cross-region-scenario-actions-pause-memorydb-multi-region-replication"></a>

Cross-Region: Connectivity には、[aws:memorydb:multi-region-cluster-pause-replication](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#memorydb-actions-reference) が含まれており、実験リージョンのリージョンメンバークラスターからターゲットのマルチリージョンクラスターの残りのクラスターへのレプリケーションを一時停止します。他のリージョンメンバークラスター間のレプリケーションは影響を受けません。シナリオが終了すると、レプリケーションは一時停止した時点から再開されます。レプリケーションがメンバークラスター間でデータを同期する時間は、実験の期間とクラスターに書き込まれるデータの割合によって異なることに注意してください。

このアクションは、実験リージョンのリージョンメンバーを持つ MemoryDB マルチリージョンクラスターをターゲットにします。デフォルトでは、値が `DisruptMemoryDB`の という名前の[タグ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html)を持つマルチリージョンクラスターを対象としています`Allowed`。このタグをマルチリージョンクラスターに追加するか、実験テンプレートのデフォルトタグを独自のタグに置き換えることができます。デフォルトで、有効なクラスターが見つからない場合、このアクションはスキップされます。

## 制限事項
<a name="cross-region-scenario-limitations"></a>
+ このシナリオに[停止条件](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions.html)は含まれていません。アプリケーションに適した停止条件を実験テンプレートに追加する必要があります。

## 要件
<a name="cross-region-scenario-requirements"></a>
+ AWS FIS [実験ロール](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)に必要なアクセス許可を追加します。
+ リソースタグは、実験のターゲットとなるリソースに適用する必要があります。独自のタグ付け規則を使用することも、シナリオで定義したデフォルトタグを使用することもできます。

## アクセス許可
<a name="cross-region-scenario-permissions"></a>

次のポリシーは、Cross-Region: Connectivity シナリオを使用して実験を実行するために必要なアクセス許可を AWS FIS に付与しています。このポリシーを[実験ロール](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)にアタッチする必要があります。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RouteTableDisruptConnectivity1",
            "Effect": "Allow",
            "Action": "ec2:CreateRouteTable",
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity2",
            "Effect": "Allow",
            "Action": "ec2:CreateRouteTable",
            "Resource": "arn:aws:ec2:*:*:vpc/*"
        },
        {
            "Sid": "RouteTableDisruptConnectivity21",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateRouteTable",
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity3",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateNetworkInterface",
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity4",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:prefix-list/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateManagedPrefixList",
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity5",
            "Effect": "Allow",
            "Action": "ec2:DeleteRouteTable",
            "Resource": [
                "arn:aws:ec2:*:*:route-table/*",
                "arn:aws:ec2:*:*:vpc/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity6",
            "Effect": "Allow",
            "Action": "ec2:CreateRoute",
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity7",
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterface",
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity8",
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterface",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        },
        {
            "Sid": "RouteTableDisruptConnectivity9",
            "Effect": "Allow",
            "Action": "ec2:DeleteNetworkInterface",
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity10",
            "Effect": "Allow",
            "Action": "ec2:CreateManagedPrefixList",
            "Resource": "arn:aws:ec2:*:*:prefix-list/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity11",
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteManagedPrefixList",
                "ec2:ModifyManagedPrefixList"
            ],
            "Resource": "arn:aws:ec2:*:*:prefix-list/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "EC2DescribeResources",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeVpcs",
                "ec2:DescribeVpcPeeringConnections",
                "ec2:DescribeManagedPrefixLists",
                "ec2:DescribeSubnets",
                "ec2:DescribeRouteTables",
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeTransitGatewayPeeringAttachments",
                "ec2:DescribeTransitGatewayAttachments",
                "ec2:DescribeTransitGateways",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Sid": "RouteTableDisruptConnectivity14",
            "Effect": "Allow",
            "Action": "ec2:ReplaceRouteTableAssociation",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:route-table/*"
            ]
        },
        {
            "Sid": "RouteTableDisruptConnectivity15",
            "Effect": "Allow",
            "Action": "ec2:GetManagedPrefixListEntries",
            "Resource": "arn:aws:ec2:*:*:prefix-list/*"
        },
        {
            "Sid": "RouteTableDisruptConnectivity16",
            "Effect": "Allow",
            "Action": "ec2:AssociateRouteTable",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:route-table/*"
            ]
        },
        {
            "Sid": "RouteTableDisruptConnectivity17",
            "Effect": "Allow",
            "Action": "ec2:DisassociateRouteTable",
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity18",
            "Effect": "Allow",
            "Action": "ec2:DisassociateRouteTable",
            "Resource": "arn:aws:ec2:*:*:subnet/*"
        },
        {
            "Sid": "RouteTableDisruptConnectivity19",
            "Effect": "Allow",
            "Action": "ec2:ModifyVpcEndpoint",
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "TransitGatewayDisruptConnectivity1",
            "Effect": "Allow",
            "Action": [
                "ec2:DisassociateTransitGatewayRouteTable",
                "ec2:AssociateTransitGatewayRouteTable"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:transit-gateway-route-table/*",
                "arn:aws:ec2:*:*:transit-gateway-attachment/*"
            ]
        },
        {
            "Sid": "S3CrossRegion1",
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Sid": "S3CrossRegion3",
            "Effect": "Allow",
            "Action": "s3:PauseReplication",
            "Resource": "arn:aws:s3:::*",
            "Condition": {
                "StringLike": {
                    "s3:DestinationRegion": "*"
                }
            }
        },
        {
            "Sid": "S3CrossRegion4",
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:PutReplicationConfiguration"
            ],
            "Resource": "arn:aws:s3:::*",
            "Condition": {
                "BoolIfExists": {
                    "s3:isReplicationPauseRequest": "true"
                }
            }
        },
        {
            "Sid": "DynamoDbPauseReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeTable",
                "dynamodb:PutResourcePolicy",
                "dynamodb:GetResourcePolicy",
                "dynamodb:DeleteResourcePolicy"
            ],
            "Resource": [
                "arn:aws:dynamodb:*:*:table/*"
            ]
        },
        {
            "Sid": "DynamoDbMrscPauseReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:InjectError"
            ],
            "Resource": ["*"]
        },
        {
            "Sid": "ResolveResourcesViaTags",
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        },
        {
            "Sid": "MemDbCrossRegion",
            "Effect": "Allow",
            "Action": [
                "memorydb:DescribeMultiRegionClusters",
                "memorydb:PauseMultiRegionClusterReplication"
            ],
            "Resource": [
                "arn:aws:memorydb::*:multiregioncluster/*"
            ]
        },
        {
            "Sid": "DisruptVPCE1",
            "Effect": "Allow",
            "Action": "ec2:CreateSecurityGroup",
            "Resource": [
                "arn:aws:ec2:*:*:vpc/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        },
        {
            "Sid": "DisruptVPCE2",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:security-group/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateSecurityGroup",
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "DisruptVPCE3",
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupEgress"
            ],
            "Resource": "arn:aws:ec2:*:*:security-group/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "DisruptVPCE4",
            "Effect": "Allow",
            "Action": "vpce:AllowMultiRegion",
            "Resource": "arn:aws:ec2:*:*:vpc-endpoint/*"
        },
        {
            "Sid": "ModifyVPCE",
            "Effect": "Allow",
            "Action": "ec2:ModifyVpcEndpoint",
            "Resource": [
                "arn:aws:ec2:*:*:vpc-endpoint/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        }
    ]
}
```

## シナリオのコンテンツ
<a name="cross-region-scenario-content"></a>

次のコンテンツはシナリオを定義しています。この JSON を保存し、AWS コマンドラインインターフェイス (AWS CLI) から [create-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/create-experiment-template.html) コマンドを使用して[実験テンプレート](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates.html)を作成するのに使用できます。シナリオの最新バージョンについては、FIS コンソールのシナリオライブラリを参照してください。

```
{
        "targets": {
                "Transit-Gateway": {
                        "resourceType": "aws:ec2:transit-gateway",
                        "resourceTags": {
                                "TgwTag": "TgwValue"
                        },
                        "selectionMode": "ALL"
                },
                "Subnet": {
                        "resourceType": "aws:ec2:subnet",
                        "resourceTags": {
                                "SubnetKey": "SubnetValue"
                        },
                        "selectionMode": "ALL",
                        "parameters": {}
                },
                "VPC-Endpoint": {
                    "resourceType": "aws:ec2:vpc-endpoint",
                    "resourceTags": {
                        "DisruptPrivateLink": "Allowed"
                    },
                    "selectionMode": "ALL"
                },
                "S3-Bucket": {
                        "resourceType": "aws:s3:bucket",
                        "resourceTags": {
                                "S3Impact": "Allowed"
                        },
                        "selectionMode": "ALL"
                },
                "DynamoDB-Global-Table": {
                        "resourceType": "aws:dynamodb:global-table",
                        "resourceTags": {
                                "DisruptDynamoDb": "Allowed"
                        },
                        "selectionMode": "ALL"
                },
                "MemoryDB-Multi-Region-Cluster": {
                    "resourceType": "aws:memorydb:multi-region-cluster",
                    "resourceTags": {
                        "DisruptMemoryDb": "Allowed"
                    },
                    "selectionMode": "ALL"
                }
        },
        "actions": {
                "Disrupt-Transit-Gateway-Connectivity": {
                        "actionId": "aws:network:transit-gateway-disrupt-cross-region-connectivity",
                        "parameters": {
                                "duration": "PT3H",
                                "region": "eu-west-1"
                        },
                        "targets": {
                                "TransitGateways": "Transit-Gateway"
                        }
                },
                "Disrupt-Subnet-Connectivity": {
                        "actionId": "aws:network:route-table-disrupt-cross-region-connectivity",
                        "parameters": {
                                "duration": "PT3H",
                                "region": "eu-west-1"
                        },
                        "targets": {
                                "Subnets": "Subnet"
                        }
                },
                "Disrupt-Vpc-Endpoint": {
                        "actionId": "aws:network:disrupt-vpc-endpoint",
                        "parameters": {
                                "duration": "PT3H"
                        },
                        "targets": {
                                "VPCEndpoints": "VPC-Endpoint"
                        }
                },
                "Pause-S3-Replication": {
                        "actionId": "aws:s3:bucket-pause-replication",
                        "parameters": {
                                "duration": "PT3H",
                                "region": "eu-west-1"
                        },
                        "targets": {
                                "Buckets": "S3-Bucket"
                        }
                },
                "Pause-DynamoDB-Replication": {
                        "actionId": "aws:dynamodb:global-table-pause-replication",
                        "parameters": {
                                "duration": "PT3H"
                        },
                        "targets": {
                                "Tables": "DynamoDB-Global-Table"
                        }
                },
                "Pause-MemoryDB-Multi-Region-Cluster-Replication": {
                    "actionId": "aws:memorydb:multi-region-cluster-pause-replication",
                    "parameters": {
                        "duration": "PT3H",
                        "region": "eu-west-1"
                    },
                    "targets": {
                        "MultiRegionClusters": "MemoryDB-Multi-Region-Cluster"
                    }
                }
        },
        "stopConditions": [
                {
                        "source": "none"
                }
        ],
        "roleArn": "",
        "logConfiguration": {
                "logSchemaVersion": 2
        },
        "tags": {
                "Name": "Cross-Region: Connectivity"
        },
        "experimentOptions": {
                "accountTargeting": "single-account",
                "emptyTargetResolutionMode": "skip"
        },
        "description": "Block application network traffic from experiment Region to target Region and pause cross-Region replication"
}
```