チュートリアル: ビジュアルデザインエクスペリエンスを使用したランブックの作成 - AWS Systems Manager

チュートリアル: ビジュアルデザインエクスペリエンスを使用したランブックの作成

このチュートリアルでは、Systems Manager Automation が提供するビジュアルデザインエクスペリエンスを使用した作業の基本について学習します。ビジュアルデザインエクスペリエンスでは、複数のアクションを使用するランブックを作成できます。ドラッグアンドドロップ機能を使用して、キャンバス上のアクションを整理します。また、これらのアクションを検索、選択、設定することもできます。次に、ランブックのワークフロー用に自動生成された YAML コードを表示したり、ビジュアルデザインエクスペリエンスを終了したり、ランブックを実行したり、実行の詳細を確認したりできます。

このチュートリアルでは、ランブックを更新して新しいバージョンを表示する方法も説明します。チュートリアルを最後までやると、クリーンアップステップを実行し、ランブックを削除します。

このチュートリアルを完了すると、ビジュアルデザインエクスペリエンスを使用してランブックを作成する方法がわかります。また、ランブックを更新、実行、削除する方法もわかります。

注記

このチュートリアルを開始する前に、オートメーションの設定 を完了していることを確認してください。

  1. Systems Manager オートメーションコンソールにサインインします。

  2. [オートメーションを作成] を選択してランブックを保存します。

ステップ 2: ワークフローを作成する

ビジュアルデザインエクスペリエンスでは、ワークフローはランブックをキャンバス上にグラフィカルに表示したものです。ビジュアルデザインエクスペリエンスを使用して、ランブックの個々のアクションを定義、設定、および検証できます。

ワークフローを作成するには
  1. [デザイン][コード] トグルの横にある鉛筆アイコンを選択し、ランブックの名前を入力します。このチュートリアルでは、VisualDesignExperienceTutorial と入力します。

    ビジュアルデザイン経験のある方は、ランブックに名前を付けてください。
  2. [フォーム] パネルの [ドキュメント属性] セクションで、[入力パラメーター] ドロップダウンを展開し、[パラメーターを追加] を選択します。

    1. [パラメータ名] セクションに「InstanceId」と入力します。

    2. [タイプ] ドロップダウンで、[AWS:: EC2:: インスタンス] を選択します。

    3. [必須] トグルを選択します。

    ランブックのパラメーターを作成します。
  3. [AWSAPI] ブラウザで検索バーに「DescribeInstances」と入力します。

  4. [Amazon EC2 — DescribeInstances] アクションを空のキャンバスにドラッグします。

  5. [名前] に値を入力します。このチュートリアルでは、名として GetInstanceState を使用します。

    Amazon EC2 記述インスタンス API アクションを選択します。
    1. [その他の入力] ドロップダウンを展開し、[入力名] フィールドに「InstanceIds」と入力します。

    2. [入力] タブを選択します。

    3. [入力値] フィールドで、InstanceId 文書入力を選択します。これは、プロシージャの最初に作成した入力パラメータの値を参照します。DescribeInstances アクションの InstanceIds 入力は StringList 値を受け入れるため、InstanceId 入力を角括弧で囲む必要があります。[入力値] の YAML は ['{{ InstanceId }}'] と一致する必要があります。

    4. [出力] タブで [出力を追加] を選択し、[名前] フィールドに InstanceState を入力します。

    5. [セレクター] フィールドに、$.Reservations[0].Instances[0].State.Name と入力します。

    6. [タイプ] ドロップダウンで [文字列] を選択します。

  6. [アクション] ブラウザーから [ブランチ] アクションをドラッグし、GetInstanceState ステップの下にドロップします。

  7. [名前] に値を入力します。このチュートリアルでは、名前 BranchOnInstanceState を使用します。

    分岐ロジックを定義するには、次の手順を実行します。

    1. Branch キャンバス上の状態を選択します。次に、[入力][選択肢] で鉛筆アイコンを選択し、[ルール #1] を編集します。

    2. [条件を追加] を選択します。

    3. [ルール #1 の条件] ダイアログボックスで、[変数] ドロップダウンから GetInstanceState.InstanceState ステップ出力を選択します。

    4. [演算子] で、[次と等しい] を選択します。

    5. [値] には、ドロップダウンリストから [文字列] を選択します。stopped と入力します。

      ブランチアクションの条件を定義します。
    6. [条件を保存] を選択します。

    7. [新しいルールを追加] を選択します。

    8. [ルール #2][条件を追加] を選択します。

    9. [ルール #2 の条件] ダイアログボックスで、[変数] ドロップダウンから GetInstanceState.InstanceState ステップ出力を選択します。

    10. [演算子] で、[次と等しい] を選択します。

    11. [値] には、ドロップダウンリストから [文字列] を選択します。stopping と入力します。

    12. [条件を保存] を選択します。

    13. [新しいルールを追加] を選択します。

    14. [ルール #3][条件を追加] を選択します。

    15. [ルール #3 の条件] ダイアログボックスで、[変数] ドロップダウンから GetInstanceState.InstanceState ステップ出力を選択します。

    16. [演算子] で、[次と等しい] を選択します。

    17. [値] には、ドロップダウンリストから [文字列] を選択します。running と入力します。

    18. [条件を保存] を選択します。

    19. [デフォルトルール] で、[デフォルトステップ][最後まで進む] を選択します。

  8. {{ GetInstanceState.InstanceState }} == "stopped" 条件の下にある空の [インスタンス状態を変更] アクションを、空の [ここにドラッグ] ボックスにドラッグします。

    1. [ステップ名] には、と入力します。StartInstance

    2. [入力] タブの [インスタンス ID] で、ドロップダウンから [InstanceId] ドキュメントの入力値を選択します。

    3. [希望する状態] には running を指定します。

  9. {{ GetInstanceState.InstanceState }} == "stopping" 条件の下にある空の [AWSリソースを待つ] アクションを、空の [ここにドラッグ] ボックスにドラッグします。

  10. [名前] に値を入力します。このチュートリアルでは、名前 WaitForInstanceStop を使用します。

    1. [サービス] フィールドには [Amazon EC2] を選択します。

    2. [API] フィールドでは、[DescribeInstances] を選択します。

    3. [プロパティセレクター] フィールドには、$.Reservations[0].Instances[0].State.Name と入力します。

    4. [希望値] パラメータには、["stopped"] と入力します。

    5. [WaitForInstanceStop] アクションの [設定] タブで、[次のステップ] ドロップダウンから [インスタンスを開始] を選択します。

  11. {{ GetInstanceState.InstanceState }} == "running" 条件の下にある空の [インスタンスでコマンドを実行] アクションを、空の [ここにドラッグ] ボックスにドラッグします。

  12. [ステップ名] には、と入力します。SayHello

    1. [入力] タブで、[ドキュメント名] パラメータに「AWS-RunShellScript」と入力します。

    2. [InstanceIds] については、ドロップダウンから [InstanceId] ドキュメントの入力値を選択します。

    3. [追加入力] ドロップダウンを展開し、[入力名] ドロップダウンで [パラメータ] を選択します。

    4. [値入力] フィールドに {"commands": "echo 'Hello World'"} を入力します。

  13. 完成したランブックをキャンバスで確認し、[ランブック作成] を選択してチュートリアルランブックを保存します。

    ランブックを確認し、作成します。

ステップ 3: 自動生成されたコードを確認する

[アクション] ブラウザーからキャンバスにアクションをドラッグアンドドロップすると、ビジュアルデザインエクスペリエンスによってランブックの YAML または JSON コンテンツがリアルタイムで自動的に作成されます。このコードは表示および編集できます。自動生成されたコードを表示するには、[デザイン][コード] トグルの [コード] を選択します。

ステップ 4: 新しいランブックを実行する

ランブックを作成したら、オートメーションを実行できます。

新しい自動化ランブックを実行するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[オートメーション]、[オートメーションの実行] の順に選択します。

  3. [Automation document (自動化ドキュメント)] リストで、ランブックを選択します。[Document categories (ドキュメントカテゴリ)] ペインで 1 つ以上のオプションを選択して、目的に応じて SSM ドキュメントをフィルタリングします。自分が所有するランブックを表示するには、[Owned by me (自分が所有)] タブを選択します。自分のアカウントと共有されているランブックを表示するには、[Shared with me (共有ファイル)] タブを選択します。すべてのランブックを表示するには、[すべてのドキュメント] タブを選択します。

    注記

    ランブックの名前を選択すると、ランブックに関する情報を表示できます。

  4. [Document details (ドキュメントの詳細)] セクションで、[Document version (ドキュメントのバージョン)] が実行するバージョンに設定されていることを確認します。システムには、次のバージョンのオプションが含まれています。

    • [ランタイムのデフォルトバージョン]: 自動化ランブックが定期的に更新され、新しいデフォルトバージョンが割り当てられている場合は、このオプションを選択します。

    • [ランタイムの最新バージョン]: 自動化ランブックが定期的に更新され、直前に更新されたバージョンを実行する場合は、このオプションを選択します。

    • [1 (デフォルト)]: ドキュメントの最初のバージョンを実行するには、このオプションを選択します。これはデフォルト設定です。

  5. [Next] を選択します。

  6. [オートメーションランブックの実行] セクションで、[シンプルな実行] を選択します。

  7. [Input parameters (入力パラメータ)] セクションで、必要な入力を指定します。必要に応じて、[AutomationAssumeRole] リストから IAM サービスロールを選択できます。

  8. (オプション) モニタリング用のオートメーションに適用する Amazon CloudWatch アラームを選択します。CloudWatch アラームをオートメーションにアタッチするには、コマンドを実行する IAM プリンシパルに iam:createServiceLinkedRole アクションの権限が必要です。CloudWatch アラームの詳細については、「Amazon CloudWatch でのアラームの使用」を参照してください。アラームが作動すると、オートメーションは停止されます。AWS CloudTrail を使用する場合、トレイルに API コールが表示されます。

  9. [実行] を選択します。

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

ランブックを削除するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[ドキュメント] を選択します。

  3. [自分が所有] タブを選択します。

  4. [ビジュアルデザインエクスペリエンスチュートリアル] のランブックを探してください。

  5. ドキュメントカードページのボタンを選択し、[アクション] ドロップダウンから [ドキュメントを削除] を選択します。