SlideShare a Scribd company logo
しみず @shimy_net
2013 / 6 / 22
AWS Elastic Beanstalk!
初心者向け 超速マスター編
自己紹介
しみず @shimy_net
Webアーキテクト
アマゾン芸人
無駄に技術を使って
面白いことをする
本を執筆しました
http://goo.gl/QtaK6
アプリケーションを動かすには
実行環境が必要
□ 2つの方法
・EC2 や ELB を利用して実行環境を構築する
 →手間がかかる
  自由度が高い
・AWS Elastic Beanstalk を利用する
 →スケールできる環境を即構築
  バージョン・環境の管理が簡単
AWS Elastic Beanstalk とは
□ Webアプリの実行環境を構築・管理するサービス
Auto scaling Group
Instance
Instance
Amazon
RDS
Elastic Load
Balancing
CloudWatch
デプロイ
AWS Elastic Beanstalk
S3war zip
Amazon
SNS
Internet
AWS Elastic Beanstalk とは
□ サポートする言語とスタック
・Apache Tomcat for Java
・Apache HTTP Server for PHP
・Apache HTTP Server for Python
・Nginx or Apache HTTP Server for Node.js
・Passenger for Ruby
・Microsoft IIS 7.5 for .NET
AWS Elastic Beanstalk とは
□ アプリをアップロードするだけで自動的にデプロイ
・容量のプロビジョニング
・負荷分散
・Auto-Scaling
・アプリケーション状態モニタリング
□ 実行環境の設定
・サーバースペック
・40項目以上の設定が可能
□ 利用できる API の制約・処理時間の制約はない
AWS Elastic Beanstalk とは
□ アプリのバージョン管理
・WAR や ZIP の世代管理が可能
・アプリのロールバック・ロールフォワードが容易
□ 複数環境の構築
・本番、テストなど目的によって構築できる
□ 料金
・Elastic Beanstalk 自体の追加料金は無し
・EC2 インスタンスなど利用したリソースの実費のみ
AWS Elastic Beanstalk とは
□ Application の論理構成
URL
Application
Environment
Environment
Configuration
URL
Environment
Environment
Configuration
Version
war / zip
war / zip
war / zip
war / zip
開発・管理ツール
  AWS Management Console(Webブラウザ)
  AWS Elastic Beanstalk Command Line Tools
→http://aws.amazon.com/code/6752709412171743
  AWS Toolkit for Eclipse(Java)
→http://aws.amazon.com/eclipse
・AWS SDK for Java
・AWS Explorer
・AWS Elastic Beanstalk
やること
□ Management Console から利用する
・アプリと環境を作成
・デプロイ方法
・バージョン管理
・新しい環境を作成する
□ 設定を変更する
・Auto Scaling
・ELB
・Container
・RDS
・セーブ&ロード
□ Eclipse から利用する(Java)
・デモンストレーション
Management Console から利用
① ここからスタート
② Elastic Beanstalk を選択
アプリと環境を作成
□ まずは、手順にそってデフォルト構成で構築
URL
Application
Environment
Environment
Configuration
Version
war / zip
アプリと環境を作成
③ Create New Application をクリック
⑤ コンテナ を選択
⑥ サンプルアプリを選択
④ アプリケーション名 を指定
アプリと環境を作成
⑧ URL を指定
⑦ 環境名 を指定
アプリと環境を作成
⑨ インスタンスタイプ を指定
EC2インスタンスに
SSHアクセスする場合はキーペアを指定
通知を受ける場合は
メールアドレスを指定
アプリと環境を作成
⑩ 完了
アプリと環境を作成
数分で
サンプルアプリが起動
① URLにアクセス
出来上がった論理構成は
□ サンプルアプリが起動
URL
Application
Environment
Environment
Configuration
Version
war / zip
サンプルアプリ
http://XXXXX.elasticbeanstalk.com/
新しいアプリをデプロイ
□ アプリを切り替える
URL
Application
Environment
Environment
Configuration
Version
war / zip
http://XXXXX.elasticbeanstalk.com/
war / zip
新しいアプリ
サンプルアプリ
マネコンからアプリをデプロイ
□ 2つの方法
 ・AWS Management Console から
 ・git から
URL
Application
Environment
Environment
Configuration
Version
war / zip
war / zip
URL
Application
Environment
Environment
Configuration
Version
war / zip
war / zip
$ git aws.config
AWS Access Key: AKIXXXX
AWS Secret Key: XXXXXXX
AWS Region: ap-northeast-1
AWS Elastic Beanstalk
Environment: XXXXXX
マネコンからアプリをデプロイ
□別のアプリをデプロイするには
① Deploy a Different Version
をクリック
② ラベル をつける
③ アプリ を選択
④ 完了
Gitからアプリをデプロイ
□ 2つの方法
 ・AWS Management Console から
 ・git から
URL
Application
Environment
Environment
Configuration
Version
war / zip
war / zip
URL
Application
Environment
Environment
Configuration
Version
war / zip
war / zip
$ git aws.config
AWS Access Key: AKIXXXX
AWS Secret Key: XXXXXXX
AWS Region: ap-northeast-1
AWS Elastic Beanstalk
Environment: XXXXXX
Gitからアプリをデプロイ
□ 必要なもの
・AWS Elastic Beanstalk Command Line Tool
  →http://aws.amazon.com/code/6752709412171743
・Git 1.6.6 or later
  →http://git-scm.com/
・Ruby version 1.8.7 or later
  →http://www.ruby-lang.org/en/
・Python 2.7 or 3.0
Gitからアプリをデプロイ
□ プロジェクトを作成
□ ソースコードを開発
$ mkdir helloworld
$ cd helloworld
$ git init
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(process.env.PORT || 8888);
$ vi server.js
Node.jsの例
Gitからアプリをデプロイ
□ 拡張コマンドのセットアップ
□ AWSの設定
$ git aws.config
AWS Access Key: AKIXXXXXXXXXXXXXXXX
AWS Secret Key: XXXXXXXXXXXXXXXXXXX
AWS Region [default to us-east-1]: ap-northeast-1
AWS Elastic Beanstalk Application: XXXXXXXXXX
AWS Elastic Beanstalk Environment: XXXXXXXXXX
$ ~/AWS-ElasticBeanstalk-CLI-2.4.0/AWSDevTools/
Linux/AWSDevTools-RepositorySetup.sh
→http://aws.amazon.com/code/6752709412171743
Security Credentials
Gitからアプリをデプロイ
□ ローカルリポジトリにコミット
□ AWS Elastic Beanstalk へデプロイ
$ git add server.js
$ git commit –m “initial commit”
$ git aws.push
Gitからアプリをデプロイ
□ 新しいアプリがデプロイされる
新しいアプリに
切り替わる
アプリのバージョンを管理
① Versions をクリック
一覧が表示される
新しい環境を追加
□ Environmentを追加
URL
Application
Environment
Environment
Configuration
Version
war / zip
war / zip
テスト環境
新しい環境を追加
□ Environmentを追加
URL
Application
Environment
Environment
Configuration
Version
war / zip
war / zip
URL
New Environment
Environment
Configuration
テスト環境
本番環境
新しい環境を追加
① Launch New Environment をクリック
③ URL を指定
② 環境名称 を指定
④ アプリ を指定
⑤ コンテナ を選択
新しい環境を追加
⑥ インスタンスタイプ を選択
新しい環境を追加
⑦ 完了
新しい環境を追加
本番環境の出来上がり
環境のスワッピング
DNS切り替えによって環境を移行できる
例えば、テスト環境 → 本番環境
① Swap Environment
URL をクリック
やること
□ Management Console から利用する
・アプリと環境を作成
・デプロイ方法
・バージョン管理
・新しい環境を作成する
□ 設定を変更する
・Auto Scaling
・ELB
・Container
・RDS
・セーブ&ロード
□ Eclipse から利用する(Java)
・デモンストレーション
Auto Scaling を設定する
□ デフォルトの構成だと
Auto scaling Group
InstanceElastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Auto Scaling を設定する
□ Multi-AZ を有効にする
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
Auto Scaling を設定する
③ 2 に変更
④ Any2 を選択
① Edit/Load Configuration
をクリック
② Auto Scaling タブ
をクリック
Auto Scaling を設定する
⑤ CPU Utillization を選択
⑥ Percent を選択
⑦ 70 を指定(適宜)
⑧ 30 を指定(適宜)
デフォルトはNetworkOutとなっており、実際に稼働させていな
い現状では絶対値でのスケールインアウトの判断ができない。
そこで、CPUUtillization による相対値を利用する
⑨ 完了
ELB を設定する
□ デフォルトの構成だと
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
ELB を設定する
□ Session Stickiness を有効にする
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
ELB を設定する
① Load Balancer
をクリック
② Enable Session Stickiness
をチェック
③ Cookie Expiration Period
を指定 ④ 完了
ELB を設定する
□ HTTPS を有効にする
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
ELB を設定する
□ HTTPS を有効にする
取得した証明書IDを指定することでELBにHTTPSの
トラフィックをルーティングさせることができる
$ iam-servercertupload -b www_abc_com.crt -c www_abc_com.ca-
bundle -k www_abc_com.key -s www_abc_com
$ iam-servercertlistbypath
arn:aws:iam::999999999:server-certificate/www_abc_com
Container を設定する (Java)
① Container をクリック
② 環境変数を指定
③ S3へログファイルをローテーション
④ 完了
インスタンスタイプ(メモリ量)を
変えても、この設定が動的に変わる
わけではない
RDS を設定する
□ ここまで設定した構成は
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
RDS を設定する
□ RDS ( Multi-AZ ) を設定する
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
RDS DB
Instance
RDS DB Instance
Standby
RDS を設定する
① Database をクリック
② Create an RDS DB Instance
をチェック
⑥ Username, Password を指定
⑦ Multi-AZ をチェック
③ DB Engine を選択
(MySQL, Oracle, SQLServer)
④ Instance Class を選択
⑤ ストレージサイズ を指定
⑧ 完了
設定のセーブ
① Save Configuration
をクリック
② Configuration Name
を指定
⑧ 完了
設定のロード
② ロードしたい設定を選択
① Edit/Load Configuration
をクリック
やること
□ Management Console から利用する
・アプリと環境を作成
・デプロイ方法
・バージョン管理
・新しい環境を作成する
□ 設定を変更する
・Auto Scaling
・ELB
・Container
・RDS
・セーブ&ロード
□ Eclipse から利用する(Java)
・デモンストレーション
デモンストレーション
□ 利用ツール
・Eclipse 4.2
・Seasar2
  http://eclipse.seasar.org/updates/3.3/
・AWS Toolkit for Eclipse
  http://aws.amazon.com/jp/eclipse/
・Sequel Pro 1.0.2
デモ動画をアップしました
http://youtu.be/ZR6zp1lVzCE
デモンストレーション
□ 構成図
Auto scaling Group
InstanceElastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
RDS DB
Instance
Instance
war
Eclipse
デプロイ
xxxx.elasticbeanstalk.com?id=1
1, YAMADA
パラメータで渡し
たidに対応するレ
コードを表示する
ID NAME
1  YAMADA
2  SUZUKI
3  MIZUNO
!
    以上!
ありがとうございました!

More Related Content

PDF
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
PDF
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
PDF
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
PDF
20180509 AWS Black Belt Online Seminar Amazon GuardDuty
PDF
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
PDF
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
PDF
AWS Black Belt Online Seminar AWSで実現するDisaster Recovery
PDF
20191023 AWS Black Belt Online Seminar Amazon EMR
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
20180509 AWS Black Belt Online Seminar Amazon GuardDuty
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
AWS Black Belt Online Seminar AWSで実現するDisaster Recovery
20191023 AWS Black Belt Online Seminar Amazon EMR

What's hot (20)

PDF
20170621 aws-black belt-ads-sms
PDF
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
PDF
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
PDF
[AKIBA.AWS] VGWのルーティング仕様
PDF
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
PDF
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
PDF
20200331 AWS Black Belt Online Seminar AWS Elemental MediaConvert
PDF
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
PDF
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
PDF
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...
PDF
AWS Black Belt Techシリーズ Elastic Load Balancing (ELB)
PDF
20190821 AWS Black Belt Online Seminar AWS AppSync
PDF
20200526 AWS Black Belt Online Seminar AWS X-Ray
PDF
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
PDF
AWS Black Belt Techシリーズ Amazon VPC
PDF
AWS Blackbelt 2015シリーズ RDS
PDF
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
PDF
[AKIBA.AWS] VPCをネットワーク図で理解してみる
PDF
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
PDF
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
20170621 aws-black belt-ads-sms
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
[AKIBA.AWS] VGWのルーティング仕様
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20200331 AWS Black Belt Online Seminar AWS Elemental MediaConvert
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...
AWS Black Belt Techシリーズ Elastic Load Balancing (ELB)
20190821 AWS Black Belt Online Seminar AWS AppSync
20200526 AWS Black Belt Online Seminar AWS X-Ray
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
AWS Black Belt Techシリーズ Amazon VPC
AWS Blackbelt 2015シリーズ RDS
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
[AKIBA.AWS] VPCをネットワーク図で理解してみる
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
Ad

Similar to AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪 (20)

PDF
Application Deployment on AWS
PDF
[AWSマイスターシリーズ] AWS Elastic Beanstalk
PDF
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
PDF
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
PPTX
PHP on Cloud
PDF
Aws elastic beanstalk-handson-summit2012
PDF
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
PDF
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
PPTX
20140621 july techfesta (JTF2014) 突発**むけAWS
PDF
AWS Summit New York 2017 Keynote Recap
PDF
AWSマイスターシリーズReloaded(AWS Beanstalk)
PDF
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
PPTX
サーバ構築・デプロイが簡単に!Elastic beanstalk
PPTX
AWSマイスターシリーズ(Elastic Beanstalk)
PDF
AWS OpsWorksハンズオン
PDF
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
PPTX
Windows on aws最新情報
PPTX
同じサービスを ECSとOpsWorksで 運用してみた
PDF
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜
PDF
20120528 aws meister-reloaded-awssd-kforjava-public
Application Deployment on AWS
[AWSマイスターシリーズ] AWS Elastic Beanstalk
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
PHP on Cloud
Aws elastic beanstalk-handson-summit2012
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
20140621 july techfesta (JTF2014) 突発**むけAWS
AWS Summit New York 2017 Keynote Recap
AWSマイスターシリーズReloaded(AWS Beanstalk)
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
サーバ構築・デプロイが簡単に!Elastic beanstalk
AWSマイスターシリーズ(Elastic Beanstalk)
AWS OpsWorksハンズオン
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
Windows on aws最新情報
同じサービスを ECSとOpsWorksで 運用してみた
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜
20120528 aws meister-reloaded-awssd-kforjava-public
Ad

More from 崇之 清水 (20)

PDF
WordPress RESTful API & Amazon API Gateway (English version)
PDF
知らなきゃ損なアップデートを振り返り(2020年分)- いにしえのサービスから勝手にチョイス
PDF
マイクロサービスを AWS サーバレス&コンテナで実装する方法
PDF
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
PDF
クラウドを活用したセンシング/モニタリングなどデータ分析の実現
PDF
AWS 主要なサービスアップデート 6/3-11/28
PDF
5分でサーバーレスの環境構築から本番デプロイまでやったろやないか! - Serverless Meetup Osaka #4 LT
PDF
サーバレスアプリケーションの入門と実践 - AWS Cloud Roadshow 2017 Osaka
PDF
AWS における サーバーレスの基礎からチューニングまで
PDF
データ分析 on AWS
PDF
日本語でおk AI スピーカーを作ってみた
PDF
Amazon Web Services (AWS) のご紹介
PDF
Amazon AI のスゴいデモ(仮) - Serverless Meetup Osaka
PDF
Amazon Pinpoint - re:Invent Serverless Follow Up - 20161207
PDF
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
PDF
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
PDF
Amazon API Gateway を活用したゲームサーバー構築
PDF
関西スタートアップAWS勉強会 スタートアップ最新事例
PDF
スタートアップ向け構成例とAWS活用事例(福岡市スタートアップカフェ)
PDF
Amazon Aurora の活用 - Developers.IO in OSAKA
WordPress RESTful API & Amazon API Gateway (English version)
知らなきゃ損なアップデートを振り返り(2020年分)- いにしえのサービスから勝手にチョイス
マイクロサービスを AWS サーバレス&コンテナで実装する方法
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
クラウドを活用したセンシング/モニタリングなどデータ分析の実現
AWS 主要なサービスアップデート 6/3-11/28
5分でサーバーレスの環境構築から本番デプロイまでやったろやないか! - Serverless Meetup Osaka #4 LT
サーバレスアプリケーションの入門と実践 - AWS Cloud Roadshow 2017 Osaka
AWS における サーバーレスの基礎からチューニングまで
データ分析 on AWS
日本語でおk AI スピーカーを作ってみた
Amazon Web Services (AWS) のご紹介
Amazon AI のスゴいデモ(仮) - Serverless Meetup Osaka
Amazon Pinpoint - re:Invent Serverless Follow Up - 20161207
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
Amazon API Gateway を活用したゲームサーバー構築
関西スタートアップAWS勉強会 スタートアップ最新事例
スタートアップ向け構成例とAWS活用事例(福岡市スタートアップカフェ)
Amazon Aurora の活用 - Developers.IO in OSAKA

AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪