

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

# 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."
}
```