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

AWS Systems Manager オートメーション

Systems Manager オートメーションは、EC2 インスタンスおよび他の AWS リソースの一般的なメンテナンスとデプロイのタスクを簡素化します。オートメーションでは、以下の操作を行うことができます。

  • 自動化ワークフローを構築して、インスタンスおよび AWS リソースを設定し、管理します。

  • 独自のカスタムワークフローを作成するか、または AWS によって管理された定義済みのワークフローを使用します。

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

  • Amazon EC2 または AWS Systems Manager コンソールを使用して、自動化の進捗状況および実行の詳細を監視します。

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

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

概念 詳細

自動化ドキュメント

Systems Manager Automation ドキュメントは、自動化ワークフロー (Systems Manager がマネージドインスタンスおよび AWS リソースで実行するアクション) を定義します。自動化には、いくつかのオートメーションドキュメントが事前に定義されており、1 つ以上の 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 オートメーションアクションのリファレンス』を参照してください。

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

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

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

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

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

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

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

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

自動化のユースケース

このセクションには、AWS Systems Manager 自動化の一般的ユースケースが含まれています。

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

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

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

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

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

ステートマネージャー を使用して自動化ワークフローを実行する方法については、ステートマネージャー を使用したトリガーによるオートメーションの実行 を参照してください。

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

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

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

複雑なタスクの簡素化

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

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

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

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

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

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

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

  • Automation ドキュメントを作成し、このドキュメントにそのロールを埋め込みます。(そのための最も簡単な方法は、Automation サービスロール (引き受けロール) を割り当てる代わりに、AWS-RestartEC2Instance ドキュメントをカスタマイズして、このロールをドキュメントに埋め込むことです)。

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

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

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

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

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

Amazon EventBridge のサポート

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