atn no.1 aws elastic beanstalk で気軽にクラウド化しよう!
TRANSCRIPT
Advanced Tech Night No.01
「クラウドのさきっちょ」
AWS Elastic Beanstalk で気軽にクラウド化しよう!
2011/04/22
Acroquest Technology 株式会社
村田 賢一郎
1
目次
I. はじめに
1. 自己紹介
2. 目的と対象者
II. AWS Elastic Beanstalkとは?
1. AWS Elastic Beanstalk & デモ
2. 特徴
3. サービス構成
4. ソフトウェアスタック
5. Elastic Beanstalkがないと?
6. Amazon Free Tireも使える
7. Amazon Free Tire以外で無料で使えるもの
III.AWS Elastic Beanstalkのデモ(AWS Toolkit for Eclipse
編)Advanced Tech Night
I. はじめに
Advanced Tech Night
2
3
Ⅰ−1.自己紹介
氏名:村田 賢一郎
所属:Acroquest
Technology
twitter:@muraken720
blog:はてな
主食:ラーメン
OSS:S2RMIコミッタ
Advanced Tech Night
主な業務• 特定アプリケーション用
フレームワーク開発
• Webアプリケーション開発
好きな言葉:
なんくるないさー
習いたい物:三線
新しいもの好き
4
Ⅰ−2.目的と対象者
1. 目的
1) 本勉強会は、最近発表されたAWS Elastic
Beanstalkについて、何ができるのか?を具体的に知ることを目的とします。
2) まずは取り敢えず動かしてみて、気軽に入門してしみよう!という趣旨です。
2. 対象者
1) JavaによるWebアプリケーションの開発をしたことがある人
2) Amazon Web Serviceに興味はあるが、これまで実際にはやったことがない人
Advanced Tech Night
II. AWS Elastic Beanstalkとは?
Advanced Tech Night
5
II-1. AWS Elastic Beanstalk
Advanced Tech Night
6
一言で説明すると?
読み方
AWSが提供するJavaによるWebアプリケーション用の
PaaS
「エラスティック ビーンストーク」
II-1. AWS Elastic Beanstalk
Advanced Tech Night
7
いろいろありますが、とにかく動かしてみよう!ということで。。。
AWS Elastic Beanstalk
デモ!
AWS Elastic Beanstalk デモ!
Advanced Tech Night
8
1.• Elastic Beanstalkの利用を申請する(省略)
2.
• Webアプリケーションを開発する(今回は開発後としてCubbyのショーケースwarを利用)
3.
• AWS Management ConsoleからWebアプリケーションをデプロイ
デモ-1. Elastick Beanstalkの利用を申請する
Advanced Tech Night
9
1. 必要なことはAmazon Web Sericeのアカウントを申請すること。
http://www.slideshare.net/kentamagawa/3aws
AWSのアカウント開設に関
しては、エバンジェリストの玉川さんの先のスライドが参考になります!
デモ-2. Webアプリケーションを開発する
Advanced Tech Night
10
1. 既存のWebアプリケーションのwarファイルを準備!
今回はCubbyのショーケースwarを利用させて頂きます!
デモ-3. AWS Management Consoleからデプロイ
Advanced Tech Night
11
1. AWS Management Consoleにログインする。2. Elastic Beanstalkのタブから「Upload your own
application」を選択。
既にElastic Beanstalkアプリケーションが1つでも作ってあれば、右上の「Create New Application」ボタンから作成します。
待つことおよそ7分?(私の環境の場合)でアプリケーションがデプロイ完了。世界に向け公開!
II-2. 特徴
Advanced Tech Night
12
AWS Elastic Beastalkの特徴
No. 特徴
1 Amazonクラウドにアプリケーションを素早くデプロイし、管理することが可能
2 自動的なスケーリング
3 ロードバランシング
4 アプリケーションのヘルスモニタリング
5 アプリケーションのバージョン管理
AWS Management Consoleから設定項目を見てみよう!
II-3. サービス構成
Advanced Tech Night
13
AWS Elastic Beastalkのサービス構成
No. サービス 説明
1 Amazon EC2 仮想サーバ
2 Amazon Elastic Block
Storage
ディスクボリューム
3 Elastic Load Balancing ロードバランスサービス
4 Auto-Scaling 自動スケーリングサービス
5 Amazon S3 ストレージサービス
6 Amazon SNS 通知サービス
II-4. ソフトウェアスタック
Advanced Tech Night
14
AWS Elastic Beastalkのソフトウェアスタック
Open JDK 6
Tomcat 6
Amazon LinuxのAMIはCentOS
ベース
II-5. Elastic Beanstalkがないと?
Advanced Tech Night
15
EC2を設定し
サーバを立ち上げる
Javaのセットアップ
Tomcatのセットアップ
Apacheのセットアップ
ロードバランス用にEC2インス
タンスをさらに設定
Elasic Load
Balancingの設定
自動スケーリング用にEC2イン
スタンスをさらに設定
Auto Scalingの設定
S3にアプリケー
ションやログを保存するよう実装
SNSを使って通
知する仕組みを実装
全て自分でやらなければいけなかった!
・・・
II-6. Amazon Free Tierも使える
Advanced Tech Night
16
No. サービス 補足
1 Amazon EC2 Linux マイクロ インスタンス利用 (613 MB
メモリと、32 ビットと 64 ビットプラットフォームサポート) 750 時間
2 Elastic Load Balancing 750 時間に 15 GB データ処理をプラス
3 Amazon Elastic Block Storage 10 GB に加え、入出力 100万回、1GB のスナップショット ストレージ、1万スナップショット GET リクエスト、1,000 スナップショット PUT リクエスト
4 Amazon S3 5GB のストレージ、20,000 Get リクエスト、2,000 Put リクエスト
5 インターネットデータ転送 30
GB
データ受信 15 GB とデータ送信 15 GB、Amazon CloudFront を除くすべてのサービス
AWS Free Tier(無料利用枠)の 1ヵ月分
24時間×31日=744時間 750時間は合計時間なので、2インスタンスを常に動作させれば375時間となる
II-7. Amazon Free Tier以外で無料で使えるもの
Advanced Tech Night
17
No. サービス 補足
1 Amazon SimpleDB 25マシン時間と 1GB ストレージ
2 Amazon SQS(Simple Queue
Service)
リクエスト 10万件
3 Amazon SNS(Simple Notification
Service
リクエスト 10万件、HTTP 通知 10万件、Eメール通知 1,000 件
4 Amazon Cloudwatch 10アラーム
AWS Free Tier以外で無料の1ヵ月分
Amazon Free Tierは1年間の有効期限があるが、上記には有効期限がない。
III. AWS Elastic Beanstalkのデモ
(AWS Toolkit for Eclipse 編)
Advanced Tech Night
18
III-1. AWS Toolkit for Eclipse を使う
Advanced Tech Night
19
AWS Toolkit for Eclipse を使って、AWS Elastic
Beanstalkアプリケーションを簡単に作ろう!
1.
• AWS Toolkit for Eclipse をインストール(http://aws.amazon.com/eclipse/)
2.• AWS Toolkit for Eclipse の設定を行う
3.
• AWS Toolkit for Eclipse からAWS Java Web Projectを作成する
4.• AWS Elastic Beanstalkのtomcat上にデプロイする
III-2. AWS Toolkit for Eclipse の設定
Advanced Tech Night
20
1. Eclipseのプラグインインストールを行う。http://aws.amazon.com/eclipse/
2. AWS Toolkit for Eclipse の設定
AWSのアカウントのAccess
Key、Secret Access Keyな
どを自分の環境に合わせて設定します。
III-3. AWS Java Web Projectを作成する
Advanced Tech Night
21
1. AWS Toolkit for Eclipse のアイコンから「New
AWS Java Web Project」を選択する。2. プロジェクト名を入力する。
ここでは、Basic Java Web
Applicationを選択する。
III-3. AWS Java Web Projectをデプロイする
Advanced Tech Night
22
1. アプリケーションをElastic Beanstalkにデプロイする。
III-3. AWS Java Web Projectをデプロイする
Advanced Tech Night
23
Application名、Environment名を設定。ApplicationのURLを設定できないことに注意。
health check URL、SNS通知用メールアドレスなどを設定。
III-3. AWS Java Web Projectをデプロイする
Advanced Tech Night
24
Version Labelが自動で付与されるので、そのまま利用する。
III-4. Basic Applicationの概要
Advanced Tech Night
25
1. EC2/S3/SimpleDB上のオブジェクトを表示
III-5. AWS Java Web Project作成時のポイント
1. Elastic Beanstalkのヘルスチェックに応答する
① デフォルト設定ではルートパスに対するHEAD
リクエストによるチェックとなっているため、本ヘルスチェックに正常応答を返す必要がある。
Advanced Tech Night
26
• Basic Java Web Applicationのindex.jspを参考に。
• アプリケーションの設定画面からヘルスチェック用のパスを変更することも可能。
III-5. AWS Java Web Project作成時のポイント2. アプリケーションのURLを任意に選択する
① AWS Toolkit for Eclipseからだと、URLは自動
的に決まってしまう。(例http://ATNDemoBasic-
tdxwzpkmcw.elasticbeanstalk.com)
② AWS Management ConsoleからのApplication
/Environment作成ではURLを確認しながら選択できる。
Advanced Tech Night
27
• 最初にお試し版をAWS Toolkit for Eclipseから作成。• AWS Management Consoleの「Lanch New
Environment」から正式用の環境を作り、URLを指定。
• 先に登録済みのバーション(S3内に保存)を選択できる。
III-5. AWS Java Web Project作成時のポイント
Advanced Tech Night
28
III-5. AWS Java Web Project作成時のポイント
3. ローカル環境とElastick Beanstalkの環境でのURLの違いに注意する。
① ローカルのTomcatで動作させている場合は「http://localhost:8080/appname/xxx」である。
② Elastic Beanstalk上にデプロイした場合は「http://appname.elastickbeanstalk.com/xxx」となる。
Advanced Tech Night
29
• Javascriptからであれば、window.location.hrefなどを使いましょう!
III-6. Travel Log Applicationもあるよ!
1. EC2上で動作
2. オリジナルとサムネイル化された画像をAmazon S3上に保存
3. 各画像の情報とログをAmazon SimpleDBに保存
4. Simple Notification Service(SNS)を利用して通知メールを送る
5. 内部的にはSpringMVCを利用
Advanced Tech Night
30
一見の価値あり!
まとめ
Advanced Tech Night
31
AWS Elastic Beanstalkを使えば、Java のWebアプリの開発経験があれば、
直ぐにでもスケールするサービスを作成することができます。
あとはサービスを作るアイデアのみ。まずは気軽にクラウド化を試してみよう!
あとは東京リージョン対応を待つのみw