AWS Black Belt Online Seminar
AWS体験ハンズオン
~ Deploy with EB CLI編 ~
Easy to begin, Impossible to outgrow
アマゾンウェブサービスジャパン株式会社
ソリューションアーキテクト 江川大地
2017.05.24
© 2017 Amazon Web Services, Inc. and its affiliates. All rights reserved.
2
AWS Black Belt Online Seminar とは
AWSJ の Tech メンバーが AWS に関する様々な事を紹介するオンラインセミナーです
【火曜 12:00~13:00】
主に AWS のソリューションや
業界カットでの使いどころなどを紹介
(例:IoT、金融業界向け etc.)
【水曜 18:00~19:00】
主に AWS サービスの紹介や
アップデートの解説
(例:EC2、RDS、Lambda etc.)
• 開催曜日と時間帯は変更となる場合がございます。
• 最新の情報は下記をご確認下さい。
オンラインセミナーのスケジュール & 申し込みサイト
https://aws.amazon.com/jp/about-aws/events/webinars/
3
本ハンズオンの目的
AWS Elastic Beanstalk を利用したデプロイを体験する
• Elastic Beanstalk Command Line Interface(EB CLI) の利用
• EB CLI を利用したアプリケーションのデプロイ
• EB CLI を使用したインプレース・デプロイメント(ローリングデプロイ)
• EB CLI を使用したレッド/ブラック・デプロイメント
• AWS クラウド無料利用枠の範囲で確認できます
https://aws.amazon.com/jp/free/
4
事前に準備すべきもの
• AWS アカウントおよび下記サービスを利用可能なIAMユーザー
- Elastic Beanstalk, EC2, ELB, Auto Scaling, S3, CloudWatch Logs,
IAM, Cloudformation
• AWS アカウント作成の流れとポイント
https://aws.amazon.com/jp/register-flow/
• SSH 接続ができるソフトウェア(Windows の場合は Tera Term など)
• Web ブラウザ
• Firefox または Chrome を推奨
• 関連資料のダウンロード(画面右上にリンクあり)
• 本セミナー資料
• コマンドラインテキスト
http://bit.ly/2rS7Iyu 資料を選択して
参照をクリック
5
注意事項
お客様の環境により、本ラボが実施できない場合がございます
• すべてのサポートは難しい点についてご了承ください
本資料からコピーアンドペーストしないでください
• 不必要なスペース等が入る可能性があります
複数の画面を表示するため、ディスプレイ表示を工夫してください
オンラインセミナー
配信画面
ブラウザ(Chrome, Firefox)
・資料(PDF)閲覧
・AWS マネジメントコンソール
・簡易アプリケーション
・入力用テキスト
など 任意のテキストエディタ
・コピーアンドペースト用に使用
6
Agenda
• ハンズオンのための作業環境構築(EC2 インスタンス(Linux)の作成)
• AWS Elastic Beanstalk 概要
• ハンズオン
• EB CLI のインストールと EB CLI による環境構築
• EB CLI によるデプロイ
• 環境の削除
※ 「ハンズオン」ページが皆様が作業するページです
ハンズオンのための作業環境構築
(EC2 インスタンス(Linux)の作成)
8
操作概要
• マネジメントコンソールへのログイン
• IAM ロールの作成
• EC2 インスタンスの作成
9
AWS マネジメントコンソールへサインイン
作業: 事前に準備した AWS アカウントへサインイン
10
AWS マネジメントコンソールへサインイン (続き)
作業: 言語設定を日本語にする
画面左下をクリック
11
AWS マネジメントコンソールへサインイン (続き)
作業: 使用するリージョンを選択する
画面右上をクリック
特に理由がなければ
「東京」リージョンを
選択してください
12
進捗確認
AWS マネジメントコンソールへサインインできましたか?
作業が終わった方は左上の
マークをクリックし、[賛成]
を選択してください
確認が終わりましたら、
[状態の消去] で状態を
キャンセルできます
(お時間が余った方)参考資料:
AWS Elastic Beanstalk: https://aws.amazon.com/jp/elasticbeanstalk/
AWS Elastic Beanstalkドキュメント: http://docs.aws.amazon.com/ja_jp/elasticbeanstalk
クラウドサービス活用資料集: https://aws.amazon.com/jp/aws-jp-introduction/
13
IAM ロールの作成(1/4)
作業: IAM コンソールへ移動する
検索ウィンドウに “IAM”
と入力し、表示された
[IAM]をクリック
14
IAM ロールの作成(2/4)
作業: BeanstalkFullAccess ポリシーを持つ IAM ロールを作成する
1. [ロール]をクリック
2. [新しいロールの作成]
をクリック
15
IAM ロールの作成(3/4)
作業: BeanstalkFullAccess ポリシーを持つ IAM ロールを作成する
1. “Amazon EC2” の隣に
ある[選択]をクリック
2. 検索窓に
「beanstalkfull」と入力
4. [次のステップ]をクリック
3. [AWSElasticBeanstalkFullAccess]
ポリシーをチェック
16
IAM ロールの作成(4/4)
作業: BeanstalkFullAccess ポリシーを持つ IAM ロールを作成する
1. 「ロール名」に任意の
名前(例:beanstalk_role)
を入力
2. [ロールの作成]をクリック
17
作業環境(Amazon EC2 インスタンス)の作成(1/8)
作業: EC2 コンソールへ移動
2. 検索ウィンドウに
“EC2”と入力し、表示さ
れた[EC2]をクリック
1. [サービス]をクリック
18
作業環境(Amazon EC2 インスタンス)の作成(2/8)
作業: AMI, インスタンスタイプを選択
1. [インスタンスの作成]
をクリック
2. 「Amazon Linux」 の
[選択]をクリック
3. [次の手順]をクリック
19
作業環境(Amazon EC2 インスタンス)の作成(3/8)
作業: インスタンスの詳細設定で IAM ロールを選択
1.「IAM ロール」で先ほ
ど作成したロールを選択
2. [次の手順]をクリック
20
作業環境(Amazon EC2 インスタンス)の作成(4/8)
作業:ストレージの設定
[次の手順]をクリック
21
作業環境(Amazon EC2 インスタンス)の作成(5/8)
作業: タグの設定
1.任意のタグを追加
2. [次の手順]をクリック
22
作業環境(Amazon EC2 インスタンス)の作成(6/8)
作業: セキュリティグループの設定
1.「SSH」を選択
2. [確認と作成]をクリック
23
作業環境(Amazon EC2 インスタンス)の作成(7/8)
作業: 最終確認とキーペアの設定
1.[起動]をクリック
2. [次の手順]をクリック
2.キーペア名を入力し、 [キーペアの
ダウンロード]をクリック
3.[インスタンスの作成]をクリック
24
作業環境(Amazon EC2 インスタンス)の作成(8/8)
作業: EC2 コンソールへ戻って、インスタンス作成が開始したことを確認
AWS Elastic Beanstalk 概要
26
AWS Elastic Beanstalk とは
特徴 (http://aws.amazon.com/jp/elasticbeanstalk/)
• 速く簡単にアプリケーションをデプロイ可能
• インフラストラクチャの準備&運営からアプリ
ケーションスタックの管理まで自動化
• Auto Scaling によりコストを抑えながらスケー
ラビリティを確保
• Java, PHP, Ruby, Python, Node.js, .NET,
Docker, Goに対応
価格体系 (http://aws.amazon.com/jp/elasticbeanstalk/pricing/)
• 追加料金なし
• アプリケーションの保存、実行に必要なAWSリ
ソース (EC2, S3, RDS, ELB など) に対しての
み課金
定番構成の構築・アプリデプロイの自動化サービス
27
ウェブサーバー環境
サポートする環境と対応プラットフォーム
ワーカー環境
Auto scaling Group Auto scaling Group
Amazon S3
Your Code(war/zip)
Ruby
Python
Node.js
.NET
PHP
Java
Go
yourenv.elasticbeanstalk.com
28
Elastic Beanstalk vs. Do It Yourself
On-instance configuration
Your code
HTTP Server
Application Server
Language Interpreter
Operating System
Host
29
On-instance configuration
Your code
HTTP Server
Application Server
Language Interpreter
Operating System
Host
アプリケーションの開発
”だけ”にフォーカス
Elastic Beanstalkにお任せ!
Elastic Beanstalk vs. Do It Yourself
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
31
AWS Elastic Beanstalk の構成要素(2/3)
アプリケーション
• トップレベルの論理単位
• バージョン、環境、環境設定が含まれている入れ物
バージョン(Application Version)
• デプロイ可能なコード
• Amazon S3 上でのバージョン管理
• 異なる環境に異なるバージョンをデプロイ可能
詳細:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/concepts.components.html
32
AWS Elastic Beanstalk の構成要素(3/3)
環境
• 各環境(ウェブサーバ、ワーカー) に応じて構築されるインフラ環境
• バージョン(ソースコード)をデプロイ
例)Webサーバ環境:ELB + EC2(コードがデプロイされる)
環境設定
• その環境に関連するリソースの動作を定義する設定パラメータ
• 例)EC2 のインスタンスタイプ、Auto Scaling の設定など
詳細:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/concepts.components.html
33
複数環境を利用する例
V1.1
アプリケーション
開発環境 ステージング環境 本番環境
Python 3.4
AMI ID
ami-abcd2222
Python 2.7
AMI ID
ami-abcd1111
Python 2.7
AMI ID
ami-abcd1111
V1.2
ハンズオン
- EB CLI のインストールと EB CLI による環境構築 -
35
操作概要
• EB CLI のインストール
• EB CLI の初期設定とアプリケーション作成
• eb init コマンドの実行
• EB CLI による環境作成
• eb create コマンドの実行
36
アプリケーション、環境を構築する方法
1. AWS Management Console
2. 各種 IDE ツール
• AWS Toolkit for Eclipse(Java アプリケーションの構築に対応)
• http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/java-eclipsetoolkit.html
• AWS Toolkit for Visual Studio(.Net アプリケーションの構築に対応)
• http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/dotnet-toolkit.html
3. 各種 SDK, AWS CLI
• API と一対一な操作が可能
• http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/ (AWS CLI)
4. EB Command Line Interface(EB CLI)
• ハイレベルな操作が可能なコマンドラインツール
• 頻繁にデプロイが繰り返される環境下での自動化に便利
• http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb-cli3.html
37
EB CLI とは
• AWS Elastic Beanstalk のコマンドラインインターフェイス
• 環境の作成、更新、モニタリングを簡素化する高レベルコマンドを提供
 AWS CLIのelasticbeanstalkコマンドはAPIに1対1で対応
• 主なコマンド
 init
 create
 deploy
 upgrade
 terminate
 clone
 status
詳細:http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb3-cmd-commands.html
38
EB CLI のインストール
• 事前準備で作成した EC2 インスタンスにログイン
- Tera Term(windows), ターミナル(Mac)などで
- ユーザー:ec2-user
作業:下記のコマンドを実行し、EB CLI をインストール
作業:作業用フォルダの作成
$pip install --upgrade --user awsebcli
$ mkdir ~/eb-lab
$ cd ~/eb-lab
39
EB CLI の初期設定
作業:下記のコマンドを実行
• 対話形式で下記項目を設定していく(詳細は次ページ以降)
• リージョン
• アプリケーション名
• プラットフォーム(プログラム言語など)
• 利用するプログラム言語のバージョン
• EC2インスタンスへのSSH可否
• SSHする場合のキーペア
$ eb init
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
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を選択
42
EB CLI の初期設定
作業: PHP バージョンの選択
Select a platform version.
1) PHP 5.4
2) PHP 5.5
3) PHP 5.6
4) PHP 7.0
5) PHP 5.3
(default is 1): 3
“3” を入力し、5.6を選択する
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:
パスフレーズは空白
のままエンター
44
ここまでの作業範囲
アプリケーション
アプリケーションの作成が完了
45
進捗確認
eb init が完了し、プロンプトは返ってきましたか?
作業が終わった方は左上の
マークをクリックし、[賛成]
を選択してください
確認が終わりましたら、
[状態の消去] で状態を
キャンセルできます
(お時間が余った方)参考資料:
AWS Elastic Beanstalk: https://aws.amazon.com/jp/elasticbeanstalk/
AWS Elastic Beanstalkドキュメント: http://docs.aws.amazon.com/ja_jp/elasticbeanstalk
クラウドサービス活用資料集: https://aws.amazon.com/jp/aws-jp-introduction/
46
環境構築とサンプルアプリケーションのデプロイ
作業:サンプルWebアプリケーションの取得と展開
$ cd /tmp
$ wget https://s3-ap-northeast-
1.amazonaws.com/daichie/materials/ec2-info.zip
テンポラリディレクトリに移動し、デ
プロイ対象となるサンプルの
PHP アプリケーションをダウンロード
$ unzip ec2-info.zip
$ cp -r ec2-info/* ~/eb-lab/
$ cd ~/eb-lab eb init の初期設定を行った
ディレクトリへ展開
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 は他の人と
重複しない任意の値を入力
48
環境構築とサンプルアプリケーションのデプロイ
作業: 下記のような表示を確認して、”Ctrl+C” を入力
Creating application version archive "app-170525_hhmmss".
Uploading: [##################################################] 100%
Done...
Environment details for: eb-lab-dev
Application name: eb-lab
Region: ap-northeast-1
Deployed Version: app-170525_062936
Environment ID: e-2bpp53gwex
Platform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/PHP 5.6
running on 64bit Amazon Linux/2.4.0
Tier: WebServer-Standard
CNAME: ec2-user-dev.ap-northeast-1.elasticbeanstalk.com
Updated: 2017-05-25 06:29:42.389000+00:00
Printing Status:
INFO: createEnvironment is starting.
-- Events -- (safe to Ctrl+C)
この表示を確認した
ら、”Ctrl+C” を入力
49
環境構築とサンプルアプリケーションのデプロイ
作業: 環境の構築状況を確認
$ eb status
Application name: ec2-user
Region: ap-northeast-1
Deployed Version: app-170521_062936
Environment ID: e-2bpp53gwex
Platform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/PHP
5.6 running on 64bit Amazon Linux/2.4.0
Tier: WebServer-Standard
CNAME: ec2-user-dev.ap-northeast-1.elasticbeanstalk.com
Updated: 2017-05-25 06:33:13.613000+00:00
Status: Ready
Health: Green
”Status” が、”Ready” かつ、
”Health” が ”Green” となったら、
次の作業へ進みます。
50
環境構築とサンプルアプリケーションのデプロイ
作業:w3m のインストール(構築した環境の確認のため)
$ sudo yum -y install w3m.x86_64
51
環境構築とサンプルアプリケーションのデプロイ
作業:Web ブラウザでデプロイした PHP コードの確認
$ eb open
ブラウザ上に、EC2 インスタンスのメ
タデータが表示されることを確認
(“q”を入力するとエスケープ可能)
バージョンは
v1.0
52
ここまでで構築したリソース
アプリケーション
環境(Environment)
URL 環境設定
Version
Repository
Your code
(War/Zip)
環境の中身
53
構築したリソースをマネジメントコンソールでも確認
作業:マネジメントコンソールで Beanstalk のページへ移動
1. 左上の[サービス]-[Elastic
Beanstalk]をクリック
2. 作成したアプリケーション、
環境が存在することを確認し、
「環境名」ををクリック
54
構築したリソースをマネジメントコンソールでも確認
作業:環境のURL を確認(後で利用)
1. 環境の状態などを確認
2. この環境の URL にアクセスして eb open
で表示した画面を確認し、URL をテキストエ
ディタなどにコピー&ペースト
55
進捗確認
eb open で PHP アプリケーションが動いていることを確認できましたか?
作業が終わった方は左上の
マークをクリックし、[賛成]
を選択してください
確認が終わりましたら、
[状態の消去] で状態を
キャンセルできます
(お時間が余った方)以下の操作を試してみましょう:
• マネジメントコンソールでその他のページを確認
• EB CLI で以下のコマンドを実行
 eb events:構築した環境のイベント情報を表示します
 eb health:環境の監視情報を表示します
 eb ssh:構築した環境に SSH 接続します
 eb logs:ログ(Apache のログなど)を表示します
 eb config: 現在の環境設定を表示し、内容の確認、編集を行うことができます。
ハンズオン
- EB CLI によるデプロイ -
57
操作概要
• EB CLI による新バージョンのコードのデプロイ
• In Place Deployment(Rolling Deploy)
 eb deploy コマンドの実行
• Red/Black Deployment(Blue/Green Deployment)
 eb swap コマンドの実行
58
デプロイメントに関する用語
In Place Deployment(Rolling Deploy)
• インスタンスは現行環境のものをそのまま利用し、
新しいリビジョンのコードをその場で反映させる
Blue/Green Deployment(Red/Black Deployment)
• 新しいリビジョンのコードを、新しいインスタンスに反映させ、
インスタンスごと入れ替える
参考:http://aws.typepad.com/sajp/2015/12/what-is-blue-green-deployment.html
Elastic Beanstalk ではどちらの方式も
簡単に実現可能
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
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
61
新バージョンのデプロイ(In Place Deployment)
作業:ソースコードの新バージョンを作成する
(現在のディレクトリが “/home/ec2-user/eb-lab”である前提です)
$ vi index.php
:
<br/>
<h2>Instance Metadata v1.0</h2>
<p style="font-style"italic;">……</p>
:
:
編集前
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
新バージョンのデプロイ(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” を入力
64
新バージョンのデプロイ(In Place Deployment)
作業: 環境の構築状況を確認
$ eb status
Application name: ec2-user
Region: ap-northeast-1
Deployed Version: app-170521_062936
Environment ID: e-2bpp53gwex
Platform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/PHP
5.6 running on 64bit Amazon Linux/2.4.0
Tier: WebServer-Standard
CNAME: ec2-user-dev.ap-northeast-1.elasticbeanstalk.com
Updated: 2017-05-25 06:33:13.613000+00:00
Status: Ready
Health: Green
”Status” が、”Ready” かつ、
”Health” が ”Green” となったら、
次の作業へ進みます。
65
新バージョンのデプロイ(In Place Deployment)
作業:Web ブラウザでデプロイした PHP コードの確認
$ eb open
バージョンが v1.1 と
なっていることを確認
66
ここまでで構築したリソース
アプリケーション
環境(Environment)
URL 環境設定
Version
Repository
Your code
v1.0
Your code
v1.1
67
新バージョンのデプロイ(Red Black Deployment)
作業:ソースコードの新バージョンを作成する
(現在のディレクトリが “/home/ec2-user/eb-lab”である前提です)
$ vi index.php
:
<br/>
<h2>Instance Metadata v1.1</h2>
<p style="font-style"italic;">……</p>
:
:
編集前
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
新バージョンのデプロイ(Red Black Deployment)
作業:Elastic Beanstalk 環境を作成する(環境名と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 は他の人と重複しない
任意の値を入力
70
新バージョンのデプロイ(Red Black Deployment)
作業: 下記のような表示を確認して、”Ctrl+C” を入力
Creating application version archive "app-170525_hhmmss".
Uploading: [##################################################] 100%
Done...
Environment details for: eb-lab-dev
Application name: eb-lab
Region: ap-northeast-1
Deployed Version: app-170525_062936
Environment ID: e-2bpp53gwex
Platform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/PHP 5.6
running on 64bit Amazon Linux/2.4.0
Tier: WebServer-Standard
CNAME: ec2-user-dev.ap-northeast-1.elasticbeanstalk.com
Updated: 2017-05-25 06:29:42.389000+00:00
Printing Status:
INFO: createEnvironment is starting.
-- Events -- (safe to Ctrl+C)
この表示を確認した
ら、”Ctrl+C” を入力
71
新バージョンのデプロイ(Red Black Deployment)
作業: 環境の構築状況を確認
$ eb status eb-lab-dev2
Application name: ec2-user
Region: ap-northeast-1
Deployed Version: app-170521_062936
Environment ID: e-2bpp53gwex
Platform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/PHP
5.6 running on 64bit Amazon Linux/2.4.0
Tier: WebServer-Standard
CNAME: ec2-user-dev.ap-northeast-1.elasticbeanstalk.com
Updated: 2017-05-25 06:33:13.613000+00:00
Status: Ready
Health: Green
”Status” が、”Ready” かつ、
”Health” が ”Green” となったら、
次の作業へ進みます。
引数として、新たに構築した環境名を
入力して実行
72
新バージョンのデプロイ(Red Black Deployment)
作業:Web ブラウザでデプロイした PHP コードの確認
$ eb open eb-lab-dev2
バージョンが v2.0 と
なっていることを確認
73
ここまでで構築したリソース
アプリケーション
環境(Environment)
eb-lab-dev.xxx.com 環境設定
Version
Repository
Your code
v1.0
Your code
v1.1
環境(Environment)
環境設定
Your code
v2.0
eb-lab-dev2.xxx.com
74
新バージョンのデプロイ(Red Black Deployment)
作業:新旧の環境に付与された URL を入れ替え
下記の出力を確認します
$ eb swap eb-lab-dev --destination_name eb-lab-dev2
INFO: swapEnvironmentCNAMEs is starting.
INFO: Swapping CNAMEs for environments 'eb-lab-dev' and 'eb-lab-
dev2'.
INFO: 'eb-lab-dev.ap-northeast-1.elasticbeanstalk.com' now points
to 'awseb-e-d-AWSEBLoa-1FLL90XOXQ6KZ-1192037292.ap-northeast-
1.elb.amazonaws.com'.
INFO: Completed swapping CNAMEs for environments 'eb-lab-dev' and
'eb-lab-dev2'.
75
ここまでで構築したリソース
アプリケーション
環境(Environment)
eb-lab-dev.xxx.com 環境設定
Version
Repository
Your code
v1.0
Your code
v1.1
環境(Environment)
環境設定
Your code
v2.0
eb-lab-dev2.xxx.com
76
ここまでで構築したリソース
アプリケーション
環境(Environment)
eb-lab-dev2.xxx.com 環境設定
Version
Repository
Your code
v1.0
Your code
v1.1
環境(Environment)
環境設定
Your code
v2.0
eb-lab-dev.xxx.com
77
新バージョンのデプロイ(Red Black Deployment)
作業:入れ替えた環境をブラウザで確認
最初に環境を構築したときにコピーしたURLへWebブラウザからアクセス
バージョンが v2.0 と
なっていることを確認
78
進捗確認
最初に構築した環境の URL で新バージョンのコードを確認できましたか?
作業が終わった方は左上の
マークをクリックし、[賛成]
を選択してください
確認が終わりましたら、
[状態の消去] で状態を
キャンセルできます
(お時間が余った方)以下の操作を試してみましょう:
• マネジメントコンソールで現在の状態を確認
• EB CLI で以下のコマンドを実行
 eb events:構築した環境のイベント情報を表示します
 eb health:環境の監視情報を表示します
 eb ssh:構築した環境に SSH 接続します
 eb logs:ログ(Apache のログなど)を表示します
 eb config: 現在の環境設定を表示し、内容の確認、編集を行うことができます。
ハンズオン - 環境の削除 -
80
環境の削除
作業:下記のコマンドで環境の削除を行います
$ eb terminate eb-lab-dev
The environment "eb-lab-dev" and all associated instances
will be terminated.
To confirm, type the environment name: eb-lab-dev
:
:
: 本当に削除して良いかの
確認のため、「環境名」
を入力します
お疲れ様でした!
以上でハンズオンは終了となります
82
本日の実施内容
• ハンズオンのための作業環境構築(EC2 インスタンス(Linux)の作成)
• AWS Elastic Beanstalk 概要
• ハンズオン
• EB CLI のインストールと EB CLI による環境構築
• EB CLI によるデプロイ
• 環境の削除
83
参考資料
• AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
• (動画) https://connect.awswebcasts.com/p2d2pb5oomd/
• (資料)https://www.slideshare.net/AmazonWebServicesJapan/aws-
black-belt-online-seminar-2017-aws-elastic-beanstalk
 Tips, デプロイポリシーの詳細な動きなどはこちらで確認できます
84
オンラインセミナー資料の配置場所
• AWS クラウドサービス活用資料集
http://aws.amazon.com/jp/aws-jp-introduction/
• AWS Solutions Architect ブログ
最新の情報、セミナー中のQ&A等が掲載されています
http://aws.typepad.com/sajp/
85
公式 Twitter / Facebook
AWS の最新情報をお届けします
@awscloud_jp
検索
最新技術情報、イベント情報、お役立ち情報、
お得なキャンペーン情報などを日々更新しています!
もしくは
http://on.fb.me/1vR8yWm
86
AWS の導入、お問い合わせのご相談
AWSクラウド導入に関するご質問、お見積り、資料請求を
ご希望のお客様は以下のリンクよりお気軽にご相談ください
https://aws.amazon.com/jp/contact-us/aws-sales/
※「AWS 問い合わせ」で検索してください
© 2017 Amazon Web Services, Inc. and its affiliates. All rights reserved.

AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~