Transcript amazonec2.0
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