28
Elastic Beanstalk vs.Do It Yourself
On-instance configuration
Your code
HTTP Server
Application Server
Language Interpreter
Operating System
Host
29.
29
On-instance configuration
Your code
HTTPServer
Application Server
Language Interpreter
Operating System
Host
アプリケーションの開発
”だけ”にフォーカス
Elastic Beanstalkにお任せ!
Elastic Beanstalk vs. Do It Yourself
30.
30
AWS Elastic Beanstalkの構成要素(1/3)
アプリケーション
環境(Environment)
URL 環境設定
環境(Environment)
URL 環境設定
環境(Environment)
URL 環境設定
Version
Repository
Your code
(War/Zip)
Your code
(War/Zip)
Your code
(War/Zip)
詳細:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/concepts.components.html
40
EB CLI の初期設定
作業:リージョンの選択
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-south-1 : Asia Pacific (Mumbai)
7) ap-southeast-1 : Asia Pacific (Singapore)
8) ap-southeast-2 : Asia Pacific (Sydney)
9) ap-northeast-1 : Asia Pacific (Tokyo)
10) ap-northeast-2 : Asia Pacific (Seoul)
11) sa-east-1 : South America (Sao Paulo)
12) cn-north-1 : China (Beijing)
13) us-east-2 : US East (Ohio)
14) ca-central-1 : Canada (Central)
15) eu-west-2 : EU (London)
(default is 3):9
“9” を入力し、東京リー
ジョンを選択する
41.
41
EB CLI の初期設定
作業:アプリケーション名とプラットフォームの選択
Enter Application Name
(default is "eb-lab"):
デフォルトで良いので、
空白のままエンター
Application eb-lab has been created.
Select a platform.
1) Node.js
2) PHP
3) Python
4) Ruby
5) Tomcat
6) IIS
7) Docker
8) Multi-container Docker
9) GlassFish
10) Go
11) Java
12) Packer
(default is 1): 2
“2” を入力し、PHPを選択
43
EB CLI の初期設定
作業:SSH の可否を選択
Do you want to set up SSH for your instances?
(Y/n): y
“y” を入力し、
SSHログインを可能にする
Select a keypair.
1) eb-key
2) [ Create new KeyPair ]
(default is 1): 2
“Create new Keypair” を選択し、
新たにSSHキーを作成する
(環境によって選択肢が異なります)
Type a keypair name.
(Default is aws-eb):
任意の名前を入力する
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
パスフレーズは空白
のままエンター
47
環境構築とサンプルアプリケーションのデプロイ
作業:Elastic Beanstalk 環境を作成する(環境名とURLの指定)
$eb create
Enter Environment Name
(default is eb-lab-dev):
Enter DNS CNAME prefix
(default is eb-lab-dev): eb-myname-dev
Select a load balancer type
1) classic
2) application
(default is 1): 1
“1” を入力して、Classic ELB を選択
環境名はデフォルトでよいので、空白
のままエンター
URL の prefix は他の人と
重複しない任意の値を入力
58
デプロイメントに関する用語
In Place Deployment(RollingDeploy)
• インスタンスは現行環境のものをそのまま利用し、
新しいリビジョンのコードをその場で反映させる
Blue/Green Deployment(Red/Black Deployment)
• 新しいリビジョンのコードを、新しいインスタンスに反映させ、
インスタンスごと入れ替える
参考:http://aws.typepad.com/sajp/2015/12/what-is-blue-green-deployment.html
Elastic Beanstalk ではどちらの方式も
簡単に実現可能
59.
59
Elastic Beanstalkにおけるデプロイの選択肢
• デプロイポリシーに従った既存環境へのデプロイ
All at once
Rolling
Rolling with additional batch
Immutable
• URL Swap による既存環境と新環境の切替
• Amazon Route 53 を利用した既存環境と新環境の切替
In Place
In Place & Blue/Green
Blue/Green
参考:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.deploy-existing-version.html
60.
60
Elastic Beanstalkにおけるデプロイの選択肢
• デプロイポリシーに従った既存環境へのデプロイ
All at once
Rolling
Rolling with additional batch
Immutable
• URL Swap による既存環境と新環境の切替
• Amazon Route 53 を利用した既存環境と新環境の切替
In Place
In Place & Blue/Green
Blue/Green
参考:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.deploy-existing-version.html
z
62
新バージョンのデプロイ(In Place Deployment)
作業:ソースコードの新バージョンを作成する
(現在のディレクトリが“/home/ec2-user/eb-lab”である前提です)
$ vi index.php
:
<br/>
<h2>Instance Metadata v1.1</h2>
<p style="font-style"italic;">……</p>
:
: “<h2>Instance Metadata v1.0</h2>” と
なっている箇所を“<h2>Instance
Metadata v1.1 with eb deploy</h2>”と変
更し、エディタを終了します。
編集後
63.
63
新バージョンのデプロイ(In Place Deployment)
作業:新バージョンのデプロイ
上記のコマンド実行後、下記の表示を確認
$eb deploy
Creating application version archive "app-170521_075508".
Uploading eb-lab/app-170521_075508.zip to S3. This may take a while.
Upload Complete.
INFO: Environment update is starting.
INFO: Deploying new version to instance(s).
-- Events -- (safe to Ctrl+C) Use "eb abort" to cancel the command.
この表示を確認した
ら、”Ctrl+C” を入力
68
新バージョンのデプロイ(Red Black Deployment)
作業:ソースコードの新バージョンを作成する
(現在のディレクトリが“/home/ec2-user/eb-lab”である前提です)
$ vi index.php
:
<br/>
<h2>Instance Metadata v2.0</h2>
<p style="font-style"italic;">……</p>
:
: “<h2>Instance Metadata v1.1</h2>” と
なっている箇所を“<h2>Instance
Metadata v2.0 with eb deploy</h2>”と変
更し、エディタを終了します。
編集後
69.
69
新バージョンのデプロイ(Red Black Deployment)
作業:ElasticBeanstalk 環境を作成する(環境名とURLの指定)
$ eb create
Enter Environment Name
(default is eb-lab-dev2):
Enter DNS CNAME prefix
(default is eb-lab-dev2):
Select a load balancer type
1) classic
2) application
(default is 1): 1
環境名はデフォルトでよいので、空白
のままエンター
“1” を入力して、Classic ELB を選択
URL の prefix は他の人と重複しない
任意の値を入力
80
環境の削除
作業:下記のコマンドで環境の削除を行います
$ eb terminateeb-lab-dev
The environment "eb-lab-dev" and all associated instances
will be terminated.
To confirm, type the environment name: eb-lab-dev
:
:
: 本当に削除して良いかの
確認のため、「環境名」
を入力します