1. ハンズオン内容
- ハンズオンでは各リソースを段階的に作成していきます
※Cloud9はVSCodeとPowerShellで代用
※画像はAWS公式ページより引用
前提条件&注意事項
- 一部課金が発生します(数十円程度)。終了後は必ず削除しましょう。
- 親ページ見てない人は見てね
- CodeCommitは利用しません。GitHubを代用しますので、AWSから接続できるようご用意ください。
- ブログ内でバケット、ドメインを扱っている場合、同一名称は使わないでください。
- UIの操作は基本的にはルートアカウントを使っています。必要に応じてサービスロールを作成しています
2. Step1、環境作成
※画像はハンズオンより引用
2.1 (Step1)CFnによる環境作成
json形式のテンプレートがハンズオンで用意されていますがyml形式に変換しておきます。
CloudFormation > スタック > スタックの作成
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 前提条件 - テンプレートの準備 | テンプレートの準備 | 既存のテンプレートを選択 | |
| テンプレートの指定 | テンプレートソース | テンプレートファイルのアップロード | |
| テンプレートファイルのアップロード | h4b-ssm-basic-template.yml | ||
| スタック名を提供 | スタック名 | h4b-ssm-basic-template | |
| アクセス許可 - オプション | IAM ロール | (なし) | ユーザ権限で作成 |
| 上記以外 | 全てデフォルト |
1点だけ補足。SSMを使うときのSGの設定はアウトバウンドになります。EC2から出ていく設定という意味。インバウンドではない。これは試験でもよくでるかな。
3. Step2、SSMでEC2に接続する
※画像はハンズオンより引用
3.1 (Step2)SSM用IAMロール作成
EC2にSSMを使ってアクセスするには、SSMの権限をもったロールをEC2につける必要があります。
- IAM > ロール > ロールを作成
画面名:信頼されたエンティティを選択
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 信頼されたエンティティタイプ | 🔴 | ✅ AWS のサービス ⬜ AWS アカウント ⬜ ウェブアイデンティティ ⬜ SAML 2.0 フェデレーション ⬜ カスタム信頼ポリシー |
画面名:許可を追加
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| ユースケース | 🔴サービスまたはユースケース | EC2 | |
| 🔴ユースケース | EC2 Role for AWS Systems Manager |
画面名:許可を追加
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 許可ポリシー | ポリシー名 | AmazonSSMManagedInstanceCore | |
| 許可の境界を設定 - オプション | ✅ 許可の境界なしでロールを作成 ⬜ 許可の境界を使用して、最大ロール許可を制御 |
画面名:名前、確認、および作成
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| ロールの詳細 | 🔴ロール名 | h4b-role | |
| 説明 | Allows EC2 instances to call AWS services like CloudWatch and Systems Manager on your behalf. | ||
| 信頼ポリシー | 省略 | ||
| 許可ポリシーの概要 | AmazonSSMManagedInstanceCore | ||
| タグを追加 - オプション |
追加
終盤で行う作業ですが二度手間になるのでここで実施します。SSMがイベントログに書き込む設定です
- IAM > ロール > h4b-role > 許可を追加 > IAMポリシー追加 > ポリシーをアタッチ
CloudWatchLogsFullAccessを追加
3.2 (Step2)EC2作成
- EC2 > インスタンス > インスタンスを起動
画面名:インスタンスを起動
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 名前とタグ | 🔴名前 | h4b-instance | |
| アプリケーションおよび OS イメージ (Amazon マシンイメージ) | Amazon マシンイメージ (AMI) | Amazon Linux 2023 | |
| アーキテクチャ | 64 ビット (x86) | ||
| インスタンスタイプ | インスタンスタイプ | t3.micro | |
| キーペア (ログイン) | キーペア名 - 必須 | キーペアなしで続行 | 未選択でも同じ意味だと思う |
| ネットワーク設定 | 🔴VPC - 必須 | h4b-vpc | 編集ボタンクリックすると入力画面が切り替わります |
| 🔴サブネット |
✅ h4b-private-subnet ⬜ ... |
privateだよ | |
| 🔴パブリック IP の自動割り当て | ⬜ 有効化 ✅ 無効化 |
||
| 🔴ファイアウォール (セキュリティグループ) | ⬜ セキュリティグループを作成 ✅ 既存のセキュリティグループを選択する |
||
| 🔴共通のセキュリティグループ | ✅ h4b-ec2-sg ⬜ ... |
||
| 高度なネットワーク設定 | 項目多数により省略 | ||
| ストレージを設定 | 1 x 8 GiB gp3 ルートボリューム, 3000 IOPS, 暗号化なし | ||
| 高度な詳細 | ドメイン結合ディレクトリ | 値は省略 | |
| 🔴IAM インスタンスプロフィール | h4b-role | ||
| ホスト名のタイプ | 値は省略 | ||
| DNS ホスト名 | 値は省略 | ||
| インスタンスの自動復旧 | 値は省略 | ||
| シャットダウン動作 | 値は省略 | ||
| 停止 - 休止動作 | 値は省略 | ||
| 終了保護 | 値は省略 | ||
| 停止保護 | 値は省略 | ||
| CloudWatch モニタリングの詳細 | 値は省略 | ||
| クレジット仕様 | 値は省略 | ||
| プレイスメントグループ | 値は省略 | ||
| EBS 最適化インスタンス | 値は省略 | ||
| インスタンス帯域幅設定 | 値は省略 | ||
| 購入オプション | 値は省略 | ||
| キャパシティーの予約 | 値は省略 | ||
| テナンシー | 値は省略 | ||
| RAM ディスク ID | 値は省略 | ||
| カーネル ID | 値は省略 | ||
| Nitro Enclave | 値は省略 | ||
| ライセンス設定 | 値は省略 | ||
| CPU オプション | 値は省略 | ||
| アクセス可能なメタデータ | 値は省略 | ||
| メタデータ IPv6 エンドポイント | 値は省略 | ||
| メタデータのバージョン | 値は省略 | ||
| メタデータレスポンスのホップ制限 | 値は省略 | ||
| メタデータのタグを許可 | 値は省略 | ||
| ユーザーデータ - オプション | |||
| ⬜ ユーザーデータは既に base64 エンコードされています |
3.3 (Step2)動作確認1、フリートマネージャー
- Systems Manager > フリートマネージャー > マネージドノード
作成したEC2がFleetManagerに表示されていればOK
3.4 (Step2)動作確認2、セッションマネージャーでEC2に接続
- Systems Manager > Session Manager > セッションの開始
画面名:Specify target
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 理由 | 🔴セッション – optional の理由 | ハンズオン | 必須ではありません |
| 🔴ターゲットインスタンス | ✅ h4b-instance |
画面名:Specify session document - optional
デフォルトのままでOK
画面名:Review and launch
デフォルトのままでOK
このあと、ec2にログインできればOKです。
sh-5.2$
3.5 (Step2)動作確認3、CloudWatchロググループ作成
ここは確認ではないですが、次のセッションマネージャで必要です
- CloudWatch > ロググループ > ロググループを作成
ロググループを作成
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| ロググループの詳細 | 🔴ロググループ名 | h4b-log | |
| 保持期間の設定 | ✅ 失効しない ... |
||
| ログクラス | ✅ スタンダード ⬜ Infrequent Access |
||
| KMS キー ARN - オプション | |||
| タグ |
ここで作ったロググループへEC2の操作が記録される設定をこの後します
3.6 (Step2)動作確認4、セッションマネージャー設定変更
ここは確認ではないですが、デフォルトではログ出力しないようだ。そこで設定変更を行う
- Systems Manager > Session Manager > 設定 > 編集
画面名:Session Manager
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 一般的な詳細設定 | アイドルセッションタイムアウト | 20 | |
| 最大セッション時間 | ⬜ I最大セッション時間を有効にする | ||
| KMS 暗号化 | ⬜ KMS 暗号化を有効にする | ||
| セッションのオペレーティングシステムユーザーを指定する | ⬜ Linux インスタンスの Run As サポートを有効にする | ||
| CloudWatch ログ記録 | 🔴CloudWatch ログ記録 | ✅ 有効にする | |
| ご希望のログ記録オプションを選択 | ✅ セッションログをストリーミング (Recommended) ⬜ セッションログをアップロード |
||
| 🔴暗号化を強制 | ⬜ カスタマーマスターキー (CMK) によって暗号化された CloudWatch ロググループのみを許可 | ||
| 🔴Find Log Groups | ✅ リストからロググループを選択する ⬜ テキストボックスにロググループ名を入力する |
h4b-log | |
| S3 ログ記録 | S3 にセッションログを送信 | ⬜ 有効にする | |
| Linux シェルプロファイル | |||
| Windows シェルプロファイル |
これで設定は完了ですが、SSMがイベントログに書き込む権限がまだありません。
3.7 (Step2)動作確認5、ログ確認
EC2で何かコマンドを実行し、CloudWatchにログが出力されていればOKです
- CloudWatch > ロググループ > h4b-log > ログストリームを選択
{
"eventVersion": "1.0",
"eventTime": "2025-09-06T08:10:37Z",
"awsRegion": "ap-northeast-1",
"target": {
"id": "i-07498afc860d335f7"
},
"userIdentity": {
"arn": "arn:aws:iam::414328432170:root"
},
"runAsUser": "ssm-user",
"sessionId": "root-g2lp2x3yenayijirx2dlo2hrli",
"sessionData": [
"sh-5.2$ "
]
}
3.8 (Step2)動作確認6、システムマネージャのRun Command
- AWS Systems Manager > Run Command > Run Command
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| コマンドドキュメント | 🔴 | ✅ AWS-RunShellScript | OSのコマンドを実行するもの |
| ドキュメントのバージョン | ✅ 1(デフォルト) ... |
||
| コマンドのパラメータ | 🔴Commands | pwd whoami |
なんでもOK |
| Working Directory | |||
| Execution Timeout | 3600 | ||
| ターゲット | ターゲット |
⬜ インスタンスタグの指定 ✅ インスタンスを手動で選択する ⬜ リソースグループの選択 |
h4b-instance |
| その他のパラメータ | コメント | ||
| タイムアウト (秒) | 600 | ||
| レート制御 | 使わなそうなので省略 | ||
| 出力オプション | 🔴コマンド出力の Amazon S3 バケットへの書き込み | ⬜ S3 バケットへの書き込みを有効化する | 今回はマネジメントコンソール上に出力されるものを確認する |
| コマンド出力を Amazon CloudWatch Logs に書き込む | ⬜ CloudWatch 出力 | 今回はマネジメントコンソール上に出力されるものを確認する | |
| CloudWatch alarm - optional | Alarm name | ||
| SNS 通知 | SNS 通知 | ⬜ SNS 通知の有効化 | |
| AWS コマンドラインインターフェイスのコマンド | プラットフォーム | Linux/Unix/OS X | 存在価値がわからん |
| CLI コマンド | ... | 存在価値がわからん |
この後、画面に結果が出力されますが、わかりずらいです
4. Step3、インベントリマネージャ・ステートマネジャー
インベントリマネージャ・ステートマネジャーの操作は省略します。ハンズオン動画の通りです。
- AWS Systems Manager > インベントリ
- AWS Systems Manager > ステートマネージャー
インベントリ(SSM Inventory): 管理対象インスタンスの構成情報を収集して見える化する(読む)。
ステートマネージャ(SSM State Manager): 望ましい設定を自動で適用・維持する(書く)。
5. Step4、削除
- State Managerの関連付けを削除 → なんの意味があるかはわからん
- Session Managerのログ出力設定削除
- EC2インスタンスの削除
- CloudWatch Logsグループの削除
- IAMロールの削除
- CloudFormationスタックの削除
さいごに
感想です
- もうsshで接続することはないのかな。





