5
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Elastic beanstalk on Docker on Elastic beanstalk (前半)

Elastic Beanstalk はAWSのサービスを簡単にセットアップできるサービスで、インスタンスをいろいろなプラットフォームを動かすことができます。
今回はElastic BeanstalkでセットアップしたDockerのイメージ上で、Ruby on Railsを動かすために自分がやってみた方法をご紹介します。
間に合わなさそうなので長くなりそうなので、今回はElastic beanstalk の設定と Docker設定ファイルの取得までです。

まず、ローカルでRailsのプロジェクトを用意します。
Rubyは2.2を使います。

Elastic beanstalkの環境を作成

create_env_1.png

事前定義はDockerを選びます。

create_env_2.png

まずはサンプルアプリケーションで作成して、後から書き換えます。

create_env_3.png

データベースはRDSを利用しますので、チェックをいれて作成します。

create_env_4.png

EC2のキーペアも作成します。
RDSの設定もあわせて行います。ユーザー名、パスワードを入れて進めます。

create_env_5.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

いくらか設定が必要なのですが、こちらのスレッドに設定ファイルがまとまっているので、こちらを拝借します。

RailsのルートディレクトリにDockerfile, Dockerrun.aws.json, .dockerignore, nginx-env.conf, nginx.confをコピペします。

環境設定の設定

Elastic beanstalk は設定画面で環境変数をセットすることができます。必要な環境変数は立ち上がったあとのElastic beanstalkの設定画面からセットしておきます。さらに、nginxがrailsに環境変数を渡せるようにするために、 nginx-env.conf に設定を追加する必要があります。

つづく・・

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
5
Help us understand the problem. What are the problem?