AWS Systems Manager Automation

AWS Systems Manager Automationとは?

AWS Systems Manager AutomationはAWS Systems Managerの一部で、AWSリソースの管理や運用タスクを自動化するための機能です。繰り返し実行される運用タスクや管理作業を効率化し、エラーを減らしながら運用負荷を軽減できます。複数のAWSリソースに対して一括で設定変更やタスクを実行することができ、スケジュールを設定したり、イベントトリガーで実行することが可能です。

ワークフローはAutomationドキュメント (Automation runbook)と呼ばれ、ファイル形式はJSONまたはYAMLです。Systems Manager Console、AWS CLI、または API を通じて実行できます。

IAMによって実行権限を管理したり、CloudWatchによってタスクのモニタリングをしたり、SNSで通知を送信することができます。

標準ドキュメント

AWSではあらかじめ一般的なタスクを記述したドキュメントが多数用意されています。AWS- から始まるドキュメントは標準ドキュメントです。

ドキュメント操作
AWS-StartEC2Instance指定したEC2インスタンスを起動します
AWS-RestartEC2Instance指定したEC2インスタンスを再起動します
AWS-StopEC2Instance指定したEC2インスタンスを停止します
AWS-TerminateEC2Instance指定したEC2インスタンスを終了します
AWS-CreateSnapshotEBSボリュームのスナップショットを作成します
AWS-CreateImageEC2インスタンスからマシンイメージ(AMI)を作成します
AWS-UpdateEKSClusterEKSクラスタのKubernatesバージョンをアップデートする
AWS-RebootRDSInstanceRDSインスタンスを再起動します
AWS-CreateRdsSnapshotRDSインスタンスのスナップショットを作成する
AWS-CloseSecurityGroup指定したセキュリティグループからすべてのルールを削除する

Automation Actions

AutomationドキュメントではActionsによって操作を指定します。複数のアクションを組み合わせることで、より複雑なワークフローを構築可能です。実行時に動的な値を指定することができます。

Actions操作
aws:runCommandEC2インスタンス上で指定したコマンドを実行します
aws:executeScriptAutomationドキュメント内でPythonスクリプトを直接実行します
aws:branch条件に基づいて実行フローを分岐します
aws:executeAutomation別のAutomationドキュメントを呼び出します
aws:approve承認者から承認または拒否されるまで一時的にオートメーションを停止する
aws:pause一時的にオートメーションを停止する
aws:loopループ実行する
aws:invokeLambdaFunction指定したLambda関数を呼び出す
aws:createImageEC2インスタンスからマシンイメージ(AMI)を作成します
aws:copyImage既存のAMIを別のリージョンにコピーします
aws:runInstancesEC2インスタンスを起動します
aws:changeInstanceStateEC2インスタンスの状態を変更します
aws:assertAwsResourceProperty指定したAWSリソースのプロパティが目標値を満たしているかを確認します

AWS試験

AWS SOA試験では、以下のような状況が出題されます。

  • EC2インスタンスに対してAWS Configルールを作成し、適切な設定がされていないインスタンスがあった場合にAWS Systems Manager Automationドキュメントを呼び出してインスタンスを終了させる。
    AWS SOA 無料練習問題①

AWSドキュメント

AWS Systems Manager Automation - AWS Systems Manager
Systems Manager Automation により、Amazon EC2 インスタンスおよびその他の AWS リソースの一般的なメンテナンスとデプロイを簡素化します。