EC2 Systems ManagerのParameter Storeがバージョニングをサポートしました

2017.10.27

はじめに

中山(順)です

EC2 Systems ManagerのParameter Storeがバージョニングをサポートしました!

Amazon EC2 Systems Manager Parameter Store Adds Versioning Support

最新および過去の値に対して明示的にバージョン番号が付与されます。

使い勝手を確認してみたいと思います。

Parameter Storeとは?

弊社ブログでも何度が取り上げられていますので、説明は割愛します。

Amazon EC2 Systems Managerでパラメーターストアを試してみた #reinvent

EC2 Systems Manager のパラメータストアを利用したアプリケーション環境設定の管理

AWS KMS で EC2 Systems Managerパラメータストアを暗号化

【Tips】Run CommandでParameter StoreのSecure String(暗号化した文字列)を参照する

CloudWatch EventsがEC2 Systems Managerのパラメータストアに対応しました

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

使ってみた(マネージメントコンソールの場合)

作成

まずは、パラメーターを作成します。

create-parameter-amc-01

パラメーターを選択すると、「履歴」のタブから変更履歴を確認できます。
バージョン番号が付与されていることが確認できます。

create-parameter-amc-02

更新

パラメーターを更新してみます。

create-parameter-amc-03

「履歴」のタブから、最新の値に新しいバージョン番号が付与されていることが確認できました。

create-parameter-amc-04

使ってみた(AWS CLIの場合)

作成

パラメーターを作成します。
作成すると、パージョン番号が返ってきます。

aws ssm put-parameter \
    --name var01 \
    --description "Developers.IO" \
    --value "hogehoge" \
    --type String
{
    "Version": 1
}

パラメーターを参照してみます。
以下の通り、パラメーターの属性として"Version"が追加されています。

aws ssm get-parameter \
    --name var01
{
    "Parameter": {
        "Version": 1,
        "Type": "String",
        "Name": "var01",
        "Value": "hogehoge"
    }
}

更新

それでは、パラメーターを更新してみます。
(更新の際には、--overwriteオプションが必要です)
以下の通り、バージョン番号が繰り上がりました。

aws ssm put-parameter \
    --name var01 \
    --value "fugafuga" \
    --type String \
    --overwrite
{
    "Version": 2
}

パラメーターを参照してみます。
こちらでもバージョン番号が繰り上がっていることが確認できます。

aws ssm get-parameter \
    --name var01
{
    "Parameter": {
        "Version": 2,
        "Type": "String",
        "Name": "var01",
        "Value": "fugafuga"
    }
}

また、履歴の一覧を表示するコマンドを実行してみます。

aws ssm get-parameter-history \
    --name var01
{
    "Parameters": [
        {
            "Name": "var01",
            "LastModifiedDate": 1509075022.629,
            "Value": "hogehoge",
            "Version": 1,
            "LastModifiedUser": "arn:aws:iam::XXXXXXXXXXXX:user/xxxx",
            "Type": "String",
            "Description": "Developers.IO"
        },
        {
            "Name": "var01",
            "LastModifiedDate": 1509075066.023,
            "Value": "fugafuga",
            "Version": 2,
            "LastModifiedUser": "arn:aws:iam::XXXXXXXXXXXX:user/xxxx",
            "Type": "String",
            "Description": "Developers.IO"
        }
    ]
}

特定のバージョンの値を取得する方法は以下の通りです。

aws ssm get-parameter \
    --name var01:1
{
    "Parameter": {
        "Version": 1,
        "Type": "String",
        "Name": "var01",
        "Value": "hogehoge"
    }
}

まとめ

とっても地味なアップデートですが、もともとParameter Store自体とても便利なサービスです。
この記事でParameter Storeを知ったという方は、ぜひ活用を検討してみてください!