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

Preview:

DESCRIPTION

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

Citation preview

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

1

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

アジェンダ

2

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

3

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

クラウドとは

4

クラウド = 雲

利用者

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

雲の中身

5

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

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

クラウド・サービス層

クラウド基盤層

クラウドのサービス

6

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

Google

Amazon

Microsoft

Sales Force

SaaS のサービス例

7

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

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

PaaS のサービス例

8

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

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

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

HaaS/IaaS のサービス例

9

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

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

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

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

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

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

11

Amazon Web Services

12

Amazon Web Services

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

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

サービス紹介

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 :コンテンツを高速に配信することが可能なサービス

料金体系

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 円

料金の確認 (Account Activity)

16

事例紹介 (1/3)

17

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

事例紹介 (2/3)

18

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

事例紹介 (3/3)

19

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

EC2 と Amazon S3 を使用

アカウント登録方法

20

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

日本語サイト

21

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

準備中のようです

アカウント作成

22

アカウント登録完了

23

支払い情報登録

24

本人確認

25

26

Amazon EC2/S3/EBS

Amazon EC2 について

27

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

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

Amazon EC2 の利点

28

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

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

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

インスタンス・タイプ

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基に相当する

ツールなど

30

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

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

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

AWS Management Console

31

32

Web アプリ構築

事前準備

33

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

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

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

Key Pairs

34

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

Security Groups(1/3)

35

ファイアウォールの設定

Security Groups(2/3)

36

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

Security Groups(3/3)

37

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

仮想サーバ作成

38

OS の選択

39

選択可能な 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 を利用することも可能

Linux 系 OS の場合

41

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

k )に変換

PuTTygen

42

PuTTygen

43

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

PuTTy による接続

44

PuTTy による接続

45

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

PuTTy による接続

46

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

カスタマイズ

47

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

Web アプリのインストール

48

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

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

Apache のインストール

50

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

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

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

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

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

52

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

53

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

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

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

目的

連携方法

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

Apache を通して Tomcat に接続

55

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

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 }

EBS と S3 の利用

57

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

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

Amazon EC2 の問題点

問題点の解決策

Amazon S3

58

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

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

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

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

Amazon EBS

59

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

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

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

Amazon EBS の作成方法

60

①“Volumes” を選択

②“Create Volume” をクリック

Amazon EBS の作成方法

61

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

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

62

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

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

63

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

作成時の制約

64

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

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

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

Amazon EBS のマウント方法

65

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

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

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

AMI

66

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

Amazon S3/EBS

ベース OS

カスタマイズOS AM

I

カスタマイズOS

イメージ化

起動

参考書籍 (1/3)

67

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

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

参考書籍 (2/3)

68

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

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

参考書籍 (3/3)

69

クラウドを実現する技術

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

70

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

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: 値段が多少違います。米国がやや安いようです

Q & A ( 2/2 )

72

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

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

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

Recommended