スライド 1

AmazonEC2でWebアプリを動かす勉強
会
開発部 品質グループ
木崎 悟
1
アジェンダ
 クラウド・コンピューティング
 Amazon Web Services(AWS)
 Amazon EC2/S3/EBS
 Webアプリ構築
2
クラウド・コンピューティング
3
クラウドとは
クラウド = 雲
雲からサービスが降ってくる
利用者
4
雲の中身
雲の中 = ハードウェアやソフトウェアの実体
クラウド・アプリケーション層
クラウド・サービス層
クラウド基盤層
5
クラウドのサービス
 SaaS = クラウド・アプリケーション層
 PaaS = クラウド・サービス層
 HaaS/IaaS/DaaS = クラウド基盤層
Microsoft
Google
Amazon
6
Sales Force
SaaSのサービス例
 Gmail(https://mail.google.com/)
- Googleが提供しているメールサービス
 Googleドキュメント
- Googleが提供しているオフィスソフト
 SalesforceCRM
- Salesforce.comが提供している顧客管理システムの
サービス
7
PaaSのサービス例
 Google App Engine
- Googleが提供しているプラットフォームサービス
 Force.com
- Salesforce.comが提供している業務用Webアプリ
ケーションプラットフォームサービス
 Heroku
- プログラミング言語「Ruby」をベースにしたプ
ラットフォームサービス
8
HaaS/IaaSのサービス例
 Amazon Web Services(http://aws.amazon.com/)
- Amazonが提供しているコンピューティング・リ
ソースのレンタルサービス
※ 後のスライドで詳しく載せます
 GoGrid(http://www.gogrid.com/)
- ServePathが提供している、コンピューティング・
リソースのレンタルサービス
9
クラウド・プラットフォーム
Amazon
SaaS
DaaS
SimpleDB
PaaS
HaaS
Google
Microsoft
Salesforce.co
m
Google Apps
Windows Live
/ Microsoft
Online Service
Salesfoce
CRM
BigTable
SQL Data
Services
Force.com
Database
Google App
Engine
Windows Azure
Force.com
EC2/S3
Windows Azure
Storage Services
※出典:特集 クラウド体験記
10
http://www.atmarkit.co.jp/fdotnet/special/cloudcompare01/cloudcompare01_01.html
Amazon Web Services
11
クラウドコンピューティング・サービス
Amazon Web Services
12
AWSのサービス
13
年月
2002年07月
サービス名
Amazon Web Services
2004年11月
2006年03月
2006年08月
Amazon SQS
Amazon S3
Amazon EC2
2007年12月
2008年08月
2008年11月
Amazon SimpleDB
Amazon EBS
Amazon CloudFront
2009年01月
2009年04月
AWS Management Console
Amazon Elastic MapReduce
サービス紹介
サービス
概要
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
分散処理サービス
ストレージ:アプリケーションのデータを格納するためのサービス
14
CDN:コンテンツを高速に配信することが可能なサービス
料金体系
 初期費用は不要
 使った分だけ支払う従量課金制
例)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円
15
料金の確認(Account Activity)
16
事例紹介(1/3)
 The New York Times
 過去記事をAmazon S3 に保存(数TB)
 100台以上のEC2インスタンスを使用
17
事例紹介(2/3)
 NASDAQ
 過去の株式市場情報をAmazon S3に保存
18
事例紹介(3/3)
 ANIMOTO
 スライドショー作成サービス
 動画処理、およびファイルの保管にAmazon EC2と
Amazon S3を使用
19
アカウント登録方法
URL:http://aws.amazon.com/
20
日本語サイト
URL:http://aws.amazon.com/jp/
準備中のようです
21
アカウント作成
22
アカウント登録完了
23
支払い情報登録
24
本人確認
25
Amazon EC2/S3/EBS
26
Amazon EC2について
 Amazon Elastic Compute Cloudの略
 サーバー・リソースのホスティングサービス
 WindowsやLinuxなどの仮想サーバーを時間単位で
利用可能
 開発者 約54万人(2009年4月時点)
27
Amazon EC2の利点
 OSの上位のレイヤーに対する制約がな
い
 ミドルウェアや開発言語、フレーム
ワークなど自由に選択することが可能
 システムを移行することが容易
 従来の環境とほぼ同等に扱える
 リソースが不足した場合、1ランク上
のサーバーリソースを積んだ仮想サー
バーを即座に利用可能
28
インスタンス・タイプ
スタンダード
メモリ
ECU単位※
ストレージ
アーキテク
チャ
スモール
(デフォルト)
1.7GB
1
160GB
32ビット
ラージ
7.5GB
15GB
4
8
850GB
1690GB
64ビット
64ビット
エクストララージ
※ ECU:Amazonが定義したCPUのリソース単位
約1.0GHzから1.2GHzで動作するAMD Opteron/Intel Xeonプロセッサ
の1基に相当する
29
ツールなど
 Amazon EC2 API Tools(コマンドラインツール)
 S3 FireFox Organizer(FireFoxのプラグイン)
 AWS Management Console(AWS管理用コンソール)
コマンドラインツールの方が前からあるため、説明
するサイトや書籍が多い
今回は AWS Management Console を利用した管理方法を
解説します
30
AWS Management Console
31
Webアプリ構築
32
事前準備
 インスタンスを作成する前に以下の設定をします
 Key Pairs
 Security Groups
Windows環境から接続することを想定します
※ 次のソフトウェアがインストール済み
・Putty(SSHクライアント)
・WinSCP(FTPクライアント)
33
Key Pairs
 Key Pairs = 公開鍵と秘密鍵
 仮想サーバにリモートログインするのに必要
34
Security Groups(1/3)
 ファイアウォールの設定
35
Security Groups(2/3)
 デフォルト設定だとすべての通信が許可
36
Security Groups(3/3)
作成したセキュリティグループ
37
仮想サーバ作成
38
OSの選択
39
選択可能なOS
 Windows
 Windows 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を利用することも可能
40
Linux系OSの場合
 PuTTyを利用してSSH接続
 Key Pairsを利用
 PuTTygendeでPuTTy秘密鍵ファイル(ppk)に変換
41
PuTTygen
42
PuTTygen
Key Pairs で作成した秘密鍵をロード
43
Putty用の秘密鍵を保存
PuTTyによる接続
44
PuTTyによる接続
作成したPutty用秘密鍵を設定
45
PuTTyによる接続
 Rootユーザでログインすることが可能
46
カスタマイズ
 タイムゾーンの変更(海外になっているため)
 必要なパッケージをインストール
 必要なファイルなどはWinSCPで転送
47
Webアプリのインストール
 以下のソフトウェアをインストールします
 Java
 Apache
 Tomcat
 Oracle
48
Javaのインストール
Linux用のJDKをOracleの
ページからダウンロード
http://java.sun.com/javase/ja/6
/download.html
49
① 実行権限を付与します
# chmod 755 jdk-6u21-linux-i586-rpm.bin
②インストール
# ./jdk-6u21-linux-i586-rpm.bin
③ .bash_profileまたは.bashrcファイルに以下の行を
追加します
# vi ~/.bash_profile
export JAVA_HOME=/usr/java/jdk1.6.0_21
export PATH=$PATH:$JAVA_HOME/bin
export
CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/l
ib:$JAVA_HOME/lib/tools.jar
④ 反映させます
# source .bash_profile
Apacheのインストール
※ yumでインストールします
① インストール
# yum install httpd
② 起動
# service httpd start
③ 停止
# service httpd stop
起動後にPublic DNS(ホ
スト)にアクセス
50
Tomcatのインストール(1/2)
① パッケージ取得
# wget http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.29/bin/apachetomcat-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
51
Tomcatのインストール(2/2)
 http://xxx.amazonaws.com:8080/
52
ApacheとTomcatの連携
 Apache : 静的なページの表示に使う
 Tomcat : 動的なページの生成に使う
目的
1. 静的なファイルをより高速なApacheが処理し、動的なページ
をTomcatが処理することによって効率の良いレスポンスが実
現できる
2. ApacheのHTTPサーバとして様々な機能を利用できる
3. 1台のWebサーバに対して複数のTomcatのインスタンスを割
り当てることによって負荷分散を実現できる
53
連携方法
Apacheの設定ファイルを修正します
# cd /etc/httpd/conf
# vi httpd.conf
httpd.confの次の記述を有効にします
LoadModule proxy_module modules/mod_proxy.so
LoadModule 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
54
Apacheを通してTomcatに接続
URL:http://xxx.amazonaws.com/docs/
55
Oracle XE インストール
① Oracle Database 10g Express Editionのダウンロード
URL:http://www.oracle.com/technology/software/products/database/xe/in
dex.html
Oracle Database 10g Express Edition (Universal)のoracle-xe-univ10.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 }
56
EBSとS3の利用
Amazon EC2の問題点
 Amazon EC2 はインスタンスを停止するとディスク
に保存した内容が消えてしまう
問題点の解決策
 S3, EBSを利用してデータを保存
57
Amazon S3
 Amazon EC2上から外部のデータサーバーとしてア
クセスできる
 HTTPリクエストでどこからでもアクセス可能
 画像ファイルなどの静的ファイル系データ
 イメージファイルなどやバックアップファイルな
どファイルサイズが大きく、あまりアクセスしな
いもの
 HTTP経由でアクセスできる必要があるデータ
58
Amazon EBS
 Amazon EC2上のインスタンスからボリュームをマ
ウントして利用
 各種ログやDBデータなど頻繁にインスタンスか
らアクセスするデータ
 外からアクセスする必要の無いデータ
59
Amazon EBSの作成方法
②“Create Volume”をクリック
①“Volumes”を選択
60
Amazon EBSの作成方法
・GB, TB単位で好きなサイズを作成
・ロケーションの選択可能
・スナップショットの選択可能
61
EBSのマウント方法(1/2)
1. Statusを右クリックします
2 . Attach Volume を選択
62
EBSのマウント方法(2/2)
1. マウント先のインスタンスを選択します
2 . デバイスの設定をします
(ex:/dev/sdf)
3. Attachするとインスタンスに接続されます
63
作成時の制約
 EBSボリュームは複数の仮想サーバから同時にマ
ウントできない
 ボリュームサイズは1GB~1TBまで1GB単位
 ボリュームサイズの動的変更はむり
 ボリュームのロケーションはボリュームを割り当
てる仮想サーバーと同じにする
 ボリュームのロケーションも変更できない
 ロケーション間でのボリューム共有はできない
64
Amazon EBSのマウント方法
仮想サーバーに接続して設定します
① EBSボリュームが認識しているか確認
# ll /dev/sdf
※ ボリューム内にデータがあるか確認する
既存データが必要ない場合以下を実行
② EBSボリュームのファイルシステムを作成
# yes | mkfs –t ext3 /dev/sdf
③ マウント (ここでは/ebsというディレクトリを作成)
# mkdir /ebs
# mount /dev/sdf /ebs
④ パーティションの状況を確認
# df -h
65
AMI
 Amazon Machine Imageの略
 仮想OSイメージ
 カスタマイズしたLinuxやWindowsを保存可能
ベースOS
カスタマイズOS
起動
カスタマイズOS
イメージ化
AMI
Amazon S3/EBS
66
参考書籍(1/3)
「クラウド Amazon EC2/S3のすべて
実践者から学ぶ設計/構築/運用ノウハウ」
作者: TIS株式会社/SonicGarden 並河祐貴, 安達輝雄
出版社: 日経BP社
発売日: 2009/11/05
価格: 2,800円 + 税
67
参考書籍(2/3)
Amazon EC2/S3/EBS
クラウドコンピューティングによる仮想サーバ構築
作者: 清水正人
出版社: ソシム株式会社
発売日: 2009/08/27
価格: 1,890円 + 税
68
参考書籍(3/3)
クラウドを実現する技術
作者:米持幸寿
出版社: インプレスジャパン
発売日: 2009/08/24
価格: 2,200円 + 税
69
ご静聴ありがとうございました
70
Q&A(1/2)
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: 値段が多少違います。米国がやや安いようです
71
Q&A(2/2)
Q: EBSの課金はのようにされているのか?
A: データ量で課金されるので大容量なものがいいとおもいます
途中から容量を増やしたりできませんのでその点も考慮にいれます
Q: Key Pairsの割り当ては個別にできるのか?
A: インスタンス毎のKey Pairsの割り当てができます
Q: インスタンス落としても消えない
A: 再起動する分には消えませんが、
シャットダウンするとすべてのデータが消えます
ただし、Amazon EBSのストレージをルートパーティションとしてインスタンス
を起動(EBSブート)した場合は、停止(stop)してもデータは保持されたまま
になります
72