AWS Systems Manager オートメーション - AWS Systems Manager

AWS Systems Manager オートメーション

注記

オートメーションドキュメントは Runbook と呼ばれるようになりました。

オートメーションは、AWS Systems Manager の一機能であり、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスおよびその他の AWS リソースの一般的なメンテナンスとデプロイタスクを簡素化します。オートメーションでは、以下の操作に役立ちます。

  • オートメーションを構築して、インスタンスおよび AWS リソースを設定、管理します。

  • カスタムランブックを作成するか、AWS によって維持される事前定義のランブックを使用します。

  • Amazon EventBridge を使用してオートメーションタスクおよびランブックに関する通知を受信します。

  • Systems Manager コンソールを使用して、オートメーションの進行状況と詳細をモニタリングします。

プライマリコンポーネント

Systems Manager Automation では、次のコンポーネントを使用してオートメーションを実行します。

概念 詳細

オートメーションランブック

Systems Manager Automation ランブックでは、オートメーション (Systems Manager がマネージドインスタンスと AWS リソースに対して実行するアクション) を定義します。Automation には、いくつかのランブックが事前に定義されており、1 つ以上の aAmazon EC2 インスタンスの再起動や、Amazon マシンイメージ (AMI) の作成といった一般的なタスクを実行する際に使用することができます。独自のランブックを作成することもできます。ランブックは JavaScript Object Notation (JSON) や YAML を使用し、これにはユーザーが指定するステップおよびパラメータが含まれます。ステップは順番に実行されます。詳細については、「ランブックの操作」を参照してください。

ランブックは、CommandPolicySession ドキュメントとは異なり、Automation タイプの Systems Manager ドキュメントです。ランブックは現在、スキーマバージョン 0.3 をサポートしています。Command ドキュメントは、スキーマバージョン 1.2、2.0、または 2.2 を使用します。ポリシードキュメントは、スキーマバージョン 2.0 以降を使用します。

自動化アクション

ランブックで定義されているオートメーションには、1 つ以上のステップが含まれています。各ステップは、特定のオペレーションに関連付けられます。このアクションは、ステップの入力、動作、出力を決定します。ステップは、ランブックの mainSteps セクションで定義されます。オートメーションは、20 種類の異なるアクションタイプをサポートしています。詳細については、「Systems Manager Automation アクションのリファレンス」を参照してください。

オートメーションクォータ

各 AWS アカウント は、最大 100 個のオートメーションを同時に実行できます。これには、子オートメーション (別のオートメーションによって開始されるオートメーション) とレート制御のオートメーションが含まれます。この数を超えるオートメーションを実行しようとすると、Systems Manager からキューに対して追加のオートメーションが行われ、保留中のステータスが表示されます。オートメーションの実行の詳細については、「シンプルなオートメーションワークフローを実行する」を参照してください。

オートメーションキューのクォータ

同時オートメーションの制限よりも多くのオートメーションを実行しようとすると、後続のオートメーションがキューに追加されます。各 AWS アカウント は、1,000 個のオートメーションをキューに入れることができます。オートメーションが完了 (または終了状態に到達) すると、キューの最初のオートメーションが開始されます。

レート制御のオートメーションクォータ

各 AWS アカウント は、25 個のレート制御のオートメーションを同時に実行できます。同時レート制御のオートメーション制限よりも多くのレート制御のオートメーションを実行しようとすると、Systems Manager は後続のレート制御のオートメーションをキューに追加し、保留中のステータスが表示されます。レート制御のオートメーション実行の詳細については、「ターゲットとレート制御を使用するオートメーションの実行」を参照してください。

レート制御のオートメーションキューのクォータ

同時レート制御のオートメーション制限よりも多くのオートメーションを実行しようとすると、後続のオートメーションがキューに追加されます。各 AWS アカウント は、最大 1,000 個のレート制御のオートメーションをキューに入れることができます。オートメーションが完了 (または終了状態に到達) すると、キューの最初のオートメーションが開始されます。

自動化のユースケース

このセクションでは、Systems Manager Automation の一般的なユースケースをご紹介します。

一般的な IT タスクを実行する

自動化は、1 つ以上のインスタンスの状態を変更 (承認された自動化を使用) したり、スケジュールに従ってインスタンスの状態を管理するなどの一般的な IT タスクを簡略化できます。次に例を示します。

  • AWS-StopEC2InstanceWithApproval ランブックを使用して、1 人以上の AWS Identity and Access Management (IAM) ユーザーがインスタンス停止アクションを承認するリクエストを行います。承認が受理されると、自動化はインスタンスを停止します。

  • AWS-StopEC2Instance ランブックを使用して、Amazon EventBridge、またはメンテナンスウィンドウタスクを使ったスケジュールによるインスタンスの停止を自動化します。たとえば、毎週金曜日の夜にインスタンスを停止し、毎週月曜日の朝に再開する自動化を設定できます。

  • AWS CloudFormation テンプレートを使用してデプロイされたリソースを更新するには、AWS-UpdateCloudFormationStackWithApproval ランブックを使用します。更新には新しいテンプレートが適用されます。更新開始前に 1 人以上の IAM ユーザーの承認をリクエストするようにオートメーションを設定できます。

ステートマネージャーを使用してランブックを実行する方法については 、「ステートマネージャーを使用したトリガーによるオートメーションの実行」を参照してください 。

破壊的なタスクを一括して安全に実行する

Systems Manager には、Amazon EC2 タグを使用したインスタンスの大規模なグループのターゲットに役立つ機能や定義する制限に応じた変更を行うために役立つ速度制御といった機能が含まれます。

AWS-RestartEC2InstanceWithApproval ランブックを使用して、複数のインスタンスを含む AWS リソースグループをターゲットにします。速度制御を使用するために、自動化を設定できます。たとえば、同時に再起動するべきインスタンスの数を特定できます。また、自動化がキャンセルされる前に許可されるエラーの最大数を指定することもできます。

複雑なタスクの簡素化

Automation は、golden Amazon マシンイメージ (AMI) の作成や到達不可能な EC2 インスタンスの復元などの複雑なタスクを簡素化する、ワンクリックAutomation を提供します。次に例を示します。

  • AWS-UpdateLinuxAmi および AWS-UpdateWindowsAmi ランブックを使用して、ソース AMI から golden AMI を作成します。更新が適用される前後にカスタムスクリプトを実行できます。また、特定のパッケージをインストールに含める、あるいは除外することもできます。これらのオートメーションの実行方法についての例は、「自動化のチュートリアル」を参照してください。

  • AWSSupport-ExecuteEC2Rescue ランブックを使用して、障害のあるインスタンスを回復します。インスタンスは、ネットワークの設定不良、RDP 問題やファイアウォール設定などのさまざまな理由によって到達不可能になる場合があります。トラブルシューティングとインスタンスへのアクセス権の再取得には、アクセスを取り戻す前に事前の多くの手動ステップが必要となります。AWSSupport-ExecuteEC2Rescue ランブックでは、インスタンス ID を指定してボタンをクリックすると、アクセスを回復できます。このオートメーションを実行する方法の例については、「チュートリアル: 到達不可能なインスタンスでの EC2Rescue ツールの実行」を参照してください。

運用のセキュリティを拡張する

委任管理者を使用することで、さまざまなタイプのタスクにおいて、ユーザーのアクセス権限を制限したり、昇格させることができます。

委任管理者は、ユーザーにリソースへの直接のアクセス権限を付与する必要なく、特定のリソースにおける特定のタスクに対するアクセス権限を提供することができます。これによって、全体的なセキュリティプロファイルが向上します。例えば、ユーザー 1 が Amazon EC2 インスタンスを再起動する権限を保持しない場合に、このユーザーにこれを許可するとします。ユーザー 1 に直接のアクセス権限を付与する代わりに、次ができます。

  • Amazon EC2 インスタンスを正常に停止し、開始するために必要なアクセス許可がある IAM ロールを作成します。

  • ランブックを作成し、ロールをランブックに埋め込みます。(これを行う最も簡単な方法は、オートメーションサービスロールを割り当てる [または、ロールを継承する] 代わりに、 AWS-RestartEC2Instance ランブックをカスタマイズして、このロールをランブックに埋め込みます)。

  • ユーザー 1 の IAM のアクセス許可を変更し、このランブックを実行するためのユーザー権限を付与します。

オートメーションへのアクセスを委任する方法の例については、「委任管理者を使用して、オートメーションを実行する」を参照してください。

ベストプラクティスを共有する

自動化によって、組織内でベストプラクティスを共有できます。

ランブックでリソース管理のベストプラクティスを作成し、 AWS リージョン およびグループ間で簡単にランブックを共有できます。また、ランブックが受け入れる許可パラメータ値を制約することもできます。

EventBridge のサポート

この Systems Manager の機能は、Amazon EventBridge ルールでターゲットタイプとしてサポートされています。詳細については、「Amazon EventBridge を使用して Systems Manager イベントをモニタリングする」および「リファレンス: Systems Manager 用の Amazon EventBridge イベントパターンとタイプ」を参照してください。