業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

47
業務アプリをクラウド化する 5 つのステップ Amazon Web Services 活用の勘所~ 玉川 憲(Ken Tamagawaエバンジェリスト、技術推進部長 Amazon Data Services Japan 株式会社 Twitter: KenTamagawa

description

JJUG Cross Community Conference(Java)での使用資料。半分以上の時間を後述のデモに使用しましたが、参考までに使用もUploadしておきます。デモ内容は、典型的なWebアプリケーション(LAMPスタック)を例にとって、スケールアウト可能なクラウド・アーキテクチャに変更していく例です。フロントエンドにロードバランサ(Amazon ELB)を備え、その後ろに仮想サーバー(Amazon EC2)により並列化されたアプリケーションサーバー、後段にはスケーリング・データベース・クラスター(Amazon RDS)を備えたクラウドアーキテクチャの魅力を!

Transcript of 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

Page 1: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

業務アプリをクラウド化する5つのステップ~Amazon Web Services活用の勘所~

玉川 憲(Ken Tamagawa)

エバンジェリスト、技術推進部長

Amazon Data Services Japan 株式会社

Twitter: KenTamagawa

Page 2: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

•第一部–クラウドコンピューティングとは

–AWSの特徴・メリット

•第二部

–既存のWebアプリをAmazonクラウド化してみよう!

Agenda

Page 3: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

AMAZONのビジネス

一般消費者様向けサービス

セラー様向けサービス

開発者様&IT プロ様向けサービス

Eコマース(Amazon.co.jp)

マーケットプレイス

物流サービス提供(Amazon Services)

クラウド

コンピューティング(Amazon Web Services)

Page 4: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

AMAZON WEB SERVICES(AWS)のミッション

ITプロフェッショナル/開発者がスケーラブルで洗練されたアプリケーションを作ることを可能にするためのウェブサービス(クラウド)を提供する

Page 5: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

AMAZON WEB SERVICES(AWS)のミッション

ITプロフェッショナル/開発者がスケーラブルで洗練されたアプリケーションを作ることを可能にするためのウェブサービス(クラウド)を提供する ロゴのブロックは、

まさにクラウドサービスを組み立て使って下さい、ということ

Page 6: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

2001 2002 2003 2004 2005 2006 2007 2008

AWS Amazon.com

AWS のデータセンター利用規模がAmazon.com に並ぶ

現在: AWS の利用規模がAmazon.comよりボリュームも伸び率も大きい

ネットワーク帯域の利用量:

急成長を続けるAMAZONのクラウドサービス

数十万の顧客がAWSを使用してシステム構築

Page 7: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

AWSの簡単なイメージ

データセンター

IT担当

仮想サーバ(Amazon EC2)

Windows

( スタンダード)CentOS

(ハイCPU)

Oracle DB(Linux)

(ハイメモリ)

AWS

Management

Console

(コンソール)

AMI

から AMI

保存

LinuxからWindows、Oracle DBまで、様々な仮想マシンイメージ( AMI)をAWS、サード

パーティ、コミュニティが提供。個人用のAMI

を作成して限定公開も可能

時間単位で仮想サーバをレンタル。課金も時間単位。好きなCPU/メモリ/ストレージの

スペックで立ち上げる。数分間で仮想サーバは使用可能

に。AWSのクラウドは、ア

カウントを作成すると(アマゾンのアカウント作成とほぼ同じ)、

その場ですぐに使える。書面の契約など

必要なし。

Page 8: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

AWSの簡単なイメージ

データセンター

IT担当

仮想サーバ(Amazon EC2)

Windows

( スタンダード)CentOS

(ハイCPU)

Oracle DB(Linux)

(ハイメモリ)

AWS

Management

Console

コマンドライン& API

AMI

から AMI

保存

このプログラマブルなAPIを持つこと

によりクラウドインフラの管理を自動化できる。コマンドラインツール、

APIが充実。Java、.NET、PHP、Python、RubyなどのSDKが存在。

ここの間に、人力が全く入っておらず、完全自動化されている、というのもAWSのポイ

ント。ここに人力が入りると、コストを低くできない。また、数分で立ち上げるということ

は不可能。

Page 9: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

AWSの簡単なイメージ

データセンター

IT担当

仮想サーバ(Amazon EC2)

Windows

( スタンダード)CentOS

(ハイCPU)

Oracle DB(Linux)

(ハイメモリ)

AWS

Management

Console

コマンドライン& API

SSH公開鍵認証

AMI

から

仮想デスクトップ

ターミナル

AMI

保存仮想サーバーの操作は、従来のデータセンターのサーバと変わらない。ターミナル、仮想デスクトップなど。

Page 10: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

AWSの簡単なイメージ

データセンター

IT担当

仮想サーバ(Amazon EC2)

Windows

( スタンダード)CentOS

(ハイCPU)

Oracle DB(Linux)

(ハイメモリ)

AWS

Management

Console

コマンドライン& API

SSH公開鍵認証

仮想外部ディスク(Amazon EBS)

AMI

から

仮想デスクトップ

ターミナル

AMI

保存クラウド上の外付けハードディスク。EC2にマウントし

てファイルシステムとして使える。通常のハードディスクよりも故障率が低く設

計されている。

Page 11: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

AWSの簡単なイメージ

データセンター

IT担当

仮想サーバ(Amazon EC2)

Windows

( スタンダード)CentOS

(ハイCPU)

Oracle DB(Linux)

(ハイメモリ)

AWS

Management

Console

コマンドライン& API

SSH公開鍵認証

仮想外部ディスク(Amazon EBS)仮想ストレージ

(Amazon S3)

AMI

から

仮想デスクトップ

ターミナル

AMI

保存

その他サービス

S3は、容量無制限の高機能ストレージ。Web

ベース、もしくは、簡単なAPIでUpload/Downloadでき、URL付でそのまま公開/限定公開可能。

データの耐久性は99.999999999%(11桁)を

誇る。

仮想マシンイメージ(Amazon Machine Image)も、じつはS3を使って保存

されている。

EBSも、スナップショット機

能として、任意のタイミングで、S3にバックアップをとっ

ておける。

Page 12: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

AWSの簡単なイメージ

データセンター

IT担当

仮想サーバ(Amazon EC2)

Windows

( スタンダード)CentOS

(ハイCPU)

Oracle DB(Linux)

(ハイメモリ)

AWS

Management

Console

コマンドライン& API

SSH公開鍵認証

仮想外部ディスク(Amazon EBS)仮想ストレージ

(Amazon S3)

AMI

から

仮想デスクトップ

ターミナル

AMI

保存

その他サービス

その他、DB、キューイング

のほか、様々なサービスがクラウド上に用意されて

いる。

Page 13: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

「1円クラウド」から「スパコン」クラスまで1時間単位で仮想サーバを調達可能

マイクロ

スタンダード

ハイメモリ

0.2-2ECU

クラスタコンピュート

1-8 ECU

6.5-26 ECU

33.5 ECU

1.6円/時~

7円/時~

注:US East / Linux/Unix料金 / 転送量など別料金値段は、$1を、82円換算で計算(2010年10月15日時点)

41円/時~

131円/時

ハイCPU 5-20 ECU 14円/時~

Page 14: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

「1円クラウド」から「スパコン」クラスまで1時間単位で仮想サーバを調達可能

マイクロ

スタンダード

ハイメモリ

0.2-2ECU

クラスタコンピュート

1-8 ECU

6.5-26 ECU

33.5 ECU

1.6円/時~

7円/時~

注:US East / Linux/Unix料金 / 転送量など別料金値段は、$1を、82円換算で計算(2010年10月15日時点)

41円/時~

131円/時

ハイCPU 5-20 ECU 14円/時~

まさにスーパーコンピュータ。並列に800台走らせると世界140位台のスパコンに匹敵

非常に大人気のマイクロ。Webサーバの大部分が普段はCPU使用率

が低いことを有効活用してより低価格のインスタンスを実現

Page 15: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

EC2/S3だけではない、AWSのサービス

【仮想サーバ】

Amazon EC2

【キューサービス】

Amazon SQS

【RDB】Amazon RDS

【NoSQL】Amazon SimpleDB

【プッシュサービス】

Amazon SNS

【ストレージ】

Amazon S3

【コンテンツ配信】

CloudFront

データセンター

【分散処理】

Elastic MapReduce

【ロードバランサー】

Amazon Elastic Load Balancing

ミドルウェア

サービス

仮想サーバ

【仮想ディスク】

Amazon Elastic Block store

エッジロケーション

Page 16: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

EC2/S3だけではない、AWSのサービス

【仮想サーバ】

Amazon EC2

【キューサービス】

Amazon SQS

【RDB】Amazon RDS

【NoSQL】Amazon SimpleDB

【プッシュサービス】

Amazon SNS

【ストレージ】

Amazon S3

【コンテンツ配信】

CloudFront

データセンター

【分散処理】

Elastic MapReduce

【ロードバランサー】

Amazon Elastic Load Balancing

ミドルウェア

サービス

仮想サーバ

【仮想ディスク】

Amazon Elastic Block store

エッジロケーション

EC2/S3とともに非常に著名なRDS。AWSが、

バージョンアップ、冗長構成、バックアップ、など面倒みてくれる

今注目されているHadoopをAWSが実装し

たクラウドサービス。注目度高い。

S3に記録された画像や

動画をコンテンツ配信するサービス。東京も含んだ世界16か所にエッジロケーションあり。

Page 17: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

「本物」のクラウドが持つ5つの特徴

1. 初期費用、設備投資無し

2. 従量課金、使った分だけ支払う

3. スケールアウト/インが自在

4. ビジネススピードを早める

5. 本業に専念できる

Page 18: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

ビデオアプリケーション & AMAZON EC2E

C2インスタンス

(サーバ

)の数

4/12/2008

Facebook上での公開

トラフィックの急増にも、Amazon EC2で対応(ピーク時は5000サーバー)

4/14/2008 4/16/2008 4/18/2008 4/20/2008

Page 19: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

ビデオアプリケーション & AMAZON EC2E

C2インスタンス

(サーバ

)の数

4/12/2008

Facebook上での公開

トラフィックの急増にも、Amazon EC2で対応(ピーク時は5000サーバー)

4/14/2008 4/16/2008 4/18/2008 4/20/2008

2日間ほどで、ものすご

いユーザー数を集めた。通常の物理サーバーではこの短期間に調達す

るのは不可能

Page 20: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

金融サービス & AMAZON EC2E

C2インスタンス

(サーバ

)の数

週末は300サーバー

金曜4/24/2009

日曜4/26/2009

火曜4/28/2009

水曜4/22/2009

3000--

300 --

3,000サーバを利用

Page 21: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

金融サービス & AMAZON EC2E

C2インスタンス

(サーバ

)の数

週末は300サーバー

金曜4/24/2009

日曜4/26/2009

火曜4/28/2009

水曜4/22/2009

3000--

300 --

3,000サーバを利用

夜に大量のデータ処理をこなすために、3000台のサーバをフ

ル活用。ビジネスのボトルネックを解消している。処理が終わればすぐにサーバを落とすので、料金もかからない。

Page 22: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

注意!!

• クラウドを使いこなしている企業は、まだクラウドに慣れていない企業に対して、圧倒的な競争力を持つ

• 企業は、今こそ、クラウドを利用する必要があります。

Page 23: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

エンタープライズからエンターテイメントまで幅広い利用

Page 26: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

日本でのAWS利用事例

ハイブリッドクラウド環境で利用。3年間で約5,000万円相当のコスト削減

家電向けファームウェア配信

パナソニックのワールドワイドキャンペーン

携帯電話でのツイッターサービス。会員:50万人以上。1,000万PV/日

リプレックスが日本郵便と連携した年賀状・かもめーるの作成・郵送サービス

Hadoopによる大量データ分散処理。7,000時間の処理を30時間に短縮

Page 27: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

技術者視点でみたAWS

• 既存の知識、技術をそのまま使える

• 試したい技術、アイデア、システム構成をすぐに試せる

• 個人レベルでも、サーバからロードバランサー、大規模ストレージまですぐに調達可能

• APIでクラウドを自分好みに「プログラム」可能

Page 28: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

•第一部–クラウドコンピューティングとは

–AWSの特徴・メリット

•第二部

–既存のWebアプリをAmazonクラウド化してみよう!

Agenda

Page 29: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

業務アプリをクラウド化する5ステップ

アセスメント計画立案

設計・開発

導入運用

効果測定

1.段階的にクラウド化する。一度に全て載せようとしない。後述のデモを参考

2.導入、運用は楽になる。設計はクラウド特有の考慮要

3.トライ&エラーのスパンが速くなる

Page 30: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

クラウド特有の設計事項

• 物理的なネットワークアプライアンスが無い

– ソフトウェアでのソリューションに

• ファイアウォールがすべてのホストに

– 必要なポートのみを明確にあける

• 複数のデータセンターが利用可能に

– 求められる信頼性に応じた冗長構成を設計する

• ホストを動的なもの(ストレージ、IP)と捉える

– 逆に、スケーラブルで、対障害性の高いシステムに

Page 31: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

本日のデモンストレーション既存Webアプリケーションを、Amazonクラウド化してみよう!

注)クラウド化する際の選択肢は様々です。今回のデモでは、上記のステップをとっていますが、システムの性質により最適なステップをお選びください

1. 既存のWebアプリケーションを分析し、クラウド化のアセスメントを行う

2. Appサーバ/DBサーバを、EC2インスタンス上で走らせる

3. Amazonクラウド上でバックアップの仕組みを整える

4. DBサーバー(MySQL)を、Amazon RDSに置き換える

5. Amazon ELB(ロードバランサ)を加え、EC2インスタンスをスケールアウト可能に!

Page 32: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

3分間クッキング ?!

EC2インスタンス

EBS

チケット管理アプリ

MySQL

物理サーバー

チケット管理アプリ

MySQL

EC2インスタンス

RDSRDSRDS(リレーショナルDB)

ELB(ロードバランサー)

チケット管理アプリ

EC2インスタンス

チケット管理アプリ

既存Webアプリ(物理サーバ)

クラウド移行 スケールアウト①

Page 33: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

既存のWebアプリケーションを分析し、クラウド化のアセスメントを行う

1. 既存アプリケーションの分析

2. どの部分をクラウドに置き換えるか検討

3. ビジネス分析(リスク分析、コスト分析)などを行う

4. クラウドインテグレーションの計画を立てる(短期、長期)

物理サーバー

チケット管理アプリ

MySQL

Page 34: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

Appサーバ/DBサーバを、単一のEC2インスタンス(Linuxサーバ)で走らせる

1. Linux AMIから、EC2インスタンスを立ち上げる

2. EBSボリュームをセットアップする

3. MySQLをEBSボリュームにインストール

4. 障害チケット管理アプリケーションをインストール

EC2インスタンス

EBS

チケット管理アプリ

MySQL

Page 35: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

Amazonクラウド上でバックアップの仕組みを整える

1. EC2インスタンスから、「カスタムAMI」を作成してS3に保存

2. EBSボリュームのスナップショットをS3に保存

3. スナップショットから、EBSボリュームへリストアのテスト

4. カスタムAMIとEBSのスナップ

ショットから新規インスタンスを立ち上げてテスト

EC2インスタンス

EBS

チケット管理アプリ

MySQL

S3に保存すると、データの耐久性は99.999999999%に設計されているの

で、非常に耐久性が高い

Page 36: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

EC2インスタンス

DBサーバー(MySQL)を、Amazon RDSに置き換える

1. Single-AZのRDSを立ち上げる

2. 既存DBからデータをエクスポートする

3. データをRDSにインポートする

4. チケット管理アプリのコネクションを、RDSを使用するように書き換える

5. MySQLの入ったEBSボリュームを廃棄する

6. RDSのインスタンスサイズを変更

7. RDSをMulti-AZに変更

チケット管理アプリ

MySQL

XXX.sql

RDSRDSRDS(Multi-AZ)

EBS

Page 37: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

EC2インスタンス

DBサーバー(MySQL)を、Amazon RDSに置き換える

1. Single-AZのRDSを立ち上げる

2. 既存DBからデータをエクスポートする

3. データをRDSにインポートする

4. チケット管理アプリのコネクションを、RDSを使用するように書き換える

5. MySQLの入ったEBSボリュームを廃棄する

6. RDSのインスタンスサイズを変更

7. RDSをMulti-AZに変更

チケット管理アプリ

MySQL

XXX.sql

RDSRDSRDS(Multi-AZ)

EBSRDSは後から、CPU/メモリのスペックを

変えたり、ストレージを拡張したりできる。また、チェックボックス一つで、

Master/Slaveの冗長構成を公正することができ、その動きもAWSが全て代わり

に面倒みてくれる

Page 38: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

Amazon ELB(ロードバランサ)を加え、EC2インスタンスをスケールアウト可能に!

1. EC2インスタンスから、カスタムAMIを作り登録する(スケールアウト可能なAMIを)

2. カスタムAMIからEC2インスタンス作成してテスト

3. ELBを作成して、EC2インスタンスを紐付ける

EC2インスタンス

RDSRDSRDS

ELB(ロードバランサー)

チケット管理アプリ

EC2インスタンス

チケット管理アプリ

S3

AMI

EC2インスタンス

チケット管理アプリ

EC2インスタンス

チケット管理アプリ

Page 39: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

3分間クッキング?!

EC2インスタンス

EBS

チケット管理アプリ

MySQL

物理サーバー

チケット管理アプリ

MySQL

EC2インスタンス

RDSRDSRDS(リレーショナルDB)

ELB(ロードバランサー)

チケット管理アプリ

EC2インスタンス

チケット管理アプリ

既存Webアプリ(物理サーバ)

クラウド移行 スケールアウト①

Page 40: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

本日の3分間クッキング

EC2インスタンス

EBS

チケット管理アプリ

MySQL

物理サーバー

チケット管理アプリ

MySQL

EC2インスタンス

RDSRDSRDS(リレーショナルDB)

ELB(ロードバランサー)

チケット管理アプリ

EC2インスタンス

チケット管理アプリ

既存Webアプリ(物理サーバ)

クラウド移行 スケールアウト①

さらに!RDSのリードレプリカを作成し、DBレイヤもスケー

ルアウトをサポートできるように。

さらに!ELBにSSLの処理も任せて、証明書の発行/ハンドリ

ングも楽になる!

さらに!ELBにAuto Scalingのトリガーを作成して、WebレイヤのEC2の条件(CPU負荷など)に応

じて、自動スケールアウト、スケールインを実装

Page 41: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

まとめ

• AWSはビジネスに効きます

– キャッシュフロー経営、従量課金、ピーク対応、ビジネススピード向上、コアリソースの集中化

• クラウドを採用している新興勢力が競争力を得はじめている

– 開発者にとっては、AWSは今後の必須スキル

• クラウド化は段階的に

– クラウド特有の設計事項に考慮する

• 既存Webアプリのクラウド化は難しくない

– サーバー周りの重要だが大変な作業をAWSに任せられる

– スケールアウト可能なアプリを比較的簡単に入手可能

Page 42: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

AWS日本市場への注力

• アジアパシフィック地域へのデータセンター増強

– APACに2か所(1つはシンガポールで開設済)

• AWSビジネスをドライブするための日本法人の設立

– Amazon Data Services Japan株式会社

• 公認デベロッパーコミュニティ設立

– JAWS-UG

• 日本でのソリューションプロバイダーの拡充

– 2010年10月1日現在:11社

Page 43: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

おまけ:公式デベロッパーコミュニティ有ります!

公式サイト: http://jaws-ug.jp/

ツイッターハッシュタグ #jawsug

Page 44: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

勉強会もやっています!

次回は10月28日予定!

Page 45: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

わからない事があれば・・・

日本語でフォーラムに投稿!

Page 46: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

続きはAWSブログで・・・http://aws.typepad.com/aws_japan/

Page 47: 業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~

Are You Ready?