AWS Systems Manager

EC2 インスタンスやオンプレミスサーバーの運用管理を一元化するサービスで、パッチ適用、コマンド実行、パラメータ管理、セッション接続などを SSH なしで安全に実行できる

概要

AWS Systems Manager (SSM) は、AWS リソースとオンプレミスサーバーの運用管理を統合するサービス群です。SSM Agent をインストールしたインスタンスに対して、SSH ポートを開放せずにシェルアクセス (Session Manager)、リモートコマンド実行 (Run Command)、OS パッチの自動適用 (Patch Manager)、ソフトウェアインベントリの収集 (Inventory)、設定パラメータの安全な保存 (Parameter Store) などを提供します。Parameter Store は設定値や接続文字列を一元管理し、SecureString タイプでは KMS による暗号化が適用されます。無料枠が大きく、Parameter Store の標準パラメータは無料で最大 10,000 個まで保存できます。

Session Manager - SSH を不要にする

Session Manager は、EC2 インスタンスへのシェルアクセスを IAM 認証で提供する機能です。SSH キーの管理が不要になり、セキュリティグループでポート 22 を開放する必要もありません。セッションのすべての入出力は CloudTrail と S3/CloudWatch Logs に記録されるため、誰がいつ何を実行したかの完全な監査証跡が残ります。SSH ではこのレベルの監査は困難です。Session Manager はブラウザベースのコンソールからも、AWS CLI からも使用できます。ポートフォワーディング機能を使えば、プライベートサブネットの RDS に対してローカルの DB クライアントから接続することも可能です。踏み台サーバー (Bastion Host) を廃止し、Session Manager に移行する組織が増えています。

Parameter Store と Secrets Manager の使い分け

Parameter Store と Secrets Manager はどちらも設定値やシークレットを保存するサービスですが、用途が異なります。Parameter Store は設定値の一元管理が主目的で、無料枠が大きく (標準パラメータ 10,000 個まで無料)、階層構造 (/app/prod/db-host のようなパス) でパラメータを整理できます。Secrets Manager はシークレットのローテーションが主目的で、RDS、RedshiftDocumentDB のパスワードを自動ローテーションする組み込み機能を持ちます。料金はシークレット 1 件あたり月額 0.40 USD + API 呼び出し 10,000 件あたり 0.05 USD です。自動ローテーションが不要なシークレットは Parameter Store の SecureString で十分であり、コストを抑えられます。Azure の対応サービスは Azure Automation と Azure Key Vault の組み合わせです。

実務での活用パターン

Systems Manager の Patch Manager は、EC2 インスタンスの OS パッチを自動適用する機能です。パッチベースラインでどのパッチを適用するかを定義し、メンテナンスウィンドウで適用スケジュールを設定します。パッチコンプライアンスレポートで、各インスタンスのパッチ適用状況を一覧できます。Run Command は、複数のインスタンスに対して同時にコマンドを実行する機能です。タグベースでターゲットを指定できるため、Environment=Production タグを持つすべてのインスタンスに対して一括でコマンドを実行できます。Automation は、運用タスクをランブック (手順書) として定義し、自動実行する機能です。インスタンスの再起動、AMI の作成、EBS スナップショットの取得などの定型作業を自動化できます。Systems Manager の基礎から応用まで、書籍 (Amazon)で体系的に学べます。

共有するXB!