1. はじめに
背景
皆さんこんにちは、エンジニアの弘輝です。
現在、AWSソリューションアーキテクト プロフェッショナル(SAP)の取得に向けて勉強中なのですが、Systems Manager (SSM) 関連の問題を理解するのに時間がかかりました。😑
そこで今回は、自身の整理も兼ねて、SSMの概要理解と、実際に解けなかった「ログ救出アーキテクチャ」についてまとめてみます。
この記事の目的🫡
- 頻出サービス「Systems Manager (SSM)」の概要を改めて復習する。
- Auto Scaling終了時にログを退避させるアーキテクチャを理解する。
2. Systems Manager (SSM) の概要
Systems Manager とは?
AWS上のEC2やオンプレミスサーバーを、一元的に管理・自動化・可視化するためのAWSのサービス群です。
SSMを使うことで、サーバーを管理するために「SSHやRDPで一台ずつログインして作業をする」という手間をなくし、「ログインせずに、API経由で、安全かつ大量のサーバーを一括操作」できるようになります。
主な機能
Systems Managerには多くの機能がありますが、代表的なものは以下の通りです。
-
一元管理と可視化
- EC2インスタンスだけでなく、オンプレミスサーバーも含め、複数の環境のリソースをまとめて表示・管理できます。
-
安全なリモートアクセス
- Session Manager(セッションマネージャー) により、SSH/RDPを使わずにブラウザから安全にCLI操作が可能です。踏み台サーバーが不要になるため、アクセス管理と監査が容易になります。
-
運用自動化
- パッチマネージャーでOSパッチ適用を自動化したり、オートメーション機能で定型タスク(起動・停止など)を自動実行したりできます。
-
リモートコマンド実行
- 管理対象のインスタンスに対して、スクリプト(シェルスクリプトやPowerShell)を一括実行する機能です。SSHでログインすることなく、ログ回収や設定変更などを安全に行えます。
3. ログ救出の全体アーキテクチャ
では本題に入りましょう、こちらが私が理解できなかったアーキテクチャです。😔
要件は「EC2インスタンスのスケールイン(縮小)が発生してから、インスタンスが実際に削除されるまでの間に、ログをS3へ退避させる」ことです。
全体の流れ(シーケンス図)
各ステップの解説
① ライフサイクルフックで終了処理を保留
- インスタンスが終了処理に入る際、Terminating:Wait 状態で一時停止させます。
- これにより、完全な削除(Terminated)までの猶予時間が確保されます。
補足:ライフサイクルフックのデフォルトタイムアウトは 1 時間で、それを過ぎるとインスタンスが終了されます。
② イベント検知とLambda起動
- EventBridgeがAuto Scalingのスケールインイベントを検知し、ターゲットであるLambdaを起動します。
- 具体的には「終了ライフサイクルフック」(
EC2 Instance-terminate Lifecycle Action)のイベントを検知します。
③ LambdaがSystems Manager (SSM) で命令
- LambdaがSSMの
Run Commandを実行。 - 削除待ちのEC2に対して「ログをS3へ送れ」という命令(SSMドキュメント)を実行する。
④ ログのアップロード
- EC2内の SSM Agent が命令を受け取り、スクリプトを実行してログファイルをS3へ退避(アップロード)させます。
⑤ 処理完了とインスタンスの終了
- ログのコピー完了後、Lambdaから
CompleteLifecycleActionを実行して「準備OK」をAuto Scalingに伝えます。 - これを受け取ったAuto Scalingは、インスタンスを正式に終了(削除)します。
4. ⚠️注意点
この構成を実現するために、絶対に忘れてはいけないSSMの必須条件があります。
1. SSM Agent のインストールと起動
OS内で「SSM Agent」が正しくインストールされ、起動(Running)している必要があります。
(※Amazon Linuxは標準でインストールされています。)
2. IAMロールの割り当て📄
対象のEC2インスタンスに、以下2点の権限を持つIAMロールがアタッチされている必要があります。
- SSMへのアクセス権限
- S3へのログアップロード権限
これを設定することで以下のようなことを防ぐことができます。
- SSMのコンソールにインスタンスが表示されず(マネージドインスタンスとして認識されず)、Run Commandも実行できない。
- S3へログを保存することができない。
5.まとめ
今回はSystems Manager (SSM)の概要と、実際に模擬試験で出題された構成の解説を行いました。
問題文を初めて読んだときは複雑で理解できませんでしたが、構成図に落とし込むことで全体像が見え、スッキリと理解できました。👏
今後もSAP試験対策の中で「難しい!」と感じた問題があれば、随時アウトプットしていきます。
ぜひまた読んでいただけると幸いです。
最後まで読んでいただき、ありがとうございました。
