⚙️

SSM Automation ランブックで EC2 運用作業を自動化する

難易度:中級
所要時間:45 分

ラボ概要

Systems Manager Automation のカスタムランブックと IAM ロールを作り、EC2 の「タグ付け→スナップショット取得→停止」を一括自動実行します。

このラボについて

運用の現場では、「タグを付ける」「バックアップ(イメージ/スナップショット)を取る」「インスタンスを止める」といった定型作業を、手順書どおり・ミスなく・繰り返し実行したい場面が頻繁にあります。AWS Systems Manager Automation は、こうした一連の運用タスクを ランブック(Automation ドキュメント) として定義し、ワンクリックまたは自動トリガーで実行できるサービスです。

このラボでは、aws:executeAwsApiaws:changeInstanceState を組み合わせた カスタムランブック を自作し、対象 EC2 インスタンスに対して次の 3 つを 1 回の実行で連続適用します。

1. タグ付け(CreateTags)

2. AMI(マシンイメージ)取得(CreateImage)

3. インスタンス停止(stopped 状態へ変更)

> AMI とスナップショットの関係: AMI(Amazon Machine Image)を作成すると、その裏側で対象インスタンスの EBS ボリュームの スナップショット も自動的に作成されます。このラボでは、Automation 用ロールに付与するマネージドポリシー AmazonSSMAutomationRoleec2:CreateImage が含まれており、追加のインラインポリシーなしでバックアップを取得できます。一方、ec2:CreateSnapshots(複数形 API)は同ポリシーに含まれないため、スナップショットを直接取得する設計にするとロールに権限を足す必要があります。本ラボは「マネージドポリシー 1 つで完結する最小権限」を体験するため、CreateImage を採用します。

あわせて、Automation が実行時に引き受ける IAM サービスロール を作成し、サービスがどのように権限を委譲して操作を代行するのかを体験します。さらに、ランブックを実行するプリンシパル(cloud_user)がロールを渡すために必要な iam:PassRole の考え方にも触れ、最小権限のロール設計を学びます。

学習目標

  • Systems Manager Automation のランブック(Automation ドキュメント)の役割と構造(schemaVersion 0.3、parameters、mainSteps)を理解する
  • aws:executeAwsApiaws:changeInstanceState アクションで AWS API 呼び出しをコード化する
  • Automation 用の IAM サービスロール(信頼エンティティ ssm.amazonaws.com)を作成し、AutomationAssumeRole として渡す
  • マネージドポリシー AmazonSSMAutomationRole がカバーする権限と、カバーしない権限(例: ec2:CreateSnapshots)を見極め、ランブックの設計を権限に合わせる(最小権限)考え方を理解する
  • ロールを渡す側(cloud_user)に必要な iam:PassRole 権限の役割を理解する
  • コンソールからランブックを実行し、各ステップの成否と出力を読み解く
  • EC2 のタグ・AMI(およびその裏で作られるスナップショット)・インスタンス状態の変化を確認し、自動化の結果を検証する

前提

  • フェデレーションコンソールに cloud_user ロールでサインイン済みであること(追加のサインイン操作は不要)
  • cloud_user には、lab-ssm-automation-role を Automation に渡すための iam:PassRole 権限がサンドボックス側で付与済みであること(本ラボでは追加設定不要)
  • すべての操作を 東京リージョン (ap-northeast-1) で行うこと(IAM などグローバルサービスを除く)
  • EC2 インスタンスは t3.micro、EBS は最小構成を使用(サンドボックスのガードレール内)
  • AWS マネジメントコンソールの基本操作(サービス検索、リソース一覧の閲覧)ができること
  • JSON を貼り付けて編集できること(内容はラボ内に全文掲載)
  • 所要時間の目安は約 60〜90 分(2 時間以内で完遂できる構成です)
⚙️

ハンズオンラボとは?

本物の Azure リソースを使い、リスクなく試行錯誤しながら実践的なスキルを身につけられます。

他のラボを見る