1.2.2. 初期設定・サンプルアプリケーションの動作確認

1.2.2.1. Git 初期設定

Beansltalk のデプロイでは Git を利用します。 まず、 git init コマンドで Git の初期設定を行います。

C:\web2py>git init
Initialized empty Git repository in C:/web2py/.git/

もしこの段階で、 git init コマンドの実行を忘れた場合でも、任意の時点でコマンド実行後、 eb start コマンドを実行すれば、コードのプッシュに必要な環境が用意されます。 ただし、 eb start コマンドを実行すると、 optionsettings 設定ファイルの記述が初期値に 戻ることがあります。

1.2.2.2. Benastalk 初期設定(eb init コマンド)

最初に Beanstalk の初期設定を行います。

デプロイしたいローカルの web2pyディレクトリ(今回は c:\web2py)で、コマンドラインを開きます。 eb ツールのための、ディレクトリや設定ファイルを生成するため、 eb init コマンド実行します。

C:\web2py>eb init

Beanstalk のデプロイに必要な情報の入力が要求されます。

  1. AWSキーの入力

    AWS アクセスキー ID(AWS Access key ID) や シークレットアクセスキー(AWS Secret Access Key) の入力

    この場合は、AWSアカウントの Security Credentials 画面を開き、 登録されているコードを確認して入力します。

    ../../_images/web2py_deploy_001r.PNG
  2. AWSリージョン

    サーバのリージョンを指定します。

  3. Beanstalk アプリケーション名

    アプリケーション名を指定します。デフォルト値は ディレクトリ名 になります。

  4. Beanstalk 環境名

    環境名を指定します。デフォルトは ディレクトリ名-env になります。

  5. 仮想マシンの種類

    仮想マシンの種類を選択します。通常は、10) 64bit Amazon Linux running Python で大丈夫です。

  6. RDS DB インスタンス生成

    RDS のDBインスタンスを生成するか選択します。今回の手順説明では作成するので、y とします。 既存のDBインスタンスを使用する場合は作成しなくでもよいでしょう。

  7. RDS DB インスタンスをスナップショットから作成

    スナップショット・バックアップからDBインスタンスを生成するか選択します。 今回はスナップショットから作成しないため、1 とします。デフォルトも 1 - No snapshot です。

  8. RDS DB のマスターパスワード

    RDS DB のマスターパスワードを登録します。2度入力します。

  9. Beanstalk 環境終了時にスナップショット作成

    Beanstalk 環境終了時にスナップショット・バックアップを作成するか選択します。 作成しない場合 DBデータは失われます。今回はテスト環境のため必要ないので、n とします。

実際にコマンドラインから実行した様子です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
C:\web2py>eb init
To get your AWS Access Key ID and Secret Access Key,
  visit "https://aws-portal.amazon.com/gp/aws/securityCredentials".
Enter your AWS Access Key ID (current value is "AKIAJ*****QZ35A"): xxxxxxxxxxxxxx
WKQZ35A
Enter your AWS Secret Access Key (current value is "uB8e1*****tjYUC"): xxxxxxxxxxxxxxxxxxxxxx
Select an AWS Elastic Beanstalk service region.
Available service regions are:
1) US East (Virginia)
2) US West (Oregon)
3) US West (North California)
4) EU West (Ireland)
5) Asia Pacific (Singapore)
6) Asia Pacific (Tokyo)
7) Asia Pacific (Sydney)
Select:  (1 to 7): 1
Enter an AWS Elastic Beanstalk application name (auto-generated value is "web2py"):
Enter an AWS Elastic Beanstalk environment name (auto-generated value is "web2py-env"):
Select a solution stack.
Available solution stacks are:
1) 32bit Amazon Linux running PHP 5.3
2) 64bit Amazon Linux running PHP 5.3
3) 64bit Windows Server 2008 R2 running IIS 7.5
4) 64bit Windows Server 2012 running IIS 8
5) 32bit Amazon Linux running Tomcat 7
6) 64bit Amazon Linux running Tomcat 7
7) 32bit Amazon Linux running Tomcat 6
8) 64bit Amazon Linux running Tomcat 6
9) 32bit Amazon Linux running Python
10) 64bit Amazon Linux running Python
11) 32bit Amazon Linux running Ruby 1.8.7
12) 64bit Amazon Linux running Ruby 1.8.7
13) 32bit Amazon Linux running Ruby 1.9.3
14) 64bit Amazon Linux running Ruby 1.9.3
Select:  (1 to 14): 10
Create an RDS DB Instance? [y/n]: y
Create an RDS BD Instance from (current value is "No snapshot"):
1) No snapshot
2) Other snapshot
Select:  (1 to 2): 1
Enter an RDS DB master password:
Retype password to confirm:
It you terminate your environment, your RDS DB Instance will be deleted and you will lose your data.
Create snapshot? [y/n]: n
Updated AWS Credential file at "C:\Users\xxxx\.elasticbeanstalk\aws_credential_file".
syntax2html

eb init コマンドを実行しても、ローカルの設定情報が用意されるだけです。 AWSサーバ側では、設定情報やサービスは何ら準備されません。

1.2.2.3. Benastalk サービス生成(eb start コマンド)

次に、ローカルにある設定情報を元に、AWSサーバ側でサービスを起動します。

eb start コマンドは、設定された条件でAWSサーバ側のサービスを起動していきます。 先ほどの eb init の設定で用意されるのは、ec2インスタンス・RDS DB・ロードバランサ・ オートスケールグループ・各セキュリティグループなどです。

C:\web2py>eb start

eb start コマンド完了後、 AWS マネジメントコンソール の Beanstalk サービスのアイコンが青くなり Successfully running となると、 サービス準備が完了したことになります(コマンド投入から完了までは結構時間が掛かります)。

../../_images/web2py_deploy_002r.PNG

サービスの状態は eb status コマンドでも確認することが可能です。Ready になっていれば OK です。

C:\web2py>eb status
URL     : web2py-env-xxxxxxx.elasticbeanstalk.com
Status  : Ready
Health  : Green

RDS Database: AWSEBRDSDatabase | xxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxx.us-east-1.rds.amazo
naws.com:3306

しかしサービスの準備が完了するまで時間が掛かるため、いちいちコマンドを叩くより、 コンソールを監視した方が楽です。

まだアプリケーションの設定は行なっていないので、代わりにサンプルアプリケーションがセットされます。

../../_images/web2py_deploy_003r.PNG

Beanstalk の詳細のURLをクリックすると、サンプルアプリケーションが表示されます。

../../_images/web2py_deploy_004r.PNG

サンプルアプリケーション画面

ここまでで、Beanstalk を使用したサンプルアプリケーションのデプロイを、確認することができました。