AWSを触り始めて4ヵ月になったのですが、AWS Systems Manager(SSM)のAutomationについてよく聞くけど何ができるか分からない状態だったため、実際に触ってみました。 「承認者に確認後、EC2を起動する」という処理をAutomationを使って実施してみます。
AWS Systems Manager(SSM)とは
まずSSMがどういったサービスかざっくり押さえておきます。 AWSドキュメントからの引用です。
AWS Systems Manager は、Amazon EC2 インスタンス、オンプレミスサーバーと仮想マシン (VM) や他の特定の AWS リソースを設定および管理する機能のコレクションです。Systems Manager には、AWS リソース間で運用データを簡単に一元化し、タスクを自動化できる統一されたインターフェイスが含まれています。Systems Manager はインフラストラクチャで運用上の問題を検出して解決するための時間を短縮します。Systems Manager は、インフラストラクチャのパフォーマンスと設定についての詳細を提供し、リソースとアプリケーションの管理を簡素化することで大規模なインフラストラクチャの運用と管理を簡単にします。
できること
- 繰り返しタスクの自動化
- サーバの構成検証、監査
- EC2やオンプレサーバの管理
などサーバを管理・運用する際に実施することはSSMで対応可能です。
機能
SSMには下記にあるように、メンテナンスウィンドウやパラメータストアといった多岐にわたる機能があります。 各機能の詳細はAWSドキュメントを参照ください。 本記事では、Automationという運用作業フロー(インスタンスへのパッチ適用など)を自動化できる機能を使ってみます。
やってみる
「承認者に確認後、EC2を起動する」という一連の処理をAutomationを使って、行いたいと思います。
1.EC2にロール付与
Automationを使って起動させるEC2を作成します。
作成したEC2には、AmazonSSMAutomationRoleのポリシーをアタッチしたロールを付与します。
2.Automationの設定と実行
SSMのページへ移動します。「オートメーション」を選択し、「オートメーションの実行」ボタンを押下します。
まず、ドキュメントを選択していきます。
今回実行したい「承認者に確認後、EC2を起動する」という処理を実行できるドキュメントがAWSから提供されているので、そちら(「AWS-StartEC2InstanceWithApproval」)を選択します。
今回はAWSが提供しているドキュメントを使用していますが、実施したいことに合わせてドキュメントを作成することも可能です。(Automationドキュメント)
「Amazonが所有」を選択します。
「AWS-StartEC2InstanceWithApproval」を選択して、「次へ」を押下します。
ドキュメントを実行するために必要なパラメータを設定していきます。
承認者のIAMユーザと承認依頼通知をするためのSNSトピックが入力必須ですので、ない場合は作成してください。
パラメータ入力後、画面下部にある「実行」ボタンを押下します。
3.実行結果
実行を開始すると下記画面になり、Automationで実行しているステップとそのステータスを確認できるようになります。
今回実行している「承認者に確認後、EC2を起動する」だと、ステップ1がapprove(承認処理)で、ステップ2がEC2インスタンスの起動となります。
下記画面は承認待ち状態のため、ステップ1の承認処理が待機中、ステップ2のEC2の起動は処理中となっています。
承認者宛に下記画面のようなメールが送信されますので、メール本文内のリンクを押下して承認または却下を選択します。
承認後、EC2起動まで完了しました!
おまけ
承認を却下した場合は実行ステータスが失敗になりました。同じ実行IDでの再実行はできなかったため、再度ドキュメントの選択から実行する必要があるようです。
さいごに
AWS定義のAutomationドキュメントは他にも「Windows AMI にパッチを適用する」など多くのドキュメントがあります。 是非使ってみてください。