目次
はじめに
こんにちは、クラウド事業部の山下です。
今回は多数あるAWS Systems Managerの機能の中でも、これまであまり使用したことがない「変更管理」のカテゴリに分類されるサービスについて調査・検証してみました。
Systems Manager 「変更管理」カテゴリの各サービスの概要説明と併せて簡単な設定手順もご紹介いたします。
どんなひとに読んで欲しい
- Systems Managerの機能について理解を深めたいひと
- Systems Managerの各機能の設定方法を知りたいひと
概要
まずは「変更管理」のカテゴリに分類されるSystems Managerのサービスについて簡単に紹介いたします。
Systems Manager「変更管理」には、オートメーション、メンテナンスウィンドウ、Change Calendar、Change Managerの4つの機能・サービスがあります。
本記事ではそのうちのオートメーションとメンテナンスウィンドウの概要と設定手順について記載します。
Change Calendar、Change Managerについては後編にて記載予定です。
オートメーション
AWSリソースの設定や管理タスクを自動化することができる機能です。
ランブックという自動化ワークフローを定義・実行することでタスクの自動化ができます。
ランブックはユーザーが作成することも可能ですが、EC2インスタンスの起動/停止・スナップショットの作成/削除などAWSによって事前定義されたランブックが多数あるので、そちらを利用することも可能です。
ランブックは後述のメンテナンスウィンドウと組み合わせて定期実行させたり、ConfigやEventBridgeと組み合わせてAWSリソースの修復アクションを実行したりすることができます。
メンテナンスウィンドウ
AWSリソース管理タスクを実行するタイミングのスケジュール設定ができる機能です。
オートメーション以外にもRun Command・Lambda・Step Functionsがサポートされています。
上記サービスのより詳細の説明は公式ドキュメントをご参照ください。
料金
4つのサービスのうち、料金がかかるのはAutomationとChange Managerの2つです。
どちらも従量課金制です。
細かい料金設定と計算方法については、下記公式ページを参照ください。
前提
文章だけでは分かりにくいため、実際にコンソールから操作してみました。
- 検証で使用したEC2インスタンスは、SSM Agentが元々インストールされているAmazon Linux 2023のAMIを利用。
- EC2インスタンスはパブリックサブネットに配置。
- EC2インスタンスのIAMロールに SSMManagedInstanceCore のポリシーを設定済み。
試してみた
Automation
IAMロール作成
IAMロールの作成画面で、ユースケース:Systems Managerを選択します。
AmazonSSMAutomationRoleを選択します。
任意のロール名を記載したら、ロールを作成します。
ロールが作成できたら、ARNをコピーしておきます。
「許可を追加」から「インラインポリシーを作成」に進みます。
サービス:IAM、アクセス許可:PassRoleを選択します。
リソースの「ARNを追加」を押下します。
先ほどコピーしたおいたIAMロールのARNをリソースARN欄に貼り付け、「ARNを追加」を押下します。
リクエスト条件の「別の条件を追加」を押下します。
以下のように選択し、「条件を追加」を押下します。
条件キー:iam:PassedToService
演算子:StringLike(存在する場合にチェックを入れる)
値:ssm.amazonaws.com
任意のポリシー名を入力し、ポリシーを作成を押下したらIAMロールの準備は完了です。
Automationの実行
Systems ManagerのAutomationに移動し、「Execute Automation」を押下します。
今回はAWS事前定義のランブックを利用します。
「AWS-StopEC2Instance」のランブックを選択します。
Automationの実行方法を下記から選択します。
- Simple execution:指定したターゲットに対してすぐに実行する
- Rate Control:複数のターゲットに実行する際、同時実行数とタスクを停止するエラーの閾値を設定する
- Multi-account and Region:複数アカウント、リージョンで実行する場合に、同時実行数とタスクを停止するエラーの閾値を設定する
- Manual execution:ランブックの各ステップを手動で実行する
今回は「Simple execution」で動作を確認します。
ターゲットのインスタンスを選択します。
AutomationAssumeRoleは、前工程で作成したIAMロールを指定します。
画面下部の「Execute」を押下してAutomationを実行してみます。
実行ステータスがSuccessになったら、EC2の画面でインスタンスが停止されていることを確認します。
メンテナンスウィンドウ
続いてメンテナンスウィンドウの設定を試してみます。
メンテナンスウィンドウ作成
Systems Managerのメンテナンスウィンドウに移動し、「メンテナンスウィンドウの作成」を押下します。
任意のメンテナンスウィンドウ名を入力します。
Cron式でスケジュール設定できます。今回は平日の9:30でスケジュール設定してみました。
タイムゾーンは Asia/Tokyo を選択します。
画面下部の「メンテナンスウィンドウを作成」を押下します。
メンテナンスウィンドウが作成できたら、ターゲットのタブに切り替えて「ターゲットを登録」を押下します。
今回は手動でターゲットを選択して登録します。
タスクのタブに移動して「オートメーションタスクの登録」に進みます。
メンテナンスウィンドウに登録するオートメーションドキュメントを選択します。
登録済みターゲットグループの選択を選び、先ほど登録したターゲットを選択します。
タスク登録の入力パラメータでは疑似パラメータを使用できます。
InstanceIDは疑似パラメータを使用して {{ TARGET_ID }}としました。
AutomationAssumeRoleは、前工程で作成したIAMロールのARNを入力します。
今回はターゲットはひとつのインスタンスのみなので、同時実行数とエラー閾値はどちらも1としました。
IAMサービスロールは、前工程で作成したIAMロールを指定します。
画面下部の「オートメーションタスクの登録」を押下します。
メンテナンスウィンドウ実行状況の確認
スケジュール設定した日時を過ぎたら、メンテナンスウィンドウの実行状況を確認します。
作成したメンテナンスウィンドウの履歴タブから、実行履歴とその詳細情報を確認することができます。
おわりに
今回はオートメーションとメンテナンスウィンドウの機能概要とその設定手順についてご紹介しました。
次回、後編ではChange Calendar、Change Managerについてまとめていきます。
お知らせ
APCはAWS Advanced Tier Services(アドバンストティアサービスパートナー)認定を受けております。
その中で私達クラウド事業部はAWSなどのクラウド技術を活用したSI/SESのご支援をしております。
www.ap-com.co.jp
https://www.ap-com.co.jp/service/utilize-aws/
また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。