SSM

AWS Systems Manager の略で、EC2 やオンプレミスサーバーの管理、パラメータストアを提供する

AWS運用

SSM とは

AWS Systems Manager (SSM) は、EC2 インスタンスやオンプレミスサーバーの管理、パラメータストア、セッションマネージャーを提供するサービスである。サーバーレス開発では主に SSM Parameter Store を設定値の管理に使う。

SSM Parameter Store

SSM Parameter Store のコード例を示す。

import { SSMClient, GetParameterCommand } from '@aws-sdk/client-ssm';

const ssm = new SSMClient({});
const param = await ssm.send(new GetParameterCommand({
  Name: '/myapp/prod/log-level',
  WithDecryption: true,
}));
console.log(param.Parameter?.Value); // "INFO"

パラメータの種類

パラメータの種類を以下にまとめる。

種類 暗号化 コスト 用途
String なし 無料 設定値、URL
StringList なし 無料 カンマ区切りのリスト
SecureString KMS 無料 パスワード (簡易)

Secrets Manager との使い分け

Secrets Manager との使い分けを以下に整理する。

観点 SSM Parameter Store Secrets Manager
コスト 無料 (Standard) $0.40/月
自動ローテーション
用途 設定値、フラグ パスワード、API キー
階層構造 ✅ (/myapp/prod/db-host)
/myapp/
  /prod/
    /db-host     → "db.example.com"
    /log-level   → "WARN"
  /dev/
    /db-host     → "localhost"
    /log-level   → "DEBUG"

Session Manager

SSH なしで EC2 インスタンスに接続する。セキュリティグループでポート 22 を開ける必要がない。

aws ssm start-session --target i-1234567890abcdef0

Run Command

複数の EC2 インスタンスにコマンドを一括実行する。

aws ssm send-command \
  --targets Key=tag:Environment,Values=prod \
  --document-name AWS-RunShellScript \
  --parameters commands=["yum update -y"]

サーバーレスでの SSM

Lambda + DynamoDB のサーバーレス構成では、Session Manager や Run Command は不要。SSM Parameter Store を設定値の管理に使うのが主な用途。

SSM の理解を深めるには関連書籍が参考になる。

この記事は役に立ちましたか?

関連用語

関連する記事