

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

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