

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

# チュートリアル: FIS を使用してインスタンスの停止と開始 AWS をテストする
<a name="fis-tutorial-stop-instances"></a>

 AWS Fault Injection Service (AWS FIS) を使用して、アプリケーションがインスタンスの停止と起動をどのように処理するかをテストできます。このチュートリアルでは、 FIS AWS `aws:ec2:stop-instances`アクションを使用して 1 つのインスタンスを停止し、次に 2 番目のインスタンスを停止する実験テンプレートを作成します。

## 前提条件
<a name="stop-instances-prerequisites"></a>

このチュートリアルを完了するには、以下を確実におこなってください。
+ アカウントで 2 つのテスト EC2 インスタンスを起動します。インスタンスを起動したら、両方のインスタンスの ID を記録します。
+ FIS サービスがユーザーに代わって`aws:ec2:stop-instances`アクションを実行できるようにする IAM AWS ロールを作成します。詳細については、「[FIS 実験の IAM AWS ロール](getting-started-iam-service-role.md)」を参照してください。
+ FIS AWS にアクセスできることを確認します。詳細については、「[AWS FIS ポリシー例](security_iam_id-based-policy-examples.md)」を参照してください。

## ステップ 1: 実験テンプレートを作成する
<a name="stop-instances-create-template"></a>

FIS AWS コンソールを使用して実験テンプレートを作成します。テンプレートで、それぞれ 3 分間連続して実行する 2 つのアクションを指定します。最初のアクションでは、FIS がランダムに選択するテストインスタンスの 1 AWS つを停止します。2 番目のアクションでは、両方のテストインスタンスが停止します。

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

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

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

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

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

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

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

1. **[操作]** で、以下の作業を行います。

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

   1. アクションに名前を入力します。例えば、**stopOneInstance** と入力します。

   1. **[アクションの種類]** で、**aws:ec2:stop-instances** を選択します。

   1. **ターゲット** には、FIS AWS が作成するターゲットを保持します。

   1. **[アクションパラメータ]** には、**[指定時間後にインスタンスを開始]** で 3 分 (PT3M) を指定します。

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

1. **[ターゲット]** で、以下の作業を行います。

   1. 前のステップで FIS AWS が自動的に作成したターゲット**の編集**を選択します。

   1. デフォルト名を、よりわかりやすい名前に置き換えます。例えば、 **oneRandomInstance**と入力します。

   1. **[リソースタイプ]** が**aws:ec2:instance** になっていることを確認します。

   1. **[ターゲットメソッド]** で、**[リソース ID]** をクリックし、2 つのテストインスタンスの ID を選択します。

   1. **[選択モード]** で、**[カウント]** を選択します。**[リソース数]** に、「**1**」と入力します。

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

1. **[ターゲットの追加]** を選択して、以下を実行します。

   1. ターゲットの名前を入力します。例えば、 **bothInstances**と入力します。

   1. **[リソースタイプ]** で、**[aws:ec2:instance]** を選択します。

   1. **[ターゲットメソッド]** で、**[リソース ID]** をクリックし、2 つのテストインスタンスの ID を選択します。

   1. **[選択モード]** で、**すべて**を選択します。

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

1. **[アクション]** セクションで、**[アクションの追加]** を選択します。以下の操作を実行します。

   1. **[Name (名前)]** に、アクションの名前を入力します。例えば、**stopBothInstances** と入力します。

   1. **[アクションの種類]** で、**aws:ec2:stop-instances** を選択します。

   1. **開始後**で、最初に追加したアクションを選択します (**stopOneInstance**)。

   1. **ターゲット**で、追加した 2 番目のターゲットを選択します (**bothInstances**)。

   1. **[アクションパラメータ]** には、**[指定時間後にインスタンスを開始]** で 3 分 (PT3M) を指定します。

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

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

1. **Service Access** では、**[既存の IAM ロールを使用する]** を選択し、このチュートリアルの前提条件の説明に従って、作成した IAM ロールを選択します。ロールが表示されない場合は、必要な信頼関係があることを確認してください。詳細については、「[FIS 実験の IAM AWS ロール](getting-started-iam-service-role.md)」を参照してください。

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

1. (オプション) **タグ**で、**[Add Tag (タグの追加)]** を選択して、タグのキーと値を指定します。追加するタグは、テンプレートを使用して実行される実験ではなく、実験テンプレートに適用されます。

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

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

**(オプション) 実験テンプレート JSON を表示するには**  
**[エクスポート]** タブを選択します。次に、前述のコンソールプロシージャで作成された JSON の例を示します。

```
{
    "description": "Test instance stop and start",
    "targets": {
        "bothInstances": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": [
                "arn:aws:ec2:region:123456789012:instance/instance_id_1",
                "arn:aws:ec2:region:123456789012:instance/instance_id_2"
            ],
            "selectionMode": "ALL"
        },
        "oneRandomInstance": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": [
                "arn:aws:ec2:region:123456789012:instance/instance_id_1",
                "arn:aws:ec2:region:123456789012:instance/instance_id_2"
            ],
            "selectionMode": "COUNT(1)"
        }
    },
    "actions": {
        "stopBothInstances": {
            "actionId": "aws:ec2:stop-instances",
            "parameters": {
                "startInstancesAfterDuration": "PT3M"
            },
            "targets": {
                "Instances": "bothInstances"
            },
            "startAfter": [
                "stopOneInstance"
            ]
        },
        "stopOneInstance": {
            "actionId": "aws:ec2:stop-instances",
            "parameters": {
                "startInstancesAfterDuration": "PT3M"
            },
            "targets": {
                "Instances": "oneRandomInstance"
            }
        }
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ],
    "roleArn": "arn:aws:iam::123456789012:role/AllowFISEC2Actions",
    "tags": {}
}
```

## ステップ 2: 実験を開始する
<a name="stop-instances-start-experiment"></a>

実験テンプレートの作成が完了したら、それを使用して実験を開始できます。

**実験を開始するには**

1. 作成した実験テンプレートの詳細ページに移動する必要があります。または、**[実験テンプレート]** の ID を選択して、詳細ページを開きます。

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

1. (オプション) 実験にタグを追加するには、**[新しいタグを追加]** を選択し、タグキーとタグ値を入力します。

1. **[実験を開始する]** を選択します。確認を求められたら、**start** を入力して、**[実験を開始する]** を選択します。

## ステップ 3: 実験の進行状況を追跡する
<a name="stop-instances-track-experiment"></a>

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

**実験の進行状況を追跡するには**

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

1. 実験の状態を表示するには、**[詳細]** ペインの **[状態]** を確認してください。詳細については、「[実験状態](view-experiment-progress.md#experiment-states)」を参照してください。

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

## ステップ 4: 実験結果の確認
<a name="stop-instances-verify-experiment-result"></a>

インスタンスが実験によって停止され、期待どおりに開始されたことを確認できます。

**実験の結果を検証するには**

1. 新しいブラウザタブまたはウィンドウで、Amazon EC2 コンソール [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開きます。これにより、Amazon EC2 コンソールで実験の結果を表示しながら、FIS AWS コンソールで実験の進行状況を引き続き追跡できます。

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

1. 最初のアクションの状態が**保留中**から**実行中** (AWS FIS コンソール) に変わると、ターゲットインスタンスの 1 つの状態が**実行中**から**停止** (Amazon EC2 コンソール) に変わります。

1. 3 分後、最初のアクションの状態が**完了**とすると、第 2 アクションの状態は**実行中**となり、もう一方のターゲットインスタンスの状態は**停止**に変わります。

1. 3 分後、2 回目のアクションの状態が**完了**の場合、ターゲットインスタンスの状態は**実行中**となり、実験の状態は**完了**に変わります。

## ステップ 5：クリーンアップ
<a name="stop-instances-cleanup"></a>

実験で作成したテスト 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** と入力し、**[実験テンプレートの削除]** を選択します。