【AWS】SSMパラメータストアに格納した環境変数をEC2で利用する
前回に引き続き、SSMを利用して実際に使用した事を書き記しておきます。
今回はEC2の環境変数をパラメータストアから取得しようという話です。
EC2で何故SSMを使うのか
ECSでは普通にSSMを参照出来るのに、EC2だけサーバー内に直置きだからです。
せっかくAWSの機能があるのだから、マネージドな感じにしたいと思うのがインフラエンジニアとしての欲求なのではないでしょうか。
EC2で使う方法
まず環境変数として使うパラメータをパラメータストアに登録しておきます。
コンソールからやってもいいですが、awscliを使ったほうがサクサク出来ます。
aws ssm put-parameter --name "/xxxx/yyyy/zzzz" --value "sample" --type String
上記のようにput-parameterで値をセット出来ます。
1つ気をつけるのは、nameをパスで階層構造にすることです。こうすることで、パス以下を一括して取って来られるからです。
セットしたら、次のコマンドをEC2内で実行すればパス以下の値を全て取得出来ます。
もちろんawscliがインストールされていて、IAMロールのポリシーがちゃんとアタッチされていることが前提です。
aws ssm get-parameters-by-path --path "/xxxx/yyyy" --with-decryption
上記のget-parameters-by-pathで/xxxx/yyyy以下を全て取得出来ます。
あとはシェルスクリプトに組み込むなりして、デプロイ時に実行すれば反映されます。
やってみて思ったのですが、OS領域までマネージドじゃないのでスクリプトとか組む必要あるのが面倒だと思いました。
やっぱりECSとかマネージドなものはいいですね。簡単にサービス同士を連携出来るので。
では今日はこの辺で。