87
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.

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

Embed Size (px)

Citation preview

AWS Black Belt Online SeminarAWS体験ハンズオン~ 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 環境設定

VersionRepository

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.js2) PHP3) Python4) Ruby5) Tomcat6) IIS7) Docker8) Multi-container Docker9) GlassFish10) Go11) Java12) Packer(default is 1): 2

“2” を入力し、PHPを選択

42

EB CLI の初期設定

作業: PHP バージョンの選択

Select a platform version.1) PHP 5.42) PHP 5.53) PHP 5.64) PHP 7.05) 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-key2) [ 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 createEnter Environment Name(default is eb-lab-dev):Enter DNS CNAME prefix(default is eb-lab-dev): eb-myname-dev

Select a load balancer type1) classic2) 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-labRegion: ap-northeast-1Deployed Version: app-170525_062936Environment ID: e-2bpp53gwexPlatform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/PHP 5.6

running on 64bit Amazon Linux/2.4.0Tier: WebServer-StandardCNAME: ec2-user-dev.ap-northeast-1.elasticbeanstalk.comUpdated: 2017-05-25 06:29:42.389000+00:00

Printing Status:INFO: createEnvironment is starting.-- Events -- (safe to Ctrl+C)

この表示を確認したら、”Ctrl+C” を入力

49

環境構築とサンプルアプリケーションのデプロイ

作業: 環境の構築状況を確認

$ eb statusApplication name: ec2-userRegion: ap-northeast-1Deployed Version: app-170521_062936Environment ID: e-2bpp53gwexPlatform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/PHP

5.6 running on 64bit Amazon Linux/2.4.0Tier: WebServer-StandardCNAME: ec2-user-dev.ap-northeast-1.elasticbeanstalk.comUpdated: 2017-05-25 06:33:13.613000+00:00Status: ReadyHealth: 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 環境設定

VersionRepository

Your code(War/Zip)

環境の中身

53

構築したリソースをマネジメントコンソールでも確認

作業:マネジメントコンソールで Beanstalk のページへ移動

1. 左上の[サービス]-[ElasticBeanstalk]をクリック

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 statusApplication name: ec2-userRegion: ap-northeast-1Deployed Version: app-170521_062936Environment ID: e-2bpp53gwexPlatform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/PHP

5.6 running on 64bit Amazon Linux/2.4.0Tier: WebServer-StandardCNAME: ec2-user-dev.ap-northeast-1.elasticbeanstalk.comUpdated: 2017-05-25 06:33:13.613000+00:00Status: ReadyHealth: Green

”Status” が、”Ready” かつ、”Health” が ”Green” となったら、次の作業へ進みます。

65

新バージョンのデプロイ(In Place Deployment)

作業:Web ブラウザでデプロイした PHP コードの確認

$ eb open

バージョンが v1.1 となっていることを確認

66

ここまでで構築したリソース

アプリケーション

環境(Environment)

URL 環境設定

VersionRepository

Your codev1.0

Your codev1.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 createEnter Environment Name(default is eb-lab-dev2):Enter DNS CNAME prefix(default is eb-lab-dev2):

Select a load balancer type1) classic2) 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-labRegion: ap-northeast-1Deployed Version: app-170525_062936Environment ID: e-2bpp53gwexPlatform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/PHP 5.6

running on 64bit Amazon Linux/2.4.0Tier: WebServer-StandardCNAME: ec2-user-dev.ap-northeast-1.elasticbeanstalk.comUpdated: 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-dev2Application name: ec2-userRegion: ap-northeast-1Deployed Version: app-170521_062936Environment ID: e-2bpp53gwexPlatform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/PHP

5.6 running on 64bit Amazon Linux/2.4.0Tier: WebServer-StandardCNAME: ec2-user-dev.ap-northeast-1.elasticbeanstalk.comUpdated: 2017-05-25 06:33:13.613000+00:00Status: ReadyHealth: 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 環境設定

VersionRepository

Your codev1.0

Your codev1.1

環境(Environment)

環境設定

Your codev2.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 環境設定

VersionRepository

Your codev1.0

Your codev1.1

環境(Environment)

環境設定

Your codev2.0

eb-lab-dev2.xxx.com

76

ここまでで構築したリソース

アプリケーション

環境(Environment)

eb-lab-dev2.xxx.com 環境設定

VersionRepository

Your codev1.0

Your codev1.1

環境(Environment)

環境設定

Your codev2.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-devThe 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 / FacebookAWS の最新情報をお届けします

@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.