質問: EC2でrailsを運用する場合、Auto Scallingでカスタムamiからインスタンスを起動するとrailsの動作に必要なSECRET_KEY_BASEなどの環境変数が素のままでは設定されていないため起動時に何かしら処理が必要かと思います。 この場合のベストプラクティスは何でしょうか? User Dataを使う方法が一般的でしょうか? Elastic BeanstalkのようにGUIの設定画面から環境変数指定できればami再作成せずに済むので楽だと思うのですがEC2ではそういう機能ありませんよね?
回答: 思いつくところで。 * UserData で設定ファイルなどを編集し、環境変数を設定する。 * AutoScaling で起動するインスタンスに Tag、および、API呼び出しに必要な role を付ける。AMI に仕込んだスクリプトから API呼び出し(aws ec2 describe-tags)で Tag を取得し、環境変数に設定する。 AutoScaling だと、UserData より Tag の方が変更しやすいと思います。