Amazon EC2 System Managerのパラメータストアを使って、settings.local.ymlを消せないか考えてみる。今日は、System Manager、パラメータストアのドキュメントを読んで、ちょっと確かめるまでやる。
Amazon EC2 System Managerとは
System Managerでは、マネージドインスタンスの設定を安全にリモートで管理することができるツール。今回は、その中のパラメータストアを使いたい。パラメータストアは、設定データの管理を一元化するもの。settings.local.ymlのパラメータを、こいつで簡単に運用できないか考えたい。
セットアップ
Amazon Linux 2015.09、2015.03 以降でのみ、利用可能。
IAMロールの設定
コマンドを処理するEC2インスタンスのIAMロールと、コマンドを実行するユーザーのロールが必要。
手順は下の3ステップ
ユーザーの作成
- ユーザー名: SystemsManagerUserFullAccessみたいなやつ
- Permission: AmazonSSMFullAccess, AmazonSSMReadOnlyAccess
- Management Consoleアクセスはいらない。
EC2インスタンス用のロール設定
AmazonEC2RoleforSSMポリシーを適用したRoleを作る。
EC2インスタンスにロールをアタッチする
普通にアタッチすれば良い。
SSMエージェントのインストール
mkdir /tmp/ssm cd /tmp/ssm sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm sudo status amazon-ssm-agent #これだけで動くのか確認しておく
↑で起動しなければ、下記コマンドを実行する。
sudo start amazon-ssm-agent
手元で試してみる
大体概要が分かった気がするので、一旦手元で確かめてみる。
aws> ssm put-parameter --name "sample" --type String --value "hogehoge" aws> ssm get-parameters --names "sample" --query "Parameters[0].Value" --output text hogehoge
namesは、wildcard指定はできない。ふーむ。
このあとのアクション
Rails起動時に、色々できないか見てみる。今考えているのは、config/initializer/consts.rb とかに、諸々突っ込むこと。できれば環境変数に全部突っ込んでほしいなぁ。