aws elastic beanstalk 詳細 -ほぼ週刊awsマイスターシリーズ第9回-
DESCRIPTION
TRANSCRIPT
AWSマイスターシリーズ~AWS Elastic Beanstalk~
2011年11月22日片山 暁雄( @c9katayama )ソリューションアーキテクト
ほぼ週刊AWSマイスターシリーズへようこそ!~GoToMeetingの使い方~
参加者は、自動的にミュートになっています
質問を投げることができます!
GoToMeetingの仕組みを使って、随時書き込んでください
ただし環境によっては、日本語の直接入力ができないので、
お手数ですが、テキストエディタ等に打ち込んでから、
貼り付けててください
後のQ&Aの時間で、できるだけ回答させて頂きます
書き込んだ質問は、主催者にしか見えません
Twitterのハッシュタグは#jawsugでどうぞ
Copyright © 2011 Amazon Web Services
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/申し込みサイト
2011/11/22 リリース!
IAMを使用して、Elastic Beanstalkのアクセス制御が可能に!
http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/index.html?AWSHowTo.iam.html
AgendaAWS Elastic Beanstalkの概要
しくみ
HostManager開発・デプロイ
各種設定
他サービスとの連携
その他Tipsまとめ
Copyright © 2011 Amazon Web Services
AWS Elastic Beanstalkの概要
AWS Elastic Beanstalkとは
Beanstalk = 豆の木
「アプリケーションが実る幹」のイメージ
Webアプリケーションの実行環境を構築・管理するサービス
現在使用可能な言語:Java(OpenJDK6)
コンテナとして、Tomcat6 および Tomcat7をサポート
AWS Elastic Beanstalkとは
利用出来るAPIの制約・処理時間の制約はない
ServletAPI他、Tomcatサポートの機能はすべて利用可能
ライブラリやフレームワークの制約もない
WARやZIPであればデプロイOK
ロードバランサー・オートスケーリング
ロードバランサーとオートスケーリングが標準装備
詳細な条件設定が可能
実行環境の設定
サーバスペック、VM設定など40項目以上の設定が可能
AWS Elastic Beanstalkとは
Webアプリケーションのバージョン管理
WARやZIPの世代管理が可能
アプリのロールバック・ロールフォワードが容易
複数環境の構築が可能
本番・テストなど目的別に構築可能
開発・管理ツールを提供
AWS Management Console
コマンドラインツール
Eclipseプラグイン
開発・管理ツール
AWS Management Console
AWS Toolkit for Eclipse
しくみ
アプリケーション管理の論理構成
Application
Environment Version
WARURL Environment Configuration
Configuration Template
EnvironmentURL Environment Configuration
WAR
WAR
WAR
WAREnvironmentURL Environment Configuration
用語説明
Application トップレベルの論理単位
Applicationの中に、EnvironmentやVersionが入る
デプロイするアプリケーション(WARファイル)と混同しやすいので注意
Environment ConfigurationTemplateを元に構成される
WARをデプロイする環境
環境毎にURLが付与される
• URLは、XXX.elasticbeanstalk.com 各環境毎にEC2、ELBなどが立ち上がる
ログも環境毎に取得できる(1時間おきにS3へ送信可能)
用語説明
Version Webアプリケーションのバージョン管理
WARファイルの履歴管理が可能
S3上でファイルを保持
Versionで管理したWARファイルを、各Environmentと紐付け
Environment
テクニカルアーキテクチャ
ManagementConsole
S3
CloudWatch
ElasticLoadBalanceing
EC2
HM
EC2
HM
AutoScaling
Security Group
eclipse
SNS
URL
この環境が自動で構成される
DEMO
HostManager
各EC2インスタンス上で動作
Rubyで実装
/opt/elasticbeanstalk/srv/hostmanager/lib/
OS起動と同時に起動 動作に必要なパラメータはuserdataを通じて入手
プロセス起動と監視
Tomcat、Apache、Thin(HostManager用Webサーバ)
の起動
「Bluepill」というアプリでプロセスを監視
プロセスが落ちると、プロセスを再起動
HostManager
HostManager
Webアプリケーションの生存確認
ELBからの通信を受け取り、Webサーバ内部でWebアプリの生存を確認して返答
HostManager
EC2HostManager
/_hostmanager/healthcheck
指定URLを確認
WAR入れ替え、Tomcat再起動、設定反映などの処理
各処理の指示が入ったHTTP通信を受け取り、指定の処理を実行
通信はAES-256で暗号化
HostManager
HostManager
/_hostmanager/tasks
暗号化データをPOST
処理を実行
開発・デプロイ
開発
AWS Toolkit for Eclipse
http://aws.amazon.com/jp/eclipse/
Eclipseマーケットプレースから「AWS」で検索
Eclipse IDE for Java EE Developers 3.6 or higher
開発
機能
AWSサービスのエクスプローラー
Webアプリ作成ウィザード
Beanstalkの環境構築・環境設定
Webアプリケーションのデプロイ
Beanstalkのリモートデバッガー
Environmentのイベント・ログビューア
WARファイルのデプロイ
プロジェクト右クリック>Run As
>Run on Server
デプロイ先のEnvironmentを選択
Finishを選択
Version管理時のラベルを入力
S3にアップロード開始完了後に自動でデプロイ
イベントログでデプロイ完了を確認
Deploy a Different Versionを選択
AWS ManagementConsoleの場合
Versionラベルを入力
WARファイルを選択
Eventログで確認
ステージ毎に環境を分けることが可能 本番用、テスト用、開発用
URLスワップ機能とバージョン機能を利用する
デプロイ
Environment Version
WARURL Environment Configuration
EnvironmentURL Environment Configuration
WAR
WAR
WAR
WAREnvironmentURL Environment Configuration
URLを入れ替えること
で、テスト済みの環境をそのまま公開できる
デプロイするWARは自由に選択出来る
各種設定
各種設定
オートスケール設定
小/ 大サーバ数
配置AZ
スケール時のトリガー
Environment毎に設定が可能
ロードバランサ
HTTP/HTTPSポート
ヘルスチェック設定
セッションStickey
サーバ設定
インスタンスタイプ
セキュリティグループ
キーペア
監視間隔
AMI
各種設定(つづき)
サーブレットコンテナ設定
ヒープサイズ
( 小/ 大/permgen)
Tomcat起動引数
リモートデバッグ有無
環境変数
ログ設定
S3へのバックアップ(毎時)
イベント通知
トピック設定
宛先設定
設定方法
Eclipse,Consoleいずれでも設定可能
DEMO
他サービスとの連携
他サービスとの連携
AWSの他のサービスとの連携は可能
Relational Database Service(RDBサービス)• Oracle,MySQL
Simple DB(キーバリューストア)
ElastiCache(memcached) Simple Email Service(メール送信) CloudFront(コンテンツ配信)
Simple Queue Service(キューイング) ・・・
他サービスとの連携
DBのエンドポイントやSimpleDBのドメインなどの引き渡し
Userdataが使えないため、現状では環境変数が近道
System.getProperty(“AWS_SECRET_KEY")などで取得可能
さらに密に連携する
AMIのIDを設定できるため、BeanstalkのAMIを元に作り込む
常に使うアプリケーションはインストールしておく
Tomcatの設定やライブラリ配置も必要であれば行う
OS起動時にChef/puppetを起動するようにスクリプトを仕込む
その他Tips
その他Tips
SSHでログイン可能 障害時の詳細調査
アプリケーションのインストール
デフォルト構成で使用
パラメータ調整他サービスとの連携
テンプレートカスタマイズSSH接続
手間
柔軟性
その他Tips
1つのTomcat上の複数WAR管理は不可 手動でのデプロイは可能だが、管理対象外
セッションクラスタリングはデフォルトOFF
サーバのスケールアップ InstanceTypeを変更すると、新しいインスタンスタイプのサーバを起
動後、ELB設定を切り替えて古いサーバをシャットダウンしてくれる
SSLも利用可能 API経由でSSL証明書を登録後、EnvironmentのELB設定を実施
料金
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
制約事項
cloud-initが使用不可 CloudFrontとの密接な連携はこれから・・
AMI作り込みか、カスタムスクリプトで
Amazon VPC(Virtual Private Cloud)は未対応
現在米国東部(US-EAST)でのみ利用可能
しばしお待ちを・・
まとめ
まとめ
Beanstalkで、容易にJava実行環境の構築が可能
ステージ毎の環境構築が可能
Eclipseを使用して、実装・設定・デプロイがシームレスに
AWSの他サービスとも連携
必要に応じて、パラメータ設定・カスタムAMIの利用が可能
Elastic Beanstalkで大きな実(アプリケーション)を
育てよう!
Elastic Beanstalkで大きな実(アプリケーション)を
育てよう!
Q & A
Copyright © 2011 Amazon Web Services
次回の
ほぼ週刊AWSマイスターシリーズは、
11月30日 17:00~
~ Elastic Map Reduce (EMR) ~
Copyright © 2011 Amazon Web Services
ご参加ありがとうございました
Copyright © 2011 Amazon Web Services