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で接続することはないのかな。