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なし無料カンマ区切りのリスト
SecureStringKMS無料パスワード (簡易)

Secrets Manager との使い分け

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

観点SSM Parameter StoreSecrets 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 の理解を深めるには関連書籍が参考になる。

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

関連用語

関連する記事