72
開開開 開開開開開開 開開 開 1 AmazonEC2 開 Web 開開開開開開開開開開

AmazonEC2 で Web アプリを動かす勉強会

  • Upload
    jonah

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

AmazonEC2 で Web アプリを動かす勉強会. 開発部 品質グループ 木崎 悟. アジェンダ. クラウド・コンピューティング Amazon Web Services(AWS) Amazon EC2/S3/EBS Web アプリ構築. クラウド・コンピューティング. クラウドとは. クラウド = 雲. 雲からサービスが降ってくる. 利用者. 雲の中身. 雲の中 = ハードウェアやソフトウェアの実体. クラウド・アプリケーション層. クラウド・サービス層. クラウド基盤層. クラウドのサービス. SaaS = クラウド・アプリケーション層 - PowerPoint PPT Presentation

Citation preview

Page 1: AmazonEC2 で Web アプリを動かす勉強会

開発部 品質グループ木崎 悟

1

AmazonEC2 で Web アプリを動かす勉強会

Page 2: AmazonEC2 で Web アプリを動かす勉強会

アジェンダ

2

クラウド・コンピューティングAmazon Web Services(AWS)Amazon EC2/S3/EBSWeb アプリ構築

Page 3: AmazonEC2 で Web アプリを動かす勉強会

3

クラウド・コンピューティング

Page 4: AmazonEC2 で Web アプリを動かす勉強会

クラウドとは

4

クラウド = 雲

利用者

雲からサービスが降ってくる

Page 5: AmazonEC2 で Web アプリを動かす勉強会

雲の中身

5

雲の中 = ハードウェアやソフトウェアの実体

クラウド・アプリケーション層

クラウド・サービス層

クラウド基盤層

Page 6: AmazonEC2 で Web アプリを動かす勉強会

クラウドのサービス

6

SaaS = クラウド・アプリケーション層PaaS = クラウド・サービス層HaaS/IaaS/DaaS = クラウド基盤層

Google

Amazon

Microsoft

Sales Force

Page 7: AmazonEC2 で Web アプリを動かす勉強会

SaaS のサービス例

7

Gmail(https://mail.google.com/) - Google が提供しているメールサービス

Google ドキュメント - Google が提供しているオフィスソフトSalesforceCRM  - Salesforce.com が提供している顧客管理システムのサービス

Page 8: AmazonEC2 で Web アプリを動かす勉強会

PaaS のサービス例

8

Google App Engine - Google が提供しているプラットフォームサービス

Force.com  - Salesforce.com が提供している業務用 Webアプリケーションプラットフォームサービス

Heroku  - プログラミング言語「 Ruby 」をベースにしたプラットフォームサービス

Page 9: AmazonEC2 で Web アプリを動かす勉強会

HaaS/IaaS のサービス例

9

Amazon Web Services(http://aws.amazon.com/)

- Amazon が提供しているコンピューティング・リソースのレンタルサービス

   ※ 後のスライドで詳しく載せます

GoGrid(http://www.gogrid.com/) - ServePath が提供している、コンピューティング・リソースのレンタルサービス

Page 10: AmazonEC2 で Web アプリを動かす勉強会

クラウド・プラットフォーム

10

Amazon Google Microsoft Salesforce.com

SaaS Google Apps Windows Live/ Microsoft Online Service

Salesfoce CRM

DaaS SimpleDB BigTable SQL Data Services

Force.com Database

PaaS Google App Engine

Windows Azure

Force.com

HaaS EC2/S3 Windows Azure Storage Services※出典:特集 クラウド体験記

http://www.atmarkit.co.jp/fdotnet/special/cloudcompare01/cloudcompare01_01.html

Page 11: AmazonEC2 で Web アプリを動かす勉強会

11

Amazon Web Services

Page 12: AmazonEC2 で Web アプリを動かす勉強会

12

Amazon Web Services

クラウドコンピューティング・サービス

Page 13: AmazonEC2 で Web アプリを動かす勉強会

AWS のサービス

13

年月 サービス名2002 年 07 月 Amazon Web Services

2004 年 11 月 Amazon SQS

2006 年 03 月 Amazon S3

2006 年 08 月 Amazon EC2

2007 年 12 月 Amazon SimpleDB

2008 年 08 月 Amazon EBS

2008 年 11 月 Amazon CloudFront

2009 年 01 月 AWS Management Console

2009 年 04 月 Amazon Elastic MapReduce

Page 14: AmazonEC2 で Web アプリを動かす勉強会

サービス紹介

14

サービス 概要

Amazon Web Services Amazon クラウドサービスの総称

Amazon SQS 複数ノード間でメッセージの待ち行列を共有できるサービス

Amazon S3 ストレージサービス

Amazon EC2 ホスティングサービス

Amazon SimpleDB Key-value 型データベース

Amazon EBS ストレージサービス

Amazon CloudFront CDN サービス

AWS Management Console

EC2 の管理コンソール

Amazon Elastic MapReduce 分散処理サービスストレージ:アプリケーションのデータを格納するためのサービス

CDN :コンテンツを高速に配信することが可能なサービス

Page 15: AmazonEC2 で Web アプリを動かす勉強会

料金体系

15

初期費用は不要使った分だけ支払う従量課金制

例) AmazonEC2      Standard(Small/Windows) (利用料金 12 円 /時間)

1か月 12 円 * 24 時間 * 30 日 = 8,640 円1年 12 円 * 24 時間 * 365 日 = 105,120 円1年契約 予約料 22,750 円 (利用料金 6 円 /時間) 22,750 円 + 6 円 * 24 時間 * 360 日 = 75,310 円

Page 16: AmazonEC2 で Web アプリを動かす勉強会

料金の確認 (Account Activity)

16

Page 17: AmazonEC2 で Web アプリを動かす勉強会

事例紹介 (1/3)

17

The New York Times過去記事を Amazon S3 に保存(数 TB )100 台以上の EC2 インスタンスを使用

Page 18: AmazonEC2 で Web アプリを動かす勉強会

事例紹介 (2/3)

18

NASDAQ過去の株式市場情報を Amazon S3 に保存

Page 19: AmazonEC2 で Web アプリを動かす勉強会

事例紹介 (3/3)

19

ANIMOTOスライドショー作成サービス動画処理、およびファイルの保管に Amazon

EC2 と Amazon S3 を使用

Page 20: AmazonEC2 で Web アプリを動かす勉強会

アカウント登録方法

20

URL : http://aws.amazon.com/

Page 21: AmazonEC2 で Web アプリを動かす勉強会

日本語サイト

21

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

準備中のようです

Page 22: AmazonEC2 で Web アプリを動かす勉強会

アカウント作成

22

Page 23: AmazonEC2 で Web アプリを動かす勉強会

アカウント登録完了

23

Page 24: AmazonEC2 で Web アプリを動かす勉強会

支払い情報登録

24

Page 25: AmazonEC2 で Web アプリを動かす勉強会

本人確認

25

Page 26: AmazonEC2 で Web アプリを動かす勉強会

26

Amazon EC2/S3/EBS

Page 27: AmazonEC2 で Web アプリを動かす勉強会

Amazon EC2 について

27

Amazon Elastic Compute Cloud の略サーバー・リソースのホスティングサービスWindows や Linux などの仮想サーバーを時間単位で利用可能

開発者 約 54 万人( 2009 年 4 月時点)

Page 28: AmazonEC2 で Web アプリを動かす勉強会

Amazon EC2 の利点

28

OS の上位のレイヤーに対する制約がない

ミドルウェアや開発言語、フレームワークなど自由に選択することが可能

システムを移行することが容易従来の環境とほぼ同等に扱えるリソースが不足した場合、1ランク上のサーバーリソースを積んだ仮想サーバーを即座に利用可能

Page 29: AmazonEC2 で Web アプリを動かす勉強会

インスタンス・タイプ

29

スタンダード メモリ ECU 単位※

ストレージ アーキテクチャ

スモール(デフォルト)

1.7GB 1 160GB 32 ビット

ラージ 7.5GB 4 850GB 64 ビットエクストララージ 15GB 8 1690GB 64 ビット

※ ECU : Amazon が定義した CPU のリソース単位約 1.0GHz から 1.2GHz で動作する AMD Opteron/Intel Xeon プロセッサの1基に相当する

Page 30: AmazonEC2 で Web アプリを動かす勉強会

ツールなど

30

Amazon EC2 API Tools( コマンドラインツール )

S3 FireFox Organizer(FireFox のプラグイン ) AWS Management Console(AWS 管理用コンソール )

コマンドラインツールの方が前からあるため、説明するサイトや書籍が多い 今回は AWS Management Console を利用した管理方法を解説します

Page 31: AmazonEC2 で Web アプリを動かす勉強会

AWS Management Console

31

Page 32: AmazonEC2 で Web アプリを動かす勉強会

32

Web アプリ構築

Page 33: AmazonEC2 で Web アプリを動かす勉強会

事前準備

33

インスタンスを作成する前に以下の設定をしますKey PairsSecurity Groups

Windows 環境から接続することを想定します ※ 次のソフトウェアがインストール済み

・ Putty(SSH クライアント )・ WinSCP(FTP クライアント )

Page 34: AmazonEC2 で Web アプリを動かす勉強会

Key Pairs

34

Key Pairs = 公開鍵と秘密鍵仮想サーバにリモートログインするのに必要

Page 35: AmazonEC2 で Web アプリを動かす勉強会

Security Groups(1/3)

35

ファイアウォールの設定

Page 36: AmazonEC2 で Web アプリを動かす勉強会

Security Groups(2/3)

36

デフォルト設定だとすべての通信が許可

Page 37: AmazonEC2 で Web アプリを動かす勉強会

Security Groups(3/3)

37

作成したセキュリティグループ

Page 38: AmazonEC2 で Web アプリを動かす勉強会

仮想サーバ作成

38

Page 39: AmazonEC2 で Web アプリを動かす勉強会

OS の選択

39

Page 40: AmazonEC2 で Web アプリを動かす勉強会

選択可能な OS

40

WindowsWindows Server 2008 Datacenter Edition

(i386/x86_64)Windows Server 2008 + SQL Server

(i386/x86_64)UNIX/Linux

fedora 8 (i386/x86_64)CentOS 5.4 (x86_64)

Public な AMI を利用することも可能

Page 41: AmazonEC2 で Web アプリを動かす勉強会

Linux 系 OS の場合

41

PuTTy を利用して SSH接続Key Pairs を利用PuTTygende で PuTTy秘密鍵ファイル( pp

k )に変換

Page 42: AmazonEC2 で Web アプリを動かす勉強会

PuTTygen

42

Page 43: AmazonEC2 で Web アプリを動かす勉強会

PuTTygen

43

Key Pairs で作成した秘密鍵をロード Putty 用の秘密鍵を保存

Page 44: AmazonEC2 で Web アプリを動かす勉強会

PuTTy による接続

44

Page 45: AmazonEC2 で Web アプリを動かす勉強会

PuTTy による接続

45

作成した Putty 用秘密鍵を設定

Page 46: AmazonEC2 で Web アプリを動かす勉強会

PuTTy による接続

46

Rootユーザでログインすることが可能

Page 47: AmazonEC2 で Web アプリを動かす勉強会

カスタマイズ

47

タイムゾーンの変更(海外になっているため)必要なパッケージをインストール必要なファイルなどは WinSCP で転送

Page 48: AmazonEC2 で Web アプリを動かす勉強会

Web アプリのインストール

48

以下のソフトウェアをインストールしますJavaApacheTomcatOracle

Page 49: AmazonEC2 で Web アプリを動かす勉強会

Java のインストール

49

Linux 用の JDK をOracle のページからダ

ウンロード ① 実行権限を付与します# chmod 755 jdk-6u21-linux-i586-rpm.bin②インストール# ./jdk-6u21-linux-i586-rpm.bin③ .bash_profile または .bashrc ファイルに以下の行を追加します# vi ~/.bash_profileexport JAVA_HOME=/usr/java/jdk1.6.0_21export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar④ 反映させます# source .bash_profilehttp://java.sun.com/javase/ja/

6/download.html

Page 50: AmazonEC2 で Web アプリを動かす勉強会

Apache のインストール

50

① インストール# yum install httpd② 起動# service httpd start③ 停止# service httpd stop

起動後に Public DNS(ホスト)にアクセス

※ yum でインストールします

Page 51: AmazonEC2 で Web アプリを動かす勉強会

Tomcat のインストール (1/2)

51

①  パッケージ取得# wget http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.tar.gz② 展開# tar zxvf apache-tomcat-6.0.29.tar.gz# mv apache-tomcat-6.0.29 /opt# cd /opt# ln -s apache-tomcat-6.0.29 tomcat③ ユーザ・グループの追加# groupadd -g 400 tomcat# useradd -M -s /sbin/nologin -g 400 -u 400 tomcat④ ディレクトリオーナーの変更# chown –R tomcat:tomcat apache-tomcat-6.0.29⑤ インスタンスの起動・停止# /opt/tomcat/bin/startup.sh# /opt/tomcat/bin/shutdown.sh

Page 52: AmazonEC2 で Web アプリを動かす勉強会

Tomcat のインストール (2/2)http://xxx.amazonaws.com:8080/

52

Page 53: AmazonEC2 で Web アプリを動かす勉強会

Apache と Tomcat の連携Apache : 静的なページの表示に使うTomcat : 動的なページの生成に使う

53

1. 静的なファイルをより高速な Apache が処理し、動的なページを Tomcat が処理することによって効率の良いレスポンスが実現できる

2. Apache の HTTP サーバとして様々な機能を利用できる3. 1 台の Web サーバに対して複数の Tomcat のインスタン

スを割り当てることによって負荷分散を実現できる

目的

Page 54: AmazonEC2 で Web アプリを動かす勉強会

連携方法

54

Apache の設定ファイルを修正します# cd /etc/httpd/conf# vi httpd.confhttpd.conf の次の記述を有効にしますLoadModule proxy_module modules/mod_proxy.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.so

※ここでは tomcat のドキュメントにアクセスします<Location /docs/> ProxyPass ajp://localhost:8009/docs/</Location>

IP アドレスで制限するときの記述です Order allow,deny Allow from 192.168.1.1

Page 55: AmazonEC2 で Web アプリを動かす勉強会

Apache を通して Tomcat に接続

55

URL:http://xxx.amazonaws.com/docs/

Page 56: AmazonEC2 で Web アプリを動かす勉強会

Oracle XE インストール

56

① Oracle Database 10g Express Edition のダウンロードURL:http://www.oracle.com/technology/software/products/database/xe/index.htmlOracle Database 10g Express Edition (Universal) の oracle-xe-univ-10.2.0.1-1.0.i386.rpm をダウンロードします② インストール# rpm -ivh oracle-xe-univ-10.2.0.1-1.0.i386.rpm③ インスタンスの作成と設定# /etc/init.d/oracle-xe configure④ 環境設定利用するユーザーの .bash_profile または .bashrc ファイルに以下の行を追加します. /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh⑤ インスタンスの起動・停止# service oracle-xe { start | stop }

Page 57: AmazonEC2 で Web アプリを動かす勉強会

EBS と S3 の利用

57

Amazon EC2 はインスタンスを停止するとディスクに保存した内容が消えてしまう

S3, EBS を利用してデータを保存

Amazon EC2 の問題点

問題点の解決策

Page 58: AmazonEC2 で Web アプリを動かす勉強会

Amazon S3

58

Amazon EC2 上から外部のデータサーバーとしてアクセスできる

HTTP リクエストでどこからでもアクセス可能

画像ファイルなどの静的ファイル系データイメージファイルなどやバックアップファイルなどファイルサイズが大きく、あまりアクセスしないもの

HTTP経由でアクセスできる必要があるデータ

Page 59: AmazonEC2 で Web アプリを動かす勉強会

Amazon EBS

59

Amazon EC2 上のインスタンスからボリュームをマウントして利用

各種ログや DB データなど頻繁にインスタンスからアクセスするデータ

外からアクセスする必要の無いデータ

Page 60: AmazonEC2 で Web アプリを動かす勉強会

Amazon EBS の作成方法

60

①“Volumes” を選択

②“Create Volume” をクリック

Page 61: AmazonEC2 で Web アプリを動かす勉強会

Amazon EBS の作成方法

61

・ GB, TB 単位で好きなサイズを作成・ロケーションの選択可能・スナップショットの選択可能

Page 62: AmazonEC2 で Web アプリを動かす勉強会

EBS のマウント方法( 1/2 )

62

1. Status を右クリックします2 . Attach Volume を選択

Page 63: AmazonEC2 で Web アプリを動かす勉強会

EBS のマウント方法( 2/2 )

63

1. マウント先のインスタンスを選択します2 . デバイスの設定をします ( ex:/dev/sdf )3. Attach するとインスタンスに接続されます

Page 64: AmazonEC2 で Web アプリを動かす勉強会

作成時の制約

64

EBSボリュームは複数の仮想サーバから同時にマウントできない

ボリュームサイズは 1GB~ 1TB まで 1GB 単位ボリュームサイズの動的変更はむりボリュームのロケーションはボリュームを割り当てる仮想サーバーと同じにする

ボリュームのロケーションも変更できないロケーション間でのボリューム共有はできない

Page 65: AmazonEC2 で Web アプリを動かす勉強会

Amazon EBS のマウント方法

65

① EBSボリュームが認識しているか確認# ll /dev/sdf ※ ボリューム内にデータがあるか確認する

  既存データが必要ない場合以下を実行② EBSボリュームのファイルシステムを作成# yes | mkfs –t ext3 /dev/sdf③ マウント ( ここでは /ebs というディレクトリを作成 )# mkdir /ebs# mount /dev/sdf /ebs④ パーティションの状況を確認# df -h

仮想サーバーに接続して設定します

Page 66: AmazonEC2 で Web アプリを動かす勉強会

AMI

66

Amazon Machine Image の略仮想 OS イメージカスタマイズした Linux や Windows を保存可能

Amazon S3/EBS

ベース OS

カスタマイズOS AM

I

カスタマイズOS

イメージ化

起動

Page 67: AmazonEC2 で Web アプリを動かす勉強会

参考書籍 (1/3)

67

「クラウド Amazon EC2/S3 のすべて 実践者から学ぶ設計 /構築 /運用ノウハウ」

作者 : TIS 株式会社 /SonicGarden 並河祐貴 , 安達輝雄出版社 : 日経 BP 社発売日 : 2009/11/05価格 : 2,800 円 + 税

Page 68: AmazonEC2 で Web アプリを動かす勉強会

参考書籍 (2/3)

68

Amazon EC2/S3/EBS クラウドコンピューティングによる仮想サーバ構築

作者 : 清水正人出版社 : ソシム株式会社発売日 : 2009/08/27価格 : 1,890 円 + 税

Page 69: AmazonEC2 で Web アプリを動かす勉強会

参考書籍 (3/3)

69

クラウドを実現する技術

作者 : 米持幸寿出版社 : インプレスジャパン発売日 : 2009/08/24価格 : 2,200 円 + 税

Page 70: AmazonEC2 で Web アプリを動かす勉強会

70

ご静聴ありがとうございました

Page 71: AmazonEC2 で Web アプリを動かす勉強会

Q & A ( 1/2 )

71

Q: SQS とは、どういうサービスなのか? A: キューを使って、時間がかかる処理を非同期で処理するようなこと が可能です 参考: http://blog.dateofrock.com/2010/01/amazon-sqs.html

Q: 公開鍵はローカルから送れるのか? A: API の ec2-api-tools の ec2-add-keypair を使ってキーを生成する場合は ローカルでの操作となりますので公開鍵を AWS に送ることができます ( 例. my-test-keypair)

Q: OS を移行したい場合はどうしたらよいの? A: データを EBS に保存しておいて、作り直すかたちになると思われます

Q: ロケーションによる違いは? A: 値段が多少違います。米国がやや安いようです

Page 72: AmazonEC2 で Web アプリを動かす勉強会

Q & A ( 2/2 )

72

Q: EBS の課金はのようにされているのか? A: データ量で課金されるので大容量なものがいいとおもいます 途中から容量を増やしたりできませんのでその点も考慮にいれます

Q: Key Pairs の割り当ては個別にできるのか? A: インスタンス毎の Key Pairs の割り当てができます

Q: インスタンス落としても消えない A: 再起動する分には消えませんが、 シャットダウンするとすべてのデータが消えます  ただし、 Amazon EBS のストレージをルートパーティションとしてインスタンス  を起動 (EBS ブート ) した場合は、停止 (stop) してもデータは保持されたまま になります