5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Elastic beanstalk on Docker on Elastic beanstalk (前半)

Last updated at Posted at 2015-12-06

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 に設定を追加する必要があります。

つづく・・

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?