

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

# チュートリアル: 接続イベントをシミュレートする
<a name="fis-tutorial-disrupt-connectivity"></a>

 AWS Fault Injection Service (AWS FIS) を使用して、さまざまな接続イベントをシミュレートできます。 AWS FIS は、次のいずれかの方法でネットワーク接続をブロックすることで接続イベントをシミュレートします。
+ `all` - サブネットに出入りするすべてのトラフィックを拒否します。このオプションでは、サブネット内のネットワークインターフェースに出入りするトラフィックを含め、サブネット内トラフィックが許可されることに注意してください。
+ `availability-zone` - 他のアベイラビリティーゾーン内のサブネットとの間の VPC 内トラフィックを拒否します。
+ `dynamodb` - 現在のリージョンの DynamoDB のリージョナルエンドポイントとの間のトラフィックを拒否します。
+ `prefix-list` - 指定されたプレフィックスリストとの間で送受信されるトラフィックを拒否します。
+ `s3` - 現在のリージョンの Amazon S3 のリージョンエンドポイントとの間のトラフィックを拒否します。
+ `s3express` – ターゲットサブネットの AZ 内の Amazon S3 Express One Zone のゾーンエンドポイントとの間のトラフィックを拒否します。ターゲットサブネットは、S3 Express One Zone AZs に存在する必要があります。詳細については、[S3 Express One Zone アベイラビリティーゾーンとリージョン」を参照してください。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Endpoints.html)
+ `vpc` - VPC に出入りするトラフィックを拒否します。

このチュートリアルを使用して、FIS AWS `aws:network:disrupt-connectivity`アクションを使用してターゲットサブネットで Amazon S3 との接続が失われる実験テンプレートを作成します。

**Topics**
+ [前提条件](#disrupt-connectivity-prerequisites)
+ [ステップ 1: FIS AWS 実験テンプレートを作成する](#disrupt-connectivity-step1)
+ [ステップ 2: Amazon S3 エンドポイントに ping を実行する](#disrupt-connectivity-step2)
+ [ステップ 3: FIS AWS 実験を開始する](#disrupt-connectivity-step3)
+ [ステップ 4: FIS AWS 実験の進行状況を追跡する](#disrupt-connectivity-step4)
+ [ステップ 5: Amazon S3 ネットワークの中断を確認する](#disrupt-connectivity-step5)
+ [ステップ 5：クリーンアップ](#disrupt-connectivity-step6)

## 前提条件
<a name="disrupt-connectivity-prerequisites"></a>

このチュートリアルを開始する前に、 で適切なアクセス許可を持つロールと AWS アカウント、テスト用の Amazon EC2 インスタンスが必要です。

**のアクセス許可を持つロール AWS アカウント**  
ロールを作成し、FIS AWS がユーザーに代わって`aws:network:disrupt-connectivity`アクションを実行できるようにするポリシーをアタッチします。

IAM ロールには次のポリシーが必要です。
+  [AWSFaultInjectionSimulatorNetworkAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorNetworkAccess) – ネットワークインフラストラクチャに関連する AWS FIS アクションを実行するために必要な Amazon EC2 ネットワークおよびその他のサービスの AWS FIS サービスアクセス許可を付与します。

**注記**  
わかりやすくするために、このチュートリアルでは AWS マネージドポリシーを使用します。実稼働環境では、代わりに、ユースケースに必要な最小限の許可のみを与えることをお勧めします。  
IAM ロールの作成方法の詳細については、「IAM **[ユーザーガイド」の「FIS AWS 実験用の IAM ロール (AWS CLI)](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role)」または[「IAM ロールの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user)」を参照してください。

**テスト Amazon EC2 インスタンス**  
テスト Amazon EC2 インスタンスを起動し、接続します。Amazon EC2 インスタンスを起動して接続する方法の詳細については、「*Amazon EC2 ユーザーガイド*」の「[チュートリアル: Amazon EC2 の使用を開始する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted)」を参照してください。

## ステップ 1: FIS AWS 実験テンプレートを作成する
<a name="disrupt-connectivity-step1"></a>

FIS AWS を使用して実験テンプレートを作成します AWS マネジメントコンソール。 AWS FIS テンプレートは、アクション、ターゲット、停止条件、実験ロールで構成されます。テンプレートの仕組みの詳細については、「[AWS FIS 用実験テンプレート](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates)」を参照してください。

作業を開始する前に、次の項目が揃っていることを確認してください。
+ 正確な権限を持つ IAM ロール。
+ Amazon EC2 インスタンス。
+ Amazon EC2 インスタンスのサブネット ID。

**実験テンプレートを作成するには**

1. [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) AWS で FIS コンソールを開きます。

1. ナビゲーションペインで、**[実験テンプレート]** を選択します。

1. **[Create experiment template (実験テンプレートの作成)]** を選択します。

1. **ステップ 1 でテンプレートの詳細を指定する**には、次の手順を実行します。

   1. **説明と名前**に、 などのテンプレートの説明を入力します`Amazon S3 Network Disrupt Connectivity`。

   1. **次**へを選択し、**ステップ 2、アクションとターゲットを指定する**に移動します。

1. **[アクション]** で、**[アクションの追加]** を選択します。

   1. **[名前]** には、「`disruptConnectivity`」と入力します。

   1. **[アクションタイプ]** には、**aws:network:disrupt-connectivity** を選択します。

   1. **[アクションパラメータ]** で、**[期間]** を `2 minutes` に設定します。

   1. **[スコープ]** で **「s3」** を選択します。

   1. 上部の **[保存]** を選択します。

1. **[ターゲット]** に、自動的に作成されたターゲットが表示されます。**[編集]** を選択します。

   1. **[リソースタイプ]** が `aws:ec2:subnet` であることを確認してください。

   1. **[ターゲットメソッド]** で **[リソース ID]** を選択し、[前提条件](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-disrupt-connectivity.html#disrupt-connectivity-prerequisites)のステップで Amazon EC2 インスタンスを作成するときに使用したサブネットを選択します。

   1. **[選択モード]** が **「すべて」** であることを確認してください。

   1. **[保存]** を選択します。

1. **次**へ を選択して、**ステップ 3、サービスアクセスの設定**に移動します。

1. **[サービスアクセス]** で、このチュートリアルの 「[前提条件](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-disrupt-connectivity.html#disrupt-connectivity-prerequisites)」の説明に従って作成した IAM ロールを選択します。ロールが表示されない場合は、必要な信頼関係があることを確認してください。詳細については、「[FIS 実験の IAM AWS ロール](getting-started-iam-service-role.md)」を参照してください。

1. **次**へ を選択して、**ステップ 4、オプション設定の構成**に移動します。

1. (オプション) **[停止条件]** では、条件が発生した場合に実験を停止する CloudWatch アラームを選択できます。詳細については、 「[AWS FIS の停止条件](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions)」を参照してください。

1. (オプション) **[ログ]** で Amazon S3 バケットを選択するか、実験に使用するログを CloudWatch に送信できます。

1. **次**へ を選択して**ステップ 5、確認して作成**に進みます。

1. テンプレートを確認し、**実験テンプレートの作成**を選択します。確認を求められたら、「」と入力し`create`、**実験テンプレートの作成**を選択します。

## ステップ 2: Amazon S3 エンドポイントに ping を実行する
<a name="disrupt-connectivity-step2"></a>

Amazon EC2 インスタンスが Amazon S3 エンドポイントに到達できることを確認してください。

1. 「[前提条件](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-disrupt-connectivity.html#disrupt-connectivity-prerequisites)」のステップで作成した Amazon EC2 インスタンスに接続します。

   お困りの場合は、「*Amazon EC2 ユーザーガイド*」の「[インスタンスへの接続に関するトラブルシューティング](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting)」を参照してください。

1. インスタンス AWS リージョン が配置されている を確認します。これを行うには、Amazon EC2 コンソールに接続し、次のコマンドを実行します。

   ```
   hostname
   ```

   例えば、`us-west-2` で Amazon EC2 インスタンスを起動した場合、次の出力が表示されます。

   ```
   [ec2-user@ip-172.16.0.0 ~]$ hostname
   ip-172.16.0.0.us-west-2.compute.internal
   ```

1. の Amazon S3 エンドポイントへの Ping AWS リージョン。{{AWS リージョン}} は、実際のリージョンに置き換えます。

   ```
   ping -c 1 s3.{{AWS リージョン}}.amazonaws.com
   ```

   出力では、次の例に示すように、パケット損失が 0% で ping が成功したことがわかります。

   ```
   PING s3.us-west-2.amazonaws.com (x.x.x.x) 56(84) bytes of data.
   64 bytes from s3-us-west-2.amazonaws.com (x.x.x.x: icmp_seq=1 ttl=249 time=1.30 ms
   
   --- s3.us-west-2.amazonaws.com ping statistics ---
   1 packets transmitted, 1 received, 0% packet loss, time 0ms
   rtt min/avg/max/mdev = 1.306/1.306/1.306/0.000 ms
   ```

## ステップ 3: FIS AWS 実験を開始する
<a name="disrupt-connectivity-step3"></a>

作成した実験テンプレートで、実験を開始します。

1. [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) AWS で FIS コンソールを開きます。

1. 左のナビゲーションペインで、**[実験テンプレート]** を選択します。

1. 作成した実験テンプレートの ID を選択して、その詳細ページを開きます。

1. **[実験を開始する]** を選択します。

1. (オプション) 確認ページで、実験のタグを追加します。

1. 確認ページで **[実験を開始する]** を選択します。

## ステップ 4: FIS AWS 実験の進行状況を追跡する
<a name="disrupt-connectivity-step4"></a>

実験の完了、停止、または失敗するまで、実行中の実験の進行状況を追跡できます。

1. 始めたばかりの実験の詳細ページが表示されているはずです。または、**[実験]** を選択して、実験の ID を選択して詳細ページを開きます。

1. 実験の状態を表示するには、[詳細] ペインの **[状態]** を確認してください。詳細については、「[実験状態](https://docs.aws.amazon.com/fis/latest/userguide/experiments.html#experiment-states)」を参照してください。

1. 実験の状態が**[実行中]** のときは、次のステップに進みます。

## ステップ 5: Amazon S3 ネットワークの中断を確認する
<a name="disrupt-connectivity-step5"></a>

実験の進行状況は、Amazon S3 エンドポイントに ping を送信することで検証できます。
+ Amazon EC2 インスタンスから、 AWS リージョンの Amazon S3 エンドポイントに対して ping を実行します。{{AWS リージョン}} は、実際のリージョンに置き換えます。

  ```
  ping -c 1 s3.{{AWS リージョン}}.amazonaws.com
  ```

  出力では、次の例に示すように、パケット損失が 100% の ping に失敗した ping が表示されます。

  ```
  ping -c 1 s3.us-west-2.amazonaws.com
  PING s3.us-west-2.amazonaws.com (x.x.x.x) 56(84) bytes of data.
  
  --- s3.us-west-2.amazonaws.com ping statistics ---
  1 packets transmitted, 0 received, 100% packet loss, time 0ms
  ```

## ステップ 5：クリーンアップ
<a name="disrupt-connectivity-step6"></a>

実験で作成した Amazon EC2 インスタンスや AWS FIS テンプレートが不要になった場合は、削除できます。

**Amazon EC2 インスタンスを削除するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで、**[インスタンス]** を選択します。

1. インスタンスを選択し、**[インスタンスの状態]**、**[インスタンスの終了]** の順に選択します。

1. 確認を求めるメッセージが表示されたら、**[終了]** を選択します。



**FIS AWS コンソールを使用して実験テンプレートを削除するには**

1. [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) AWS で FIS コンソールを開きます。

1. ナビゲーションペインで、**[Experiment templates (実験テンプレート)]** を選択します。

1. 実験テンプレートを選択し、**[アクション]**、**[実験テンプレートの削除]** を選択します。

1. 確認を求められたら、`delete` と入力し、**[実験テンプレートの削除]** を選択してください。