Amazon EC2 Systems Managerの階層パラメータを試してみる

2017.06.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、菊池です。

Amazon EC2 Systems Managerの機能の1つ、パラメータストアで階層管理の機能が追加されました。

階層構造でパラメータを定義することで、本番、開発といった環境や、組織単位での管理がしやすくなります。

パラメータ階層

例えば、本番/ステージング/開発の3つの環境をもつDBのパスワードの場合、/(環境名)/db/passのような形式でパラメータを定義できます。

ssm-para-001

試しに、3環境、6つのパラメータを作成しました。

  • /prd/db/user
  • /prd/db/pass
  • /stg/db/user
  • /stg/db/pass
  • /dev/db/user
  • /dev/db/pass

階層で作成したパラメータは、GetParametersByPath APIを使うことで、一括で取得することができます。AWS CLIからはSSMのget-parameters-by-pathコマンドを使います。

$ aws ssm get-parameters-by-path --path /prd/db
{
    "Parameters": [
        {
            "Type": "String",
            "Name": "/prd/db/pass",
            "Value": "PRDPASSWORD"
        },
        {
            "Type": "String",
            "Name": "/prd/db/user",
            "Value": "prd-db-user"
        }
    ]
}

2つのパラメータが1つのコマンドで取得できました。

最後に

小ネタですが、新機能の階層パラメータを試しました。パラメータストアは、インスタンスで利用するパラメータをAWSサービスで管理できるので便利です。管理性も向上したので積極的に利用していきたいですね。