32
Advanced Tech Night No.01 「クラウドのさきっちょ」 AWS Elastic Beanstalk で気軽にクラウド化しよ う! 2011/04/22 Acroquest Technology 株式会社 村田 賢一郎

ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

Embed Size (px)

Citation preview

Page 1: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

Advanced Tech Night No.01

「クラウドのさきっちょ」

AWS Elastic Beanstalk で気軽にクラウド化しよう!

2011/04/22

Acroquest Technology 株式会社

村田 賢一郎

Page 2: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

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

Page 3: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

I. はじめに

Advanced Tech Night

2

Page 4: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

3

Ⅰ−1.自己紹介

氏名:村田 賢一郎

所属:Acroquest

Technology

twitter:@muraken720

blog:はてな

主食:ラーメン

OSS:S2RMIコミッタ

Advanced Tech Night

主な業務• 特定アプリケーション用

フレームワーク開発

• Webアプリケーション開発

好きな言葉:

なんくるないさー

習いたい物:三線

新しいもの好き

Page 5: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

4

Ⅰ−2.目的と対象者

1. 目的

1) 本勉強会は、最近発表されたAWS Elastic

Beanstalkについて、何ができるのか?を具体的に知ることを目的とします。

2) まずは取り敢えず動かしてみて、気軽に入門してしみよう!という趣旨です。

2. 対象者

1) JavaによるWebアプリケーションの開発をしたことがある人

2) Amazon Web Serviceに興味はあるが、これまで実際にはやったことがない人

Advanced Tech Night

Page 6: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

II. AWS Elastic Beanstalkとは?

Advanced Tech Night

5

Page 7: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

II-1. AWS Elastic Beanstalk

Advanced Tech Night

6

一言で説明すると?

読み方

AWSが提供するJavaによるWebアプリケーション用の

PaaS

「エラスティック ビーンストーク」

Page 8: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

II-1. AWS Elastic Beanstalk

Advanced Tech Night

7

いろいろありますが、とにかく動かしてみよう!ということで。。。

AWS Elastic Beanstalk

デモ!

Page 9: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

AWS Elastic Beanstalk デモ!

Advanced Tech Night

8

1.• Elastic Beanstalkの利用を申請する(省略)

2.

• Webアプリケーションを開発する(今回は開発後としてCubbyのショーケースwarを利用)

3.

• AWS Management ConsoleからWebアプリケーションをデプロイ

Page 10: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

デモ-1. Elastick Beanstalkの利用を申請する

Advanced Tech Night

9

1. 必要なことはAmazon Web Sericeのアカウントを申請すること。

http://www.slideshare.net/kentamagawa/3aws

AWSのアカウント開設に関

しては、エバンジェリストの玉川さんの先のスライドが参考になります!

Page 11: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

デモ-2. Webアプリケーションを開発する

Advanced Tech Night

10

1. 既存のWebアプリケーションのwarファイルを準備!

今回はCubbyのショーケースwarを利用させて頂きます!

Page 12: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

デモ-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分?(私の環境の場合)でアプリケーションがデプロイ完了。世界に向け公開!

Page 13: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

II-2. 特徴

Advanced Tech Night

12

AWS Elastic Beastalkの特徴

No. 特徴

1 Amazonクラウドにアプリケーションを素早くデプロイし、管理することが可能

2 自動的なスケーリング

3 ロードバランシング

4 アプリケーションのヘルスモニタリング

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

AWS Management Consoleから設定項目を見てみよう!

Page 14: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

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 通知サービス

Page 15: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

II-4. ソフトウェアスタック

Advanced Tech Night

14

AWS Elastic Beastalkのソフトウェアスタック

Open JDK 6

Tomcat 6

Amazon LinuxのAMIはCentOS

ベース

Page 16: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

II-5. Elastic Beanstalkがないと?

Advanced Tech Night

15

EC2を設定し

サーバを立ち上げる

Javaのセットアップ

Tomcatのセットアップ

Apacheのセットアップ

ロードバランス用にEC2インス

タンスをさらに設定

Elasic Load

Balancingの設定

自動スケーリング用にEC2イン

スタンスをさらに設定

Auto Scalingの設定

S3にアプリケー

ションやログを保存するよう実装

SNSを使って通

知する仕組みを実装

全て自分でやらなければいけなかった!

・・・

Page 17: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

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時間となる

Page 18: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

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年間の有効期限があるが、上記には有効期限がない。

Page 19: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

III. AWS Elastic Beanstalkのデモ

(AWS Toolkit for Eclipse 編)

Advanced Tech Night

18

Page 20: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

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上にデプロイする

Page 21: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

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な

どを自分の環境に合わせて設定します。

Page 22: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

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を選択する。

Page 23: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

III-3. AWS Java Web Projectをデプロイする

Advanced Tech Night

22

1. アプリケーションをElastic Beanstalkにデプロイする。

Page 24: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

III-3. AWS Java Web Projectをデプロイする

Advanced Tech Night

23

Application名、Environment名を設定。ApplicationのURLを設定できないことに注意。

health check URL、SNS通知用メールアドレスなどを設定。

Page 25: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

III-3. AWS Java Web Projectをデプロイする

Advanced Tech Night

24

Version Labelが自動で付与されるので、そのまま利用する。

Page 26: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

III-4. Basic Applicationの概要

Advanced Tech Night

25

1. EC2/S3/SimpleDB上のオブジェクトを表示

Page 27: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

III-5. AWS Java Web Project作成時のポイント

1. Elastic Beanstalkのヘルスチェックに応答する

① デフォルト設定ではルートパスに対するHEAD

リクエストによるチェックとなっているため、本ヘルスチェックに正常応答を返す必要がある。

Advanced Tech Night

26

• Basic Java Web Applicationのindex.jspを参考に。

• アプリケーションの設定画面からヘルスチェック用のパスを変更することも可能。

Page 28: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

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内に保存)を選択できる。

Page 29: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

III-5. AWS Java Web Project作成時のポイント

Advanced Tech Night

28

Page 30: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

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などを使いましょう!

Page 31: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

III-6. Travel Log Applicationもあるよ!

1. EC2上で動作

2. オリジナルとサムネイル化された画像をAmazon S3上に保存

3. 各画像の情報とログをAmazon SimpleDBに保存

4. Simple Notification Service(SNS)を利用して通知メールを送る

5. 内部的にはSpringMVCを利用

Advanced Tech Night

30

一見の価値あり!

Page 32: ATN No.1 AWS Elastic Beanstalk で気軽にクラウド化しよう!

まとめ

Advanced Tech Night

31

AWS Elastic Beanstalkを使えば、Java のWebアプリの開発経験があれば、

直ぐにでもスケールするサービスを作成することができます。

あとはサービスを作るアイデアのみ。まずは気軽にクラウド化を試してみよう!

あとは東京リージョン対応を待つのみw