selmertsxの素振り日記

ひたすら日々の素振り内容を書き続けるだけの日記

20170706_今日の素振り

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 とかに、諸々突っ込むこと。できれば環境変数に全部突っ込んでほしいなぁ。