AWS SSM パラメータストアをCLIから変更できるツールを作成してみた。

前回紹介の記事では、SSMパラメータストアを変更すると、それに対応したCloudformationスタックが自動で更新されるようなものを紹介していました。この方法では一つ問題がありました。パラメータストアの変更には、コンソール上で自分でパラメータを変更してやる必要がありました。変更が必要なパラメータが数多くあったり、パラメータの変更に時間がかかるようなケースがあり得ると思われます。その時にLambdaが定期実行し、変更のキューを確認する都合で、スタックの更新に必要なパラメータの変更が十分でなく、更新に失敗するといったことが考えられます。具体的には、ECSなどを使っている場合で、インスタンスサイズを上げたものの、タスク等を増やせなかったなど、様々なパターンが考えられます。
そのため、CLI上でまとめてパラメータを変更できるようなツールをGo言語で作ってみたので紹介します。
ソースコードはgithubのレポジトリに入れてあります。

環境


- Windows10 Pro: 20H2
- WSL2: Ubuntu-18.04
- go: 1.14.2

前提条件

以前紹介の記事の通りにパラメータストアをデプロイしているものとする。
パラメータの例としては以下。 

/Cloud/prod/Customer/LambdaTimeout

中身の紹介

 githubのソースコードをGOPATH配下などにダウンロードしてきたら、必要なモジュールをダウンロードします。 

go get -u github.com/aws/aws-sdk-go/aws


その後、実際に動かしてみます。

go run ./src/handlers/ParamterStoreUpdate/main.go


そうすると、更新するサービス一覧が出るので、入力します。
次にはパラメータ一覧が表示されるので、入力してみます。
現在値を読み取ってきて、CLIに表示するので変更したい値を入力すると初期の画面に遷移します。またサービスとパラメータを入力して変更したいパラメータを変えていきます。
最後にExitを入力するとパラメータの更新が一括で実行されます。
実際にやってみたときの具体的な表示内容などは以下の画像のとおりです。

画像1

最後に

今回、個人的なGo言語の勉強を兼ねて作成してみたものになります。
そのため、パラメータの作成方法には決め打ちでやっているため少し使い勝手が悪いです。また対話式と言いつつも、手入力の範囲も多かったりするので、そういった点は改善事項として挙げられます。

この記事が気に入ったらサポートをしてみませんか?