amazon ec2
TRANSCRIPT
Amazon EC2
- a Cloud Computing Environment-
自己紹介
名前片山暁雄
IDid:[email protected]
所属株式会社キャピタルアセットプランニングhttp://www.cap-net.co.jp
T2Frameworkhttp://code.google.com/p/t-2/
Agenda
EC2とは
EC2の使い方
EC2の各種サービス
S3とは
S3の使い方
構築例/Tips
EC2の利点/まとめ
EC2とは
EC2とは
AmazonWebServicesが提供する、クラウドコンピュ ーティング環境
http://aws.amazon.com/
EC2=Elastic Compute Cloud
EC2とは
巨大なコンピュータークラウド上に、コンピューター環境を借り られる
複数の仮想コンピューターハードウェア(インスタンス)を作成 できる
デフォルトは20個まで。
インスタンス!
EC2とは
インスタンス上でOSを実行
Red Hat Enterprise Linux Windows Server 2003 Oracle Enterprise Linux OpenSolarisopenSUSE Linux Ubuntu Linux Fedora Gentoo Linux Debian
EC2とは
インスタンスは停止すると終了
データは全部消えます
OSの再起動は可能
外部IPアドレス
外部DNS
内部IPアドレス
内部DNS
ランダムに1個ずつ付与
EC2とは
リージョンアメリカとヨーロッパ
ゾーン(アベイラビリティゾーン)アメリカに4つ、ヨーロッパに2つ
4箇所
2箇所
EC2とは
SLA(Service level agreement)年間99.95%の稼動を保障
有償サポートSilver:月$100 平日の日中のみ webベース
Gold:月$400 24時間365日直電OK
EC2とは
インスタンスの種類Standard On-Demand Instances
ECU(CPU) メモリ ディスク bit
Small 1 1.7 GB 160GB 32bit
Large 4(2 virtual cores)
7.5 GB 850GB 64bit
Extra Large
8(4 virtual cores)
15 GB 1690GB 64bit
EC2 Compute Unit (ECU) One EC2 Compute Unit (ECU) provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.
EC2とは
High CPU On-Demand Instances
ECU(CPU) メモリ ディスク bit
Medium 5(2 virtual cores)
1.7 GB 350GB 32bit
Extra Large 20(8 virtual cores)
7 GB 1690GB 64bit
EC2とは
料金初期費用:0円
月額固定費用:0円
料金は利用に応じた従量課金
ゆっくり使って行ってね!!
EC2とは
インスタンス利用料USリージョンの場合の、 1時間あたりの課金
インスタンスタイプ Linux Windows
Small $0.10 $0.125
Large $0.40 $0.50
Extra Large $0.80 $1.00
Medium(high cpu) $0.20 $0.30
Extra Large(high cpu) $0.80 $1.20
EC2とは
例えばSmallインスタンスにLinux入れてを1ヶ月(30日)利用すると
30(日) ×24(時間)×$0.1 = $72
例えばExtra LargeインスタンスのWindowsを1時間だけぶん回すと
1(時間)×$1.00 = $1
EC2とは
リザーブドインスタンス先に一定費用を払うと、1時間あたりの利用料が安くなる
Wホワイトプランみたいなやーつ
Linux/UNIXだけ
インスタンスタイプ 1年契約 3年契約 per hour
Small $325 $500 $0.03
Large $1300 $2000 $0.12
Extra Large $2600 $4000 $0.24
Medium(high cpu) $650 $1000 $0.06
Extra Large(high cpu) $2600 $4000 $0.24
EC2とは
0
10
20
30
40
50
60
70
80
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
通常料金
リザーブド
Smallインスタンスの場合
月の利用日で比較
EC2とは
そのほかの費用インターネットとのデータIO
Data In $0.10 per GB
Data Out
( 初の10 TBまで)
$0.17 per GB
EC2とは
インターネットを介した通信に対する従量課金(A)
同一リージョン・同一ゾーンの場合は無料(B)
同一リージョン・別ゾーンの別サービス同士は無料(C)
同一リージョン・別ゾーンのEC2同士は$0.01 per GB in/out(D)
別リージョン間はインターネット通信に含まれる(E)
EU USクライアント
Zone1
Zone2
Zone3
A
EC2 S3
EC2 S3
B
B
CD
E
EC2とは
ちょっとAmazonの営業っぽくなってきました
EC2の使い方
EC2の使い方
EC2の管理
管理は、すべてAPI経由
RESTとSOAPのAPI
ec2-api-tools
Javaライブラリ
http://developer.amazonwebservices.com/co nnect/entry.jspa?externalID=351
EC2とは
敷居高いやないか!!
EC2の使い方
AWS Management ConsoleWebアプリ
http://aws.amazon.com/console/
ElasticFoxFireFoxのプラグイン
http://developer.amazonwebservices.com/connect/ent ry.jspa?externalID=609
あるよ!
EC2の使い方
インスタンスを起動しよう!
決めることリージョンとゾーン
インスタンス
AMI
ログイン用キーペア
セキュリティグループ
EC2の使い方
AMI(Amazon Machine Image)OS・データの入ったイメージファイル
1つのマニフェストファイルと、分割されたデータファイル
Amazonが用意してくれている
自分で作成することも可能
EC2の使い方
ログイン用キーペア起動したインスタンス上のAMIにログインするキーペア
コンソールで生成
AMI起動時に指定した公開鍵が組み込まれる
SSH接続のときに秘密鍵を指定
EC2の使い方
余談ですがputty使うときは、puttygen.exeで変換しましょう
EC2の使い方
セキュリティグループ各インスタンスに適用する、セキュリティ設定のグループ
ファイヤーウォール的なやーつ
ホスト・ネットワーク・IPアドレス・ポート・セキュリティグループ レベルでアクセス許可を指定
EC2の使い方
例:4つのグループdefault : すべての外部ネットワークからのSSHを許可
web:すべての外部ネットワークからHTTPを許可
app:webからの内部通信のみ許可
db:appからの内部通信のみ許可
EC2の使い方
web
app
app
db
default
default
default
default
EC2の使い方
決めたら起動!リージョンとゾーン
インスタンス
AMI
ログイン用キーペア
セキュリティグループ
起動!
DEMO
EC2の各種サービス
EC2の各種サービス
Elastic IP Address外部向けの固定IPを取得できるサービス
1回取得すると、好きなインスタンスに紐付けできる
取得すると、1時間$0.01かかる
ただしインスタンスに紐付けしている間は無料
デフォルトで5IPまで
210.81.3.241 211.14.15.5
EC2の各種サービス
Elastic Block Store(EBS)インスタンスが停止しても消えないデータ領域
外付けHDDみたいなもの
1Gbyte単位 高1TByteまで領域を借りられる
1Gbyteあたり月$0.1と、データアクセス1万回ごとに$0.1
EBS:10Gbyte
/dev/sda
/appにマウント!
EC2の各種サービス
Elastic Block Store(EBS)続き
スナップショットが取れる
スナップショットから、領域を複製できる
スナップショットは、1Gbyteあたり月$0.15と、1000回保存 ごとに$0.01、1万回ロードごとに$0.01
インスタンス上のデータ領域よりアクセスが早い
スナップショット
EC2の各種サービス
Elastic Block Store(EBS) さらに続き
インスタンス上のデータ領域よりアクセスが早い
デフォルト20ボリュームまで
DEMO
EC2の各種サービス
Elastic Load Balancingロードバランサーサービス
インスタンスの負荷具合により、リクエストを振り分ける
1時間$0.025、1Gbyteのデータ処理あたり$0.008
まだbeta版 API操作からのみ利用可(2009/7)
EC2の各種サービス
Cloud Watchインスタンスとロードバランサーの負荷監視サービス
CPU負荷、ディスクIO、ネットワークトラフィックのモニター
1インスタンス監視あたり1時間$0.015
まだbeta版 API操作からのみ利用可(2009/7)
EC2の各種サービス
Auto Scaling負荷状態により自動的にインスタンスを起動したり、停止した
りするサービス
Cloud Watch利用の場合は無料
まだbeta版 API操作からのみ利用可(2009/7)
S3とは
S3とは
Amazon Simple Strage Service (S3)クラウド上にデータを保存しておくためのサービス
配置したファイルはインターネットからアクセス可能
Apacheのhtdocsみたいなイメージ
細かいアクセス制限が可能
容量上限なし?(over 500TByte)
EC2<-->S3のデータ転送が可能
http://hoge.s3.amazonaws.com/
S3
S3とは
Amazon Simple Strage Service (S3)続き1Gbyteを月$0.15で保存可能
1Gbyteのアップロードで$0.1、1Gbyteのダウンロードで$0.17
PUT,COPY,POST,LISTリクエスト1000回ごとに$0.01
GETリクエスト10000回ごとに$0.01
S3の利用方法
S3とは
S3の管理
管理は、すべてAPI経由
RESTとSOAPのAPIAPI仕様
http://developer.amazonwebservices.com/connect/entry.js pa?externalID=123
S3とは
敷居高いやないか!!
S3とは
S3FireFox OrganizerFireFoxのプラグイン
http://www.s3fox.net/
Jets3tJavaライブラリ
https://jets3t.dev.java.net/
あるよ!
EC2の使い方
Bucket(バケット)データ領域のトップフォルダ
英数小文字、ピリオド、ハイフンのみで、3から63文字
バケット名=サブドメイン名
「http://バケット名.s3.amazonaws.com/」でアクセス
他人が取ったバケットは取れない!
DEMO
EC2の使い方
で、EC2から何に使うの?
データのバックアップ
自分で作ったAMIの保存先
自前AMIはS3からロードして起動
稼動中のOSをAMI化してS3に保存
S3上のAMIから起動
EC2の使い方
オレオレAMIの作成ec2-ami-tools (ruby製)
稼動しているOS上でコマンド実行
ec2-bundle-vol -d $WORK_DIR --arch $ARCH --exclude $EXCLUDE --privatekey $PRIVATE_KEY_FILE --cert $CERT_KEY_FILE --user $AWSUSER
EC2の使い方
オレオレAMIの転送ec2-ami-tools (ruby製)
稼動しているOS上でコマンド実行
作成したイメージがS3に転送される
ec2-upload-bundle --bucket $BACKUP_BUCKET --manifest $WORK_DIR/image.manifest.xml--access-key $ACCESS_ID --secret-key $SECRET_KEY
EC2の使い方
オレオレAMIの起動管理コンソールまたはJavaコマンドから、S3上の
manifest.xmlが入っているフォルダを指定
パスを指定して起動
EC2の使い方
S3本来の使い方S3バケットのURLを、DNSで自分のドメインに紐付け
例)「s3.hoge.com」をS3に関連付ける場合、hoge.comのDNSに
s3.hoge.com. IN CNAME s3.amazonaws.com.
と設定。
S3でバケット名「
s3.hoge.com」を取得する
->http://s3.hoge.comでアクセスすると、s3上のバケットにリクエストが行く
DEMO
EC2の使い方
Amazon Cloud FrontS3バケットの中身を、各国のEdgeサーバにコピー
S3バケットにアクセスする際、 寄のサーバから配信
US
EU
Hong Kong
Japan
Original
構築例/Tips
テスト
本番
構築例/Tips
構築例Apache,Tomcat,MySQL,Zabbix
本番擬似テスト環境
Apache,Tomcat,MySQL5CPU instance
Zabbix1CPU instance
Apache,Tomcat,MySQL1CPU instance
構築例/Tips
構築例続き営業段階なので、AP,DB,すべて1つの環境
利用状況により分散構成に変更
ElasticIPで固定IP取得し、ドメインとSSL証明書取得
Zabbixでアプリ監視
本番と同じ環境をテストインスタンスで構築し、確認後AMI化 し本番に展開
パッチやバージョンアップなどもテスト環境で確認可能
設定ファイル・アプリデータ・DBデータはEBS上に保持
構築例/Tips
バックアップ1日2回、EBSのスナップショットを取得
Typica(http://code.google.com/p/typica/)を使用し、イン
スタンス内からcronでスナップショット作成
スナップショットが一定数を超えたら、古いものから削除
1日1回、MySQLのバイナリログをS3に転送
jets3t(https://jets3t.dev.java.net/)を使用し、インスタンス
内からcronでログ転送
構築例/Tips
バックアップ
続き週末にDBダンプをS3に転送
S3に転送したものは、自社内のサーバにダウンロード
パッチ・システム構成変更時
AMI作成は手動(AMI作成->S3転送のシェル)
構築例/Tipsパッチ・システ
ム構成ごとの
AMI
スナップショット
DBは生データを
バックアップ
自社にコピー
重要なデータは
EBSに。
構築例/Tips
フェイルオーバープランアプリ・DBが壊れたら・・・EBSスナップショットから復旧
OS・システム停止したら・・・AMIから復旧
USリージョンが全滅したら・・・EUにデータアップして復旧
Amazonが全滅したら・・・自社内のサーバに再構築
そんなんないけどね!
構築例/Tips
Tips
インスタンスは動的に入れ替えられない
CPU・メモリは事前に考える
32bitと64bitプラットフォーム
AMIが異なるので注意
転送速度
平均2.2MBits/sec
• (日中1時間測定した平均)
ping 190ms
構築例/Tips
Tips 続き
SCPクライアント
WinSCPは遅い
Tunnelierというのが速い
• http://www.bitvise.com/
EBSはXFS
ファイルシステム全体の書き込みを停止できる• aptitude install xfsprogs //xfs用プログラム
• mkfs.xfs /dev/sda //デバイスをxfsで初期化
• xfs_freeze -f /app //マウントポイント書き込み禁止
• xfs_freeze –u /app //書き込み禁止解除
構築例/Tips
Tips 続き
テスト環境と本番環境のIDを分ける
誤操作防止
インスタンス止めるのびびる
EC2の利点/まとめ
EC2の利点/まとめ
EC2の利点
ハードベンダーと話し合いをしなくて良かった
スタートアップの容易さ
初期費用0円
構成を途中で変えられた・変えられる
監視サーバははじめ予定なかった
スナップショットが便利
バックアップはほぼこれでまかなえる
自動化
すべてAPI操作可能
EC2の利点/まとめ
まとめEC2はクラウド環境
簡単に初めて、すぐにやめられる
ネットワーク構成も可能
好きなOS・アプリを使える
いままでのサーバと変わらない
EC2の利点/まとめ
ご清聴ありがとうございました