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 initBeanstalk のデプロイに必要な情報の入力が要求されます。
- AWSキーの入力
AWS アクセスキー ID(AWS Access key ID) や シークレットアクセスキー(AWS Secret Access Key) の入力
この場合は、AWSアカウントの Security Credentials 画面を開き、 登録されているコードを確認して入力します。
- AWSリージョン
サーバのリージョンを指定します。
- Beanstalk アプリケーション名
アプリケーション名を指定します。デフォルト値は ディレクトリ名 になります。
- Beanstalk 環境名
環境名を指定します。デフォルトは ディレクトリ名-env になります。
- 仮想マシンの種類
仮想マシンの種類を選択します。通常は、10) 64bit Amazon Linux running Python で大丈夫です。
- RDS DB インスタンス生成
RDS のDBインスタンスを生成するか選択します。今回の手順説明では作成するので、y とします。 既存のDBインスタンスを使用する場合は作成しなくでもよいでしょう。
- RDS DB インスタンスをスナップショットから作成
スナップショット・バックアップからDBインスタンスを生成するか選択します。 今回はスナップショットから作成しないため、1 とします。デフォルトも 1 - No snapshot です。
- RDS DB のマスターパスワード
RDS DB のマスターパスワードを登録します。2度入力します。
- 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 となると、 サービス準備が完了したことになります(コマンド投入から完了までは結構時間が掛かります)。サービスの状態は
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しかしサービスの準備が完了するまで時間が掛かるため、いちいちコマンドを叩くより、 コンソールを監視した方が楽です。
まだアプリケーションの設定は行なっていないので、代わりにサンプルアプリケーションがセットされます。
Beanstalk の詳細のURLをクリックすると、サンプルアプリケーションが表示されます。
ここまでで、Beanstalk を使用したサンプルアプリケーションのデプロイを、確認することができました。