8. Elastic Beanstalk vs. Do It Yourself
On-instance configuration
Your code
HTTP Server
Application Server
Language Interpreter
Operating System
Host
8
9. On-instance configuration
Your code
HTTP Server
Application Server
Language Interpreter
Operating System
Host
アプリケーションの開発
”だけ”にフォーカス
Elastic Beanstalkにお任せ!
Elastic Beanstalk vs. Do It Yourself
9
24. eb init によるアプリケーション作成とデフォルト環境設定の定義
• eb initのプロンプト: リージョンの選択
Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-southeast-1 : Asia Pacific (Singapore)
7) ap-southeast-2 : Asia Pacific (Sydney)
8) ap-northeast-1 : Asia Pacific (Tokyo)
9) sa-east-1 : South America (Sao Paulo)
10) cn-north-1 : China (Beijing)
(default is 3):
24
25. • eb initのプロンプト: アプリ名/スタック/SSH/Keypair
Enter Application Name
(default is "eb-node-express-sample"):
It appears you are using Node.js. Is this correct?
(y/n): y
Do you want to set up SSH for your instances?
(y/n): y
Select a keypair.
1) mykey
2) [ Create new KeyPair ]
(default is 2): 1
25
eb init によるアプリケーション作成とデフォルト環境設定の定義
27. eb create による環境作成
• eb createのプロンプト: Environment/CNAME/Deploy
Enter Environment Name
(default is eb-node-express-sample):
Enter DNS CNAME prefix
(default is eb-node-express-sample):
Creating application version archive "5529".
Uploading eb-node-express-sample/5529.zip to S3. This may
take a while.
Upload Complete.
Environment details for: eb-node-express-sample
Application name: eb-node-express-sample
Region: us-west-2
Deployed Version: 5529
Environment ID: e-ufxx79fmkc27
33. Elastic Beanstalkにおけるデプロイの選択肢
• デプロイポリシー に従った既存環境へのデプロイ
All at once
Rolling
Rolling with additional batch
Immutable
• URL Swap による既存環境と新環境の切替
• Amazon Route 53 を利用した既存環境と新環境の切替
33
In Place
In Place & Blue/Green
Blue/Green
参考:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.deploy-existing-version.html
34. デプロイポリシーを理解する(1/7)
All at once Rolling
Rolling with additional batch Immutable
現 現 現
現 現 現 現 現 現
バッチタイプ:固定
バッチサイズ:2台
34
現 現 現
バッチタイプ*:固定
バッチサイズ*:2台
*バッチタイプ、バッチサイズについては後述
参考:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
【凡例】
ヘルスチェックが成功し、
リクエストを処理可能
ヘルスチェックを実行中
デプロイメント実行中
35. デプロイポリシーを理解する(2/7)
All at once Rolling
Rolling with additional batch Immutable
新 新 新 新 新 現
現 現 現 現 現 現新
35
新新
$ eb deploy
$ eb deploy
$ eb deploy $ eb deploy
詳細:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
バッチタイプ:固定
バッチサイズ:2台
バッチタイプ*:固定
バッチサイズ*:2台
【凡例】
ヘルスチェックが成功し、
リクエストを処理可能
ヘルスチェックを実行中
デプロイメント実行中
36. デプロイポリシーを理解する(3/7)
All at once Rolling
Rolling with additional batch Immutable
新 新 新 新 新 現
現 現 現 現 現 現新
36
新新
詳細:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
バッチタイプ:固定
バッチサイズ:2台
バッチタイプ*:固定
バッチサイズ*:2台
【凡例】
ヘルスチェックが成功し、
リクエストを処理可能
ヘルスチェックを実行中
デプロイメント実行中
37. デプロイポリシーを理解する(4/7)
All at once Rolling
Rolling with additional batch Immutable
新 新 新 新 新
新 現 現 現 現 現
37
新 新 新新 新
新
詳細:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
バッチタイプ:固定
バッチサイズ:2台
バッチタイプ*:固定
バッチサイズ*:2台
【凡例】
ヘルスチェックが成功し、
リクエストを処理可能
ヘルスチェックを実行中
デプロイメント実行中
38. デプロイポリシーを理解する(5/7)
All at once Rolling
Rolling with additional batch Immutable
新 新 新 新 新 新
新 現 現 現 現 現
38
新 新 新新 新
詳細:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
バッチタイプ:固定
バッチサイズ:2台
バッチタイプ*:固定
バッチサイズ*:2台
【凡例】
ヘルスチェックが成功し、
リクエストを処理可能
ヘルスチェックを実行中
デプロイメント実行中
39. デプロイポリシーを理解する(6/7)
All at once Rolling
Rolling with additional batch Immutable
新 新 新 新 新 新
新 現 現 現
39
新 新 新新 新
詳細:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
バッチタイプ:固定
バッチサイズ:2台
バッチタイプ*:固定
バッチサイズ*:2台
【凡例】
ヘルスチェックが成功し、
リクエストを処理可能
ヘルスチェックを実行中
デプロイメント実行中
40. デプロイポリシーを理解する(7/7)
All at once Rolling
Rolling with additional batch Immutable
新 新 新 新 新 新
新
40
新 新 新新 新
詳細:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
バッチタイプ:固定
バッチサイズ:2台
バッチタイプ*:固定
バッチサイズ*:2台
【凡例】
ヘルスチェックが成功し、
リクエストを処理可能
ヘルスチェックを実行中
デプロイメント実行中
80. ローカルでのDockerコンテナの実行
• EB CLI で実行可能
$ eb local run
- 開発時に便利なコマンド群
$ eb local status
$ eb local open
$ eb local logs
$ eb local run
Creating elasticbeanstalk_phpapp_1...
Creating elasticbeanstalk_nginxproxy_1...
Attaching to elasticbeanstalk_phpapp_1, elasticbeanstalk_nginxproxy_1
phpapp_1 | [23-Apr-2015 23:24:25] NOTICE: fpm is running, pid 1
phpapp_1 | [23-Apr-2015 23:24:25] NOTICE: ready to handle connections
80