aws elastic beanstalk 詳細 -ほぼ週刊awsマイスターシリーズ第9回-

50
AWSマイスターシリーズ ~AWS Elastic Beanstalk~ 20111122片山 暁雄( @c9katayama ソリューションアーキテクト

Upload: -ken-tamagawa-amazon-web-services

Post on 14-Jan-2015

5.783 views

Category:

Technology


6 download

DESCRIPTION

 

TRANSCRIPT

Page 1: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

AWSマイスターシリーズ~AWS Elastic Beanstalk~

2011年11月22日片山 暁雄( @c9katayama )ソリューションアーキテクト

Page 2: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

ほぼ週刊AWSマイスターシリーズへようこそ!~GoToMeetingの使い方~

参加者は、自動的にミュートになっています

質問を投げることができます!

GoToMeetingの仕組みを使って、随時書き込んでください

ただし環境によっては、日本語の直接入力ができないので、

お手数ですが、テキストエディタ等に打ち込んでから、

貼り付けててください

後のQ&Aの時間で、できるだけ回答させて頂きます

書き込んだ質問は、主催者にしか見えません

Twitterのハッシュタグは#jawsugでどうぞ

Copyright © 2011 Amazon Web Services

Page 3: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

Webセミナーほぼ週刊AWSマイスターシリーズ(全11回)

11/22 第8回 AWS Elastic Beanstalk

11/30 第9回 EMR

12/7 第10回 SES

12/14 第11回 Simpleシリーズ

http://aws.amazon.com/jp/event_schedule/申し込みサイト

Page 4: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

2011/11/22 リリース!

IAMを使用して、Elastic Beanstalkのアクセス制御が可能に!

http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/index.html?AWSHowTo.iam.html

Page 5: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

AgendaAWS Elastic Beanstalkの概要

しくみ

HostManager開発・デプロイ

各種設定

他サービスとの連携

その他Tipsまとめ

Copyright © 2011 Amazon Web Services

Page 6: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

AWS Elastic Beanstalkの概要

Page 7: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

AWS Elastic Beanstalkとは

Beanstalk = 豆の木

「アプリケーションが実る幹」のイメージ

Webアプリケーションの実行環境を構築・管理するサービス

現在使用可能な言語:Java(OpenJDK6)

コンテナとして、Tomcat6 および Tomcat7をサポート

Page 8: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

AWS Elastic Beanstalkとは

利用出来るAPIの制約・処理時間の制約はない

ServletAPI他、Tomcatサポートの機能はすべて利用可能

ライブラリやフレームワークの制約もない

WARやZIPであればデプロイOK

ロードバランサー・オートスケーリング

ロードバランサーとオートスケーリングが標準装備

詳細な条件設定が可能

実行環境の設定

サーバスペック、VM設定など40項目以上の設定が可能

Page 9: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

AWS Elastic Beanstalkとは

Webアプリケーションのバージョン管理

WARやZIPの世代管理が可能

アプリのロールバック・ロールフォワードが容易

複数環境の構築が可能

本番・テストなど目的別に構築可能

開発・管理ツールを提供

AWS Management Console

コマンドラインツール

Eclipseプラグイン

Page 10: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

開発・管理ツール

AWS Management Console

AWS Toolkit for Eclipse

Page 11: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

しくみ

Page 12: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

アプリケーション管理の論理構成

Application

Environment Version

WARURL Environment Configuration

Configuration Template

EnvironmentURL Environment Configuration

WAR

WAR

WAR

WAREnvironmentURL Environment Configuration

Page 13: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

用語説明

Application トップレベルの論理単位

Applicationの中に、EnvironmentやVersionが入る

デプロイするアプリケーション(WARファイル)と混同しやすいので注意

Environment ConfigurationTemplateを元に構成される

WARをデプロイする環境

環境毎にURLが付与される

• URLは、XXX.elasticbeanstalk.com 各環境毎にEC2、ELBなどが立ち上がる

ログも環境毎に取得できる(1時間おきにS3へ送信可能)

Page 14: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

用語説明

Version Webアプリケーションのバージョン管理

WARファイルの履歴管理が可能

S3上でファイルを保持

Versionで管理したWARファイルを、各Environmentと紐付け

Page 15: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

Environment

テクニカルアーキテクチャ

ManagementConsole

S3

CloudWatch

ElasticLoadBalanceing

EC2

HM

EC2

HM

AutoScaling

Security Group

eclipse

SNS

URL

この環境が自動で構成される

DEMO

Page 16: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

HostManager

Page 17: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

各EC2インスタンス上で動作

Rubyで実装

/opt/elasticbeanstalk/srv/hostmanager/lib/

OS起動と同時に起動 動作に必要なパラメータはuserdataを通じて入手

プロセス起動と監視

Tomcat、Apache、Thin(HostManager用Webサーバ)

の起動

「Bluepill」というアプリでプロセスを監視

プロセスが落ちると、プロセスを再起動

HostManager

HostManager

Page 18: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

Webアプリケーションの生存確認

ELBからの通信を受け取り、Webサーバ内部でWebアプリの生存を確認して返答

HostManager

EC2HostManager

/_hostmanager/healthcheck

指定URLを確認

Page 19: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

WAR入れ替え、Tomcat再起動、設定反映などの処理

各処理の指示が入ったHTTP通信を受け取り、指定の処理を実行

通信はAES-256で暗号化

HostManager

HostManager

/_hostmanager/tasks

暗号化データをPOST

処理を実行

Page 20: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

開発・デプロイ

Page 21: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

開発

AWS Toolkit for Eclipse

http://aws.amazon.com/jp/eclipse/

Eclipseマーケットプレースから「AWS」で検索

Eclipse IDE for Java EE Developers 3.6 or higher

Page 22: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

開発

機能

AWSサービスのエクスプローラー

Webアプリ作成ウィザード

Beanstalkの環境構築・環境設定

Webアプリケーションのデプロイ

Beanstalkのリモートデバッガー

Environmentのイベント・ログビューア

Page 23: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

WARファイルのデプロイ

プロジェクト右クリック>Run As

>Run on Server

Page 24: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

デプロイ先のEnvironmentを選択

Page 25: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

Finishを選択

Page 26: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

Version管理時のラベルを入力

S3にアップロード開始完了後に自動でデプロイ

Page 27: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

イベントログでデプロイ完了を確認

Page 28: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

Deploy a Different Versionを選択

AWS ManagementConsoleの場合

Page 29: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

Versionラベルを入力

WARファイルを選択

Page 30: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

Eventログで確認

Page 31: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

ステージ毎に環境を分けることが可能 本番用、テスト用、開発用

URLスワップ機能とバージョン機能を利用する

デプロイ

Environment Version

WARURL Environment Configuration

EnvironmentURL Environment Configuration

WAR

WAR

WAR

WAREnvironmentURL Environment Configuration

URLを入れ替えること

で、テスト済みの環境をそのまま公開できる

デプロイするWARは自由に選択出来る

Page 32: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

各種設定

Page 33: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

各種設定

オートスケール設定

小/ 大サーバ数

配置AZ

スケール時のトリガー

Environment毎に設定が可能

ロードバランサ

HTTP/HTTPSポート

ヘルスチェック設定

セッションStickey

サーバ設定

インスタンスタイプ

セキュリティグループ

キーペア

監視間隔

AMI

Page 34: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

各種設定(つづき)

サーブレットコンテナ設定

ヒープサイズ

( 小/ 大/permgen)

Tomcat起動引数

リモートデバッグ有無

環境変数

ログ設定

S3へのバックアップ(毎時)

イベント通知

トピック設定

宛先設定

Page 35: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

設定方法

Eclipse,Consoleいずれでも設定可能

DEMO

Page 36: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

他サービスとの連携

Page 37: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

他サービスとの連携

AWSの他のサービスとの連携は可能

Relational Database Service(RDBサービス)• Oracle,MySQL

Simple DB(キーバリューストア)

ElastiCache(memcached) Simple Email Service(メール送信) CloudFront(コンテンツ配信)

Simple Queue Service(キューイング) ・・・

Page 38: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

他サービスとの連携

DBのエンドポイントやSimpleDBのドメインなどの引き渡し

Userdataが使えないため、現状では環境変数が近道

System.getProperty(“AWS_SECRET_KEY")などで取得可能

Page 39: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

さらに密に連携する

AMIのIDを設定できるため、BeanstalkのAMIを元に作り込む

常に使うアプリケーションはインストールしておく

Tomcatの設定やライブラリ配置も必要であれば行う

OS起動時にChef/puppetを起動するようにスクリプトを仕込む

Page 40: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

その他Tips

Page 41: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

その他Tips

SSHでログイン可能 障害時の詳細調査

アプリケーションのインストール

デフォルト構成で使用

パラメータ調整他サービスとの連携

テンプレートカスタマイズSSH接続

手間

柔軟性

Page 42: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

その他Tips

1つのTomcat上の複数WAR管理は不可 手動でのデプロイは可能だが、管理対象外

セッションクラスタリングはデフォルトOFF

サーバのスケールアップ InstanceTypeを変更すると、新しいインスタンスタイプのサーバを起

動後、ELB設定を切り替えて古いサーバをシャットダウンしてくれる

SSLも利用可能 API経由でSSL証明書を登録後、EnvironmentのELB設定を実施

Page 43: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

料金

Elastic Beanstalk自体の利用は\0

Environment 構築に伴って利用したAWSサービスに対して課金

利用サービス 単位 コスト計算 コスト

Amazon EC2t1.micro instance

1 $0.02/hr * 24 hours * 30 days $14.40

Elastic Load Balancer 1 $0.025/hr * 24 hours * 30 days $18.00ELB Data Processing 15GB $0.008/GB * 15GB $0.12Elastic Block Store volume 8GB $0.10/GB * 8GB $0.80S3 Storage for WAR File 1GB $0.14/1GB + $0.01 PUT,GET $0.15Bandwidth In and Out 15GB Inbound is free, 15 GB out *

$0.12$1.80

月額 $35.27

Page 44: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

制約事項

cloud-initが使用不可 CloudFrontとの密接な連携はこれから・・

AMI作り込みか、カスタムスクリプトで

Amazon VPC(Virtual Private Cloud)は未対応

現在米国東部(US-EAST)でのみ利用可能

しばしお待ちを・・

Page 45: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

まとめ

Page 46: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

まとめ

Beanstalkで、容易にJava実行環境の構築が可能

ステージ毎の環境構築が可能

Eclipseを使用して、実装・設定・デプロイがシームレスに

AWSの他サービスとも連携

必要に応じて、パラメータ設定・カスタムAMIの利用が可能

Page 47: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

Elastic Beanstalkで大きな実(アプリケーション)を

育てよう!

Elastic Beanstalkで大きな実(アプリケーション)を

育てよう!

Page 48: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

Q & A

Copyright © 2011 Amazon Web Services

Page 49: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

次回の

ほぼ週刊AWSマイスターシリーズは、

11月30日 17:00~

~ Elastic Map Reduce (EMR) ~

Copyright © 2011 Amazon Web Services

Page 50: AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-

ご参加ありがとうございました

Copyright © 2011 Amazon Web Services