1. pachirel

    Posted

    pachirel
Changes in title
+Elastic beanstalk on Docker on Elastic beanstalk (前半)
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,60 @@
+
+Elastic Beanstalk はAWSのサービスを簡単にセットアップできるサービスで、インスタンスをいろいろなプラットフォームを動かすことができます。
+今回はElastic BeanstalkでセットアップしたDockerのイメージ上で、Ruby on Railsを動かすために自分がやってみた方法をご紹介します。
+<s>間に合わなさそうなので</s>長くなりそうなので、今回はElastic beanstalk の設定と Docker設定ファイルの取得までです。
+
+まず、ローカルでRailsのプロジェクトを用意します。
+Rubyは2.2を使います。
+
+## Elastic beanstalkの環境を作成
+
+<img width="600" alt="create_env_1.png" src="https://qiita-image-store.s3.amazonaws.com/0/18113/0c258371-3351-c385-69b5-687bd8715a01.png">
+
+事前定義はDockerを選びます。
+
+<img width="600" alt="create_env_2.png" src="https://qiita-image-store.s3.amazonaws.com/0/18113/a0f71692-731f-e003-95d9-ddeb6a12eedd.png">
+
+まずはサンプルアプリケーションで作成して、後から書き換えます。
+
+<img width="600" alt="create_env_3.png" src="https://qiita-image-store.s3.amazonaws.com/0/18113/fc2e51f1-8298-2205-0c32-63308335922e.png">
+
+データベースはRDSを利用しますので、チェックをいれて作成します。
+
+<img width="600" alt="create_env_4.png" src="https://qiita-image-store.s3.amazonaws.com/0/18113/5850adad-bdb5-7890-4806-013525dd41ae.png">
+
+EC2のキーペアも作成します。
+RDSの設定もあわせて行います。ユーザー名、パスワードを入れて進めます。
+
+<img width="600" alt="create_env_5.png" src="https://qiita-image-store.s3.amazonaws.com/0/18113/29e0e31b-52ed-eea6-6ffa-9259aa741c7a.png">
+
+サービスロール等もウィザードに沿って作ります。
+全部できたら「起動」します。
+
+## eb コマンドラインインターフェースのインストール
+
+Elastic beanstalk にコンソールからデプロイするために、ebコマンドラインインターフェースをインストールします。
+homebrewからもインストールできますが、最新版を常に使いたい場合は、pip コマンド経由でインストールします。pip コマンドをインストールするには setuptools が必要なので、こちらもあわせてインストールする必要があります。
+
+> curl https://bootstrap.pypa.io/ez_setup.py -o - | python
+> easy_install pip
+> pip install awsebcli
+
+Railsのルートで eb init コマンドを実行して、設定を入れます。
+ここから eb deploy に進めばよいのですが、いくらか追加の設定が必要です。
+
+## Dockerfile等の設定ファイルの準備
+
+Rails を Docker 上で簡単に動かすために、 passenger-docker のイメージを利用します。
+https://github.com/phusion/passenger-docker
+
+いくらか設定が必要なのですが、こちらのスレッドに設定ファイルがまとまっているので、こちらを拝借します。
+
+http://stackoverflow.com/questions/31516527/how-to-deploy-rails-application-on-amazon-elastic-beanstalk-on-a-single-containe
+
+RailsのルートディレクトリにDockerfile, Dockerrun.aws.json, .dockerignore, nginx-env.conf, nginx.confをコピペします。
+
+### 環境設定の設定
+
+Elastic beanstalk は設定画面で環境変数をセットすることができます。必要な環境変数は立ち上がったあとのElastic beanstalkの設定画面からセットしておきます。さらに、nginxがrailsに環境変数を渡せるようにするために、 `nginx-env.conf` に設定を追加する必要があります。
+
+(需要があれば)つづきます・・