チュートリアル : AWS FIS によるインスタンスの停止と開始をテスト - AWS フォールト・インジェクション・サービス

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

チュートリアル : AWS FIS によるインスタンスの停止と開始をテスト

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

前提条件

このチュートリアルを完了するには、以下を確実におこなってください。

  • アカウントで 2 つのテスト EC2 インスタンスを起動します。インスタンスを起動したら、両方のインスタンスの ID を記録します。

  • AWS FIS サービスが、ユーザーに代わって aws:ec2:stop-instances アクションを実行するための IAM ロールを作成します。詳細については、「AWS FIS 実験用の IAM ロール」を参照してください。

  • AWS FIS にアクセスできることを確認します。詳細については、「AWS FIS ポリシー例」を参照してください。

ステップ 1: 実験テンプレートを作成する

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

実験テンプレートを作成するには
  1. https://console.aws.amazon.com/fis/ で AWS FIS コンソールを開きます。

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

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

  4. [説明と名前] に、テンプレートの説明と名前を入力します。

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

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

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

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

    4. [ターゲット] には、AWS FIS で作成されたターゲットをそのまま使用してください。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. [サービスアクセス] では、[既存の IAM ロールを使用する] を選択し、このチュートリアルの前提条件の説明に従って作成した IAM ロールを選択します。ロールが表示されない場合は、必要な信頼関係があることを確認してください。詳細については、「AWS FIS 実験用の IAM ロール」を参照してください。

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

  11. [実験テンプレートの作成] を選択します。確認を求められたら、「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: 実験を開始する

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

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

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

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

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

ステップ 3: 実験の進行状況を追跡する

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

実験の進行状況を追跡するには
  1. 始めたばかりの実験の詳細ページにいるはずです。または、[実験] の ID を選択して、詳細ページを開きます。

  2. 実験の状態を表示するには、[詳細] ペインの [状態] を確認してください。詳細については、「実験状態」を参照してください。

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

ステップ 4: 実験結果の確認

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

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

  2. ナビゲーションペインで、[Instances] (インスタンス) を選択します。

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

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

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

ステップ 5:クリーンアップ

実験で作成したテスト EC2 インスタンスが不要になった場合は、終了できます。

インスタンスを終了するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Instances] (インスタンス) を選択します。

  3. 両方のテストインスタンスを選択し、[インスタンスの状態]、[インスタンスの終了] の順に選択します。

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

実験テンプレートが不要になった場合は、削除できます。

AWS FIS コンソールを使用して実験テンプレートを削除するには
  1. https://console.aws.amazon.com/fis/ で AWS FIS コンソールを開きます。

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

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

  4. 確認を求められたら、delete と入力し、[実験テンプレートの削除] を選択します。