今後、多くの企業でシステム運用が大幅に改善させる可能性のあるサービスの 1 つである AWS Systems Manager(SSM)で CloudWatch Events を利用して EC2 インスタンスを自動起動・自動停止する(オートメーション)設定について解説します。
AWS Systems Manager には多くの機能がありますが、システム運用に役立つ 1つ 1つの機能から解説したいと思います。
最初に IAM ロールを作成する
今回は Systems Manager(SSM)のオートメーションの実行をスケジューリングします。
スケジューリングは「CloudWatch」を利用します。
つまり、「CloudWatch」から「SSM」を呼び出すための IAM ロールを作成します。
AWS 管理コンソールにログインし「サービス」–「セキュリティ、ID、およびコンプライアンス」–「IAM」をクリックします。
IAM のダッシュボードに移動したら左側ペインより「ロール」をクリックします。
ロールの管理画面に移動したら「ロールの作成」ボタンをクリックします。
「ロールの作成」画面で「信頼されたエンティティの種類を選択」で「AWS サービス」を選択し、「このロールを使用するサービスを選択」で「EC2」を選択し、「次のステップ:アクセス権限」ボタンをクリックします。
「ポリシーのフィルタ」に「SSM」を入力し、下図のように「AmazonSSMAutomationRole」を選択し、「次のステップ:タグ」ボタンをクリックします。
「タグの追加(オプション)」画面で、必要な場合はタグを設定し「次のステップ:確認」ボタンをクリックします。
「確認」画面で「ロール名」を入力し「ロールの作成」ボタンをクリックします。
下図のようにロールが作成されていることを確認します。
更に作成したロールを選択し、下図のように「信頼関係」タグをクリックし「信頼関係の編集」ボタンをクリックします。
下図のように「信頼されたエンティティ」に「ID プロバイダー events.amazonaws.com」が追加されていることを確認します。
CloudWatch Events からのオートメーションによるインスタンス実行のスケジューリング設定手順
ロールの準備が出来たら、CloudWatch Events の設定をして Systems Manager の「オートメーション」による EC2 インスタンスを起動するスケジューリングをします。
起動は CloudWatch の CRON 式を利用します。
AWS 管理コンソールにログインし「サービス」–「管理とガバナンス」–「CloudWatch」をクリックします。
CloudWathc のダッシュボードに移動したら、左側ペインより「イベント」をクリックします。
「Amazon CloudWatch Events」の「Get started」ボタンをクリックします。
「ルールの作成」画面でイベントソースを設定します。
「スケジュール」を選択し、「Cron 式」を選択してスケジュールを入力します。画面では例として 5分おきに実行される設定を入れています。
次に「ターゲット」の「ターゲットの追加」ボタンをクリックします。
ターゲットに「SSM Automation」を選択します。
■選択できるターゲット一覧
以下のターゲットを選択できます。
- Batch job queue
- CodeBuild poject
- CodePipeline
- EC2 CreateSnapshot API 呼び出し
- EC2 RebootInstances API 呼び出し
- EC2 StopInstances API 呼び出し
- EC2 TerminateInstances API 呼び出し
- ECS タスク
- Firehose 配信ストリーム
- Inspector assesment template
- Kinesis ストリーム
- Lambda 関数
- SNS トピック
- SQS キュー
- SSM Automation
- SSM OpsItem
- SSM Run Command
- Step Functions ステートマシン
- 別の AWS アカウントのイベントパス
「Document」に「AWS-StartEC2Instance」を選択します。
「Configure document version」は「Default」を選択し、「Configure automation parameter(s)」に「定数」を選択し、「InstanceId」に起動するインスタンス ID を入力し、ロールの選択に関しては「この特定のリソースに対して新しいロールを作成する」を選択し「設定の詳細」ボタンをクリックします。
「ルールの詳細を設定する」画面でルールの名前を設定し「ルールの作成」ボタンをクリックします。
下図のようにエラーが出力されずにルールが作成されることを確認します。
スケジュールの時間が来たら EC2 インスタンスが起動していることを確認します。
下図のようにグラフより実行されていることを確認します。
コメント