目次

AWS Systems Manager 完全ガイド v2.0

初心者から実務者向けの包括的解説

AWS Systems Manager は、AWS、オンプレミス、マルチクラウド環境における 統合運用管理プラットフォーム です。Session Manager(踏み台レス SSH/RDP)、Patch Manager(OS パッチ自動化)、Parameter Store(シークレット管理)、Run Command(リモートコマンド実行)などを統合し、大規模フリートの安全で効率的な運用を実現します。本ドキュメントは、Systems Manager の概念・アーキテクチャ・コンポーネント・実装例・ベストプラクティス・最新動向を体系的に解説する包括的ガイドです。

ドキュメントの目的

本ガイドは以下を対象としています。

  • 初心者向け: Systems Manager とは何か、なぜ必要かを学びたい方
  • 運用者向け: Session Manager、Patch Manager、Inventory を運用したい方
  • セキュリティ担当者向け: Parameter Store でシークレット管理、IAM ロールベースのアクセス制御を実装したい方
  • SRE/インフラ向け: Run Command、Automation、Maintenance Window で大規模運用を自動化したい方
  • 意思決定者向け: Ansible、Puppet、Chef、HashiCorp Boundary との比較

2025-2026 年の Systems Manager エコシステム

  • Session Manager GUI 強化: 新しい統一コンソール(2024年11月リリース)で複数ノード管理が簡素化
  • Patch Manager 2025 更新: Windows セキュリティ更新通知機能、Patch Policy による組織全体の一括管理
  • Fleet Manager 統合拡大: ファイルシステム・レジストリ操作の Web コンソール管理
  • Advanced-instances tier: オンプレミス・マルチクラウド での Session Manager 対応強化
  • Hybrid Activation 改善: システムの登録・管理が簡素化、より多くのエッジデバイス対応
  • State Manager + OpsHub: CloudFormation Integration で Infrastructure as Code 連携強化

目次

  1. 概要
  2. Systems Manager が解決する課題
  3. 主な特徴
  4. アーキテクチャ
  5. 主要コンポーネント詳細
  6. Session Manager:踏み台レス SSH/RDP
  7. Patch Manager:パッチ管理の自動化
  8. Parameter Store:シークレット・設定管理
  9. Run Command:リモートコマンド実行
  10. Automation:複雑な運用手順の自動化
  11. State Manager:設定の継続的な適用
  12. Inventory:リソース情報の収集
  13. Maintenance Windows:メンテナンスウィンドウ
  14. OpsCenter・Incident Manager・Change Manager
  15. Fleet Manager:Web ベースの管理
  16. 主要ユースケース
  17. 設定・操作の具体例
  18. 類似ツール比較表
  19. ベストプラクティス
  20. トラブルシューティング
  21. 2025-2026 最新動向
  22. 学習リソース
  23. 実装例・導入ロードマップ
  24. 実装チェックリスト
  25. まとめ
  26. 参考文献

概要

初心者向けメモ: Systems Manager は「EC2・オンプレミス・ECS/EKS ノードの運用管理を統一するサービス群」です。SSH キーや踏み台サーバーなしでインスタンスに接続(Session Manager)、月次パッチを自動適用(Patch Manager)、シークレットを安全に管理(Parameter Store)、複数ノードにコマンド一括実行(Run Command)ができます。

Systems Manager は AWS の 運用管理・自動化の中核 です。以下の層で機能します:

【図 1】Systems Manager の位置づけ:

graph TD
    Nodes["EC2 / On-Prem / Edge<br/>Nodes"]
    
    Nodes -->|SSM Agent| SSM["Systems Manager<br/>(統合管理)"]
    
    SSM -->|Access| SM["Session Manager<br/>(SSH/RDP不要)"]
    SSM -->|Patching| PM["Patch Manager<br/>(自動パッチ)"]
    SSM -->|Secrets| PS["Parameter Store<br/>(設定・シークレット)"]
    SSM -->|Execution| RC["Run Command<br/>(リモート実行)"]
    SSM -->|Workflow| AU["Automation<br/>(Runbook実行)"]
    SSM -->|Compliance| ST["State Manager<br/>(設定ドリフト修正)"]
    
    SM -->|Audit| CT["CloudTrail"]
    PM -->|Compliance| Dash["Dashboard"]
    PS -->|Encrypt| KMS["KMS"]
    RC -->|Event| EB["EventBridge"]
    
    CT -->|Log| S3["S3 / CloudWatch"]
    S3 -->|Alert| SNS["SNS/Slack"]

Systems Manager がカバーするスコープ

対象 詳細
アクセス管理 Session Manager(SSH/RDP不要)、PortForwarding(ローカルポート→RDS)
パッチ管理 Patch Manager(OS&アプリケーション自動更新)
設定管理 Parameter Store(階層的な設定・シークレット管理)、State Manager(継続的なコンプライアンス)
リモート実行 Run Command(複数ノードへのコマンド一括実行)
自動化 Automation(複雑な運用手順の Runbook)
インベントリ Inventory(インストール済みソフト・ネットワーク設定の収集)
運用追跡 OpsCenter(OpsItem 一元管理)、Change Manager(変更申請フロー)
メンテナンス Maintenance Windows(スケジュール実行)、Fleet Manager(Web コンソール)

Systems Manager が解決する課題

1. SSH キー・踏み台サーバーの運用負荷

課題:

  • SSH キーの管理・ローテーション・紛失の危険
  • 踏み台サーバーの維持コスト・セキュリティリスク
  • セキュリティグループに port 22 を開放する必要

Session Manager の解決:

  • IAM 認証 → ブラウザ/CLI から接続 → CloudTrail 記録
  • → SSH キー不要、踏み台不要、接続ログ自動記録

2. 大規模フリートへのパッチ適用の複雑さ

課題:

  • 100台以上の EC2 に月次パッチを一括適用できない
  • パッチコンプライアンス状況が不明瞭
  • セキュリティ要件への準拠確認が手作業

Patch Manager の解決:

  • Patch Policy(Organizations 統合)+ Patch Baseline
  • → 数千台への自動パッチ適用
  • → ダッシュボードで非準拠インスタンスを可視化

3. 設定値・シークレットの管理

課題:

  • アプリケーションコードにハードコードされた API キー
  • 環境変数の手動管理
  • Secrets Manager との使い分けが不明

Parameter Store の解決:

  • 階層パス(/prod/app/db-password)で無料・暗号化管理
  • → Lambda・ECS・EC2 が IAM ロールで自動取得
  • → ローテーション不要な場合は Secrets Manager より低コスト

4. Ansible・Puppet・Terraform との使い分けの曖昧性

Systems Manager の位置づけ:

Terraform(インフラプロビジョニング)
  ↓(インフラ構築後)
Systems Manager(運用管理・パッチ・コマンド実行)
  ↓(設定を code 化する場合)
Ansible(SSH ベース設定管理、オンプレ親和性高い)
  ↓(マルチクラウド・複雑な Workflow)
HashiCorp Boundary(Zero Trust Access)

主な特徴

特徴 説明
SSH/RDP 不要 Session Manager で踏み台サーバー・SSH キー不要
IAM ベースアクセス制御 ロール・ポリシーで細粒度なアクセス制御
スケール対応 数千台への一括コマンド実行・パッチ適用
ハイブリッド対応 EC2・オンプレミス・EKS・ECS・Edge デバイス統合
監査ログ統合 CloudTrail・CloudWatch Logs 自動統合
パッチコンプライアンス ダッシュボード・CSV レポート・自動修復
低コスト Parameter Store 無料、SSM Agent プリインストール
OpsHub GUI オンプレミス・マルチクラウドの統一管理画面
CloudFormation 統合 IaC による Systems Manager リソース定義
Organizations 統合 組織全体への Quick Setup による自動デプロイ

アーキテクチャ

graph LR
    A["IAM User/Role"] -->|認証| B["Systems Manager<br/>API"]
    
    B -->|Session制御| C["SSM Agent<br/>(各ノードで実行)"]
    C -->|暗号化通信| D["Systems Manager<br/>エンドポイント"]
    D -->|VPC Endpoint| E["プライベート通信<br/>(インターネット不要)"]
    
    B -->|Config取得| F["Parameter Store<br/>(階層パス形式)"]
    B -->|実行| G["Run Command<br/>(並行実行制御)"]
    B -->|ポリシー| H["Patch Manager<br/>+ Baseline"]
    
    G -->|実行結果| I["CloudWatch Logs"]
    C -->|セッション記録| J["S3 Bucket<br/>+KMS暗号化"]
    H -->|コンプライアンス| K["Config Recorder<br/>(AWS Config)"]
    
    I -->|Alert| L["SNS→Slack/Email"]
    J -->|監査| M["CloudTrail"]

主要コンポーネント詳細

Session Manager:踏み台レス SSH/RDP

利点:
  ✓ SSH キー管理不要
  ✓ セキュリティグループに port 22 開放不要
  ✓ CloudTrail に全セッション記録
  ✓ ポートフォワーディング(RDS 接続等)対応
  ✓ Windows(RDP)・Linux(bash)・macOS 統一

前提条件:
  ✓ EC2: IAM ロール に AmazonSSMManagedInstanceCore
  ✓ VPC エンドポイント設定(プライベートサブネット)
    - ssm, ec2messages, ssmmessages

# CLI 利用例
aws ssm start-session --target i-1234567890abcdef0

Patch Manager:OS&アプリケーション自動更新

管理対象:
  ✓ Windows Server(セキュリティパッチ・修正プログラム)
  ✓ Amazon Linux 2・RHEL・Ubuntu・Debian
  ✓ macOS
  ✓ アプリケーション(Microsoft 製品)

Patch Baseline:
  - デフォルト BaselineDefault(AWS が提供)
  - カスタム Baseline(自組織で定義)
  - 承認ルール: 自動承認日数、分類(Security/Bugfix)
  
Compliance State:
  ✓ COMPLIANT(パッチ最新)
  ✗ NON_COMPLIANT(未適用パッチあり)
  ? UNKNOWN(評価未実施)

Parameter Store:階層的な設定・シークレット管理

形式:
  /prod/myapp/database/password        → SecureString(KMS暗号化)
  /prod/myapp/database/host            → String(平文)
  /prod/myapp/feature-flag/new-ui      → StringList

取得例:
  aws ssm get-parameter --name /prod/myapp/db-password \
    --with-decryption

Lambda・ECS・EC2 IAM ロール で自動取得:
  const value = await ssm.getParameter({
    Name: '/prod/myapp/db-password'
  }).promise();

Run Command:複数ノードへの一括コマンド実行

実行対象:
  ✓ タグベース(tag:Env=production)
  ✓ Instance ID 指定
  ✓ Resource Group 指定

実行例:
  aws ssm send-command \
    --document-name "AWS-RunShellScript" \
    --parameters 'commands=["curl http://localhost:8080/health"]' \
    --targets "Key=tag:Env,Values=prod"

制御:
  - Concurrency: 最大並行数制限
  - Error threshold: エラー時停止条件

Automation:複雑な運用手順の自動化

Runbook(SSM Document)例:
  AWS-CreateImage
  AWS-ResizeInstance
  AWS-RestartEC2Instance
  カスタム Automation Document(JSON定義)

トリガー:
  ✓ 手動実行
  ✓ EventBridge(自動トリガー)
  ✓ Change Calendar に基づく条件実行

State Manager:設定の継続的な適用

用途:
  ✓ CloudWatch Agent の一括インストール
  ✓ アンチウイルス設定の自動適用
  ✓ セキュリティパッチの定期適用
  ✓ 設定ドリフト検出・修正

Association(ポリシー):
  - スケジュール(cron/rate)
  - 対象ノード(タグ/グループ)
  - 修復アクション自動実行

Inventory:インストール済みソフト・ネットワーク設定の収集

収集情報:
  ✓ インストール済みアプリケーション(名前・バージョン)
  ✓ Windows Registry キー
  ✓ ネットワークインターフェース(IP・MAC)
  ✓ AWS Lambda 関数(関連)

活用:
  ✓ EC2 に Java 1.8 が導入されているか検索
  ✓ Python バージョン一覧
  ✓ セキュリティコンプライアンス監査

OpsCenter・Change Manager・Incident Manager

OpsCenter:
  - OpsItem(運用上の問題)一元管理
  - EventBridge・CloudWatch Alarms と統合

Change Manager:
  - 変更申請・承認フロー
  - 変更前後の設定比較

Incident Manager:
  - インシデント対応の自動化
  - Runbook トリガー・連絡先通知

Session Manager

プロトコル:
  → TLS 1.2(デフォルト暗号化)
  → SigV4 署名
  → オプション:KMS による追加暗号化

接続先:
  ✓ EC2 インスタンス
  ✓ On-Premises Servers(Advanced-instances tier)
  ✓ ECS Container(Linux のみ)
  ✓ EKS Pod(IAM Roles for Service Accounts)

ログ保存先:
  ✓ CloudWatch Logs(リアルタイム監視)
  ✓ S3 + KMS(長期保存)
  ✓ CloudTrail(API 呼び出し記録)

ポートフォワーディング例:

# RDS 3306 をローカル 3306 にフォワード
aws ssm start-session \
  --target i-1234567890abcdef0 \
  --document-name AWS-StartPortForwardingSessionToRemoteHost \
  --parameters '{
    "host": ["my-rds.cluster.ap-northeast-1.rds.amazonaws.com"],
    "portNumber": ["3306"],
    "localPortNumber": ["3306"]
  }'

# その後、ローカルからアクセス
mysql -h 127.0.0.1 -u admin -p my-database

Patch Manager

Patch Baselines:
  - デフォルト(AWS 提供):推奨されない、参考用途
  - カスタム(自組織で定義):推奨、細粒度制御

コンプライアンス判定:
  COMPLIANT = Baseline で定義されたパッチをすべて適用済み
  
  注意:COMPLIANT ≠ SECURE(他の要因も影響)

実行方法(優先順):
  1. Patch Policy(Quick Setup)→ 組織全体
  2. Host Management(Quick Setup)→ スキャンのみ
  3. Maintenance Window → スケジュール管理
  4. Patch now(オンデマンド)

Parameter Store

ティア:
  - Standard: 4KB 以下、無料、RPS 40 まで
  - Advanced: 8KB 以下、有料(0.04$/month/parameter)、RPS 1000

アクセス制御:
  - IAM Policy で /prod/* へのアクセスのみ許可
  - Resource-based Policy は非対応(IAM ロールでカバー)

ベストプラクティス:
  /environment/service/parameter-name
  例:/prod/api-gateway/db-password

Run Command

実行方法:
  aws ssm send-command \
    --document-name "AWS-RunShellScript" \
    --parameters "commands=['echo hello']" \
    --targets "Key=tag:Environment,Values=Production"

結果取得:
  aws ssm get-command-invocation \
    --command-id "command-id" \
    --instance-id "i-1234567890abcdef0"

制御:
  - MaxConcurrency: 10(最大10台同時)
  - ErrorCount: エラー発生時停止数
  - Timeout: 3600秒まで

Automation

Document 例(JSON):
{
  "schemaVersion": "0.3",
  "description": "EC2 を再起動する Runbook",
  "parameters": {
    "InstanceId": {
      "type": "String",
      "description": "対象 Instance ID"
    }
  },
  "mainSteps": [
    {
      "name": "RestartInstance",
      "action": "aws:executeAwsApi",
      "inputs": {
        "Service": "ec2",
        "Api": "RebootInstances",
        "InstanceIds": ["{{ InstanceId }}"]
      }
    }
  ]
}

State Manager

Association 設定例:
  Name: CloudWatch-Agent-Installation
  Document: AWS-ConfigureAWSPackage
  Targets: tag:Role=monitoring
  Schedule: rate(30 minutes)
  Repair: Yes(ドリフト検出時に自動修復)

利用シーン:
  ✓ CloudWatch Agent の一括インストール
  ✓ SSM Agent の更新管理
  ✓ セキュリティパッチの定期適用
  ✓ ログエージェント(CloudWatch Logs)の配置

Inventory

メタデータ収集スケジュール:
  デフォルト: 30 分ごと

検索例:
  # Java が 1.8 のインスタンス検索
  aws ssm describe-instance-information \
    --filters "key=aws:InstanceInformation.PingStatus,valueSet=Online"
  
  # Python バージョン一覧(Inventory より)
  aws ssm list-inventory-entries \
    --instance-id "i-1234567890abcdef0" \
    --type-name "AWS:Application"

Maintenance Windows

設定例:
  Schedule: cron(0 2 ? * SUN)  # 毎週日曜 2:00
  Duration: 4 hours
  Cutoff: 1 hour before end
  
  Task: Run Command で Patch Manager 実行
  
  制御:
    - Concurrency: 50%
    - Error threshold: 5 インスタンス

Fleet Manager

機能:
  ✓ ファイルシステム操作(アップロード・ダウンロード)
  ✓ Windows Registry 編集
  ✓ ネットワークインターフェース確認
  ✓ プロセス管理・停止
  
アクセス:
  Systems Manager Console → Fleet Manager
  
セキュリティ:
  IAM Role で権限制御
  CloudTrail で操作監査

主要ユースケース

  1. 金融機関のセキュリティ要件達成

    • SSH/RDP 接続禁止 → Session Manager で IAM 認証のみ
    • CloudTrail に全セッション記録 → 監査証拠整備
  2. 100+ EC2 フリートへのパッチ自動化

    • Patch Manager + Patch Policy → 月次自動適用
    • CIS ベンチマーク準拠 → ダッシュボードで可視化
  3. マルチ環境の設定一元管理

    • Parameter Store 階層パス → /dev, /stg, /prod 分離
    • 環境変数ハードコード排除 → セキュリティ向上
  4. AWS Organizations 全体の運用基盤

    • Quick Setup で全アカウントに SSM エージェント・Patch Manager 自動デプロイ
    • 組織全体のパッチコンプライアンス一元管理
  5. オンプレミス・マルチクラウド統一管理

    • Hybrid Activation で On-Prem サーバーも Systems Manager の統一管理下
    • OpsHub で一画面から全環境操作
  6. DevOps/SRE による自動運用

    • Automation Runbook で EC2 スケーリング・イメージ作成の自動化
    • State Manager で CloudWatch Agent 一括インストール・更新

具体例:設定・操作

Session Manager セットアップ

# 1. IAM ロール作成(EC2 インスタンスプロファイル)
aws iam create-role \
  --role-name EC2-Systems-Manager-Role \
  --assume-role-policy-document '{
    "Version": "2012-10-17",
    "Statement": [{
      "Effect": "Allow",
      "Principal": {"Service": "ec2.amazonaws.com"},
      "Action": "sts:AssumeRole"
    }]
  }'

# 2. AmazonSSMManagedInstanceCore ポリシー をアタッチ
aws iam attach-role-policy \
  --role-name EC2-Systems-Manager-Role \
  --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

# 3. EC2 起動時に ロール を指定
aws ec2 run-instances \
  --image-id ami-0c55b159cbfafe1f0 \
  --instance-type t3.micro \
  --iam-instance-profile Name=EC2-Systems-Manager-Role

# 4. Session Manager 接続テスト
aws ssm start-session --target i-1234567890abcdef0

Patch Manager 実行

# 1. Patch Baseline 作成
aws ssm create-patch-baseline \
  --name CustomPatchBaseline \
  --operating-system-family AMAZON_LINUX_2 \
  --approval-rules 'ComplianceLevel=CRITICAL,ApproveAfterDays=0'

# 2. パッチスキャン実行
aws ssm send-command \
  --document-name "AWS-RunPatchBaseline" \
  --parameters "Operation=Scan" \
  --targets "Key=tag:Env,Values=Production"

# 3. 結果確認
aws ssm describe-instance-patch-states \
  --instance-id i-1234567890abcdef0

Parameter Store 利用

# 1. シークレット保存
aws ssm put-parameter \
  --name /prod/api-gateway/db-password \
  --value "MySecurePassword123" \
  --type "SecureString" \
  --key-id alias/my-kms-key

# 2. 取得
aws ssm get-parameter \
  --name /prod/api-gateway/db-password \
  --with-decryption

# 3. Lambda から取得(Python)
import boto3
client = boto3.client('ssm')
response = client.get_parameter(
    Name='/prod/api-gateway/db-password',
    WithDecryption=True
)
password = response['Parameter']['Value']

Automation Runbook 実行

{
  "schemaVersion": "0.3",
  "description": "EC2 インスタンスを自動スケーリング",
  "parameters": {
    "TagKey": {"type": "String", "default": "Env"},
    "TagValue": {"type": "String", "default": "production"}
  },
  "mainSteps": [
    {
      "name": "GetInstances",
      "action": "aws:executeScript",
      "inputs": {
        "Runtime": "python3.8",
        "Handler": "get_instances",
        "Script": "def get_instances(events, context):\n  # タグで対象インスタンス検索\n  return instances"
      }
    }
  ]
}

類似ツール比較表

機能 Systems Manager Ansible Puppet Chef HashiCorp Boundary OPA Gatekeeper
SSH キー不要 ✓ IAM 認証 ✗ SSH 必須 ✓(一部) ✓(一部) ✓ Zero Trust N/A
AWS ネイティブ ✓ 深い統合 ~ 要プラグイン ~ 要モジュール ~ 要 cookbook ✗ 汎用 ✗ Kubernetes 専用
パッチ管理 ✓ 高度 ~ 要スクリプト
オンプレ対応 ✓(Hybrid)
大規模実行 ✓ 数千台 ~ N/A
エージェント ✓ SSM Agent ✗ Agentless N/A
GUI 管理 ✓ コンソール ~ CLI 主体 ~
CloudTrail 統合 ✓ 完全
コスト SSM Agent 無料 無料 OSS 商用 商用 商用 無料 OSS

ベストプラクティス

実装✓

  • IAM ロールベースのアクセス制御

    • Systems Manager 接続を IAM Policy で細粒度制御
    • タグベースの権限(ssm:resourceTag/Env=production のみ接続可)
  • Session Manager のログ記録

    • CloudWatch Logs または S3 に 全セッション記録
    • KMS 暗号化で機密性保証
  • Patch Manager のカスタム Baseline 定義

    • AWS デフォルト Baseline は参考用のみ
    • 自組織のセキュリティ基準に合わせた Baseline を作成
  • Parameter Store の階層構造

    • /environment/application/parameter-type 形式で標準化
    • IAM Policy で /prod/* アクセス制限
  • VPC Endpoint の活用

    • プライベートサブネット環境でも Systems Manager 利用可
    • インターネット非経由で Systems Manager API 呼び出し
  • CloudTrail 統合で運用監査

    • すべての Systems Manager API 呼び出しをログ記録
    • EventBridge で異常検知

実装❌

  • セッションログ記録の省略

    • 監査・コンプライアンス要件を満たせない
  • AWS デフォルト Patch Baseline の使用

    • Baseline は参考用、本番環境では不適切
    • 必ずカスタム Baseline を作成
  • SSM Agent のバージョン固定

    • State Manager で定期的にアップデート
  • Parameter Store に本番パスワードをベタ記述

    • Secrets Manager(自動ローテーション機能あり)との使い分け
  • Systems Manager 接続に公開 IP 依存

    • VPC Endpoint で内部通信に変更

トラブルシューティング

問題 原因 解決方法
Session Manager に接続失敗 SSM Agent が停止 aws ssm describe-instance-information で Ping Status 確認
Parameter Store 取得エラー IAM ロール に ssm:GetParameter 権限なし IAM Policy に ssm:GetParameter 許可を追加
Patch Manager 実行失敗 Patch Baseline が OU に アタッチされていない Quick Setup で Patch Policy を有効化
Run Command タイムアウト スクリプト処理が長い Timeout パラメータを増加(3600秒以内)
Automation Runbook エラー IAM ロール に ec2:* 権限なし Automation 実行用 IAM ロール に 必要な権限を追加
VPC Endpoint 接続失敗 セキュリティグループで 443 ブロック HTTPS(443)へのアウトバウンド許可

2025-2026 最新動向

Session Manager

  • 統一コンソール GA(2024年11月):複数ノード管理の Web UI 大幅改善
  • Advanced-instances tier 拡大:マルチクラウド・オンプレ対応
  • KMS 統合強化:エンドツーエンド暗号化オプション

Patch Manager

  • Windows セキュリティ更新通知(2025年10月):重大パッチの自動アラート
  • Patch Policy による組織全体管理:Quick Setup 統合で一括適用
  • Patch Automation エンハンス:CloudFormation 連携で IaC パッチ定義

Parameter Store

  • CloudFormation 統合強化:IaC で Parameter Store リソース直接定義
  • 変更履歴の拡大:Configuration Items で全変更を CloudWatch Logs で追跡

Automation

  • AI による Runbook 生成(検討中):自然言語で Runbook 自動生成

学習リソース

AWS 公式ドキュメント

オープンソース・ベンダー


実装例・導入ロードマップ

Phase 1(1-2 ヶ月):基礎構築

Week 1-2: 環境準備
  - IAM ロール作成(EC2・Systems Manager 用)
  - VPC Endpoint 設定(Systems Manager)
  - CloudWatch Logs グループ作成

Week 3-4: Session Manager 導入
  - 数台の EC2 で接続テスト
  - CloudTrail・CloudWatch Logs 記録確認
  - IAM Policy で最小権限設定テスト

Phase 2(2-3 ヶ月):Patch 管理

Week 5-6: Patch Manager 設定
  - カスタム Patch Baseline 作成
  - テスト環境で スキャン・インストール実行
  - Patch Policy(Quick Setup)有効化

Week 7-8: 本番展開
  - Production OU に Patch Policy 適用
  - ダッシュボード・レポート設定
  - パッチコンプライアンス監視開始

Phase 3(3-4 ヶ月):運用自動化

Week 9-10: Parameter Store・State Manager
  - /prod/*/password 形式で設定一元化
  - CloudWatch Agent 自動デプロイ(State Manager)
  - 環境変数ハードコード排除

Week 11-12: Automation Runbook
  - EC2 スケーリング・イメージ作成の自動化
  - CloudFormation スタック削除の自動化(承認フロー付き)

実装チェックリスト

  • [ ] IAM 準備

    • [ ] EC2 用 Systems Manager IAM ロール作成
    • [ ] Systems Manager 接続ユーザーの IAM Policy 設定
    • [ ] リソースタグに基づいたアクセス制御設定
  • [ ] Session Manager

    • [ ] VPC Endpoint(ssm, ec2messages, ssmmessages)作成
    • [ ] CloudWatch Logs グループ作成・ロール設定
    • [ ] S3 バケット(セッションログ)作成・KMS 設定
    • [ ] テスト EC2 で接続確認
  • [ ] Patch Manager

    • [ ] カスタム Patch Baseline 作成
    • [ ] テスト OU で Patch Policy 有効化
    • [ ] パッチスキャン実行・コンプライアンス確認
    • [ ] 本番 OU へ Patch Policy 展開
  • [ ] Parameter Store

    • [ ] KMS キー作成(SecureString 暗号化用)
    • [ ] 階層パス基準を定義(/env/app/type)
    • [ ] 環境変数をシークレット → Parameter Store に移行
    • [ ] IAM ロール に ssm:GetParameter 許可
  • [ ] 監視・監査

    • [ ] CloudTrail 有効化(Systems Manager API ログ)
    • [ ] EventBridge ルール(異常検知)設定
    • [ ] SNS/Slack 通知設定
    • [ ] 月次コンプライアンスレポート作成

まとめ

AWS Systems Manager は、EC2・オンプレミス・マルチクラウド環境における統合運用管理の中核 です。SSH キー・踏み台サーバーなしで安全にアクセス(Session Manager)、月次パッチを自動適用(Patch Manager)、シークレットを一元管理(Parameter Store)、複雑な運用手順を自動化(Automation)できます。

CloudTrail・CloudWatch Logs・AWS Config と統合することで、完全な監査証跡を整備し、セキュリティコンプライアンス(SOC2・PCI DSS・HIPAA)を達成できます。Organizations との統合で、企業全体の数百~数千台のノード管理を一元化できる、スケール対応型の運用プラットフォームです。

Ansible(SSH ベース)・Puppet・Chef との使い分けは:AWS ネイティブで IAM ベースの統一管理 → Systems Manager既存オンプレ環境で SSH ベース → Ansible と明確に分けることで、最適なツール選択ができます。


参考文献

AWS 公式(10+)

  1. What is AWS Systems Manager
  2. Session Manager User Guide
  3. Patch Manager User Guide
  4. Parameter Store Reference
  5. Run Command Documentation
  6. Automation User Guide
  7. State Manager Documentation
  8. Inventory Documentation
  9. Maintenance Windows User Guide
  10. Session Manager plugin release history
  11. AWS Systems Manager Patch Manager launches security updates notification for Windows (2025)

OCP・ベンダー・コミュニティ(5+)

  1. Ansible Official Documentation
  2. Puppet Enterprise Documentation
  3. Chef Documentation
  4. HashiCorp Boundary
  5. AWS Cloud Operations Blog - Systems Manager

最終更新:2026-04-26 バージョン:v2.0