Post on 24-May-2015
description
AWS Cloud Design Pattern
-コンテンツ配信編-
Twitterタグ: #jawsug #awscdp
自己紹介
名前
片山暁雄
所属
アマゾンデータサービスジャパン
ID
@c9katayama
好きなAWSサービス
Amazon Simple Workflow
好きなAWSクラウドデザインパターン
Cloud DI
Cloud DI
タグ情報を使って、インスタンスへパラメータをインジェクト
ec2-describe-tagsでインスタンス内から取得
タグなのでコンソールから容易に変更可能
コンソールから確認しやすい
#!/bin/bash AWS_PRIVATE_KEY=/home/ec2-user/my-pk.pem AWS_CERTIFICATE=/home/ec2-user/my-cert.pem #EIP Tag name EIP_KEYNAME=EIP AWS_REGION=`curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/[a-z]$//'` INSTANCE_ID=`curl http://169.254.169.254/latest/meta-data/instance-id` ENDPOINT=https://ec2.${AWS_REGION}.amazonaws.com #get EIP from TAG EIP=`ec2-describe-tags -U ${ENDPOINT} -K ${AWS_PRIVATE_KEY} -C ${AWS_CERTIFICATE} -F "key=${EIP_KEYNAME}" -F "resource-id=${INSTANCE_ID}" | sed -e "s/.*${EIP_KEYNAME}//" | sed -e "s/[^.0-9]//g"` #associate EIP ec2assocaddr -U ${ENDPOINT} -K ${AWS_PRIVATE_KEY} -C ${AWS_CERTIFICATE} -i ${INSTANCE_ID} ${EIP}
CDPシナリオ[画像動画配信サイト]
このシナリオ
雲の写真を載せるブログサイト開始
はじめは個人的に開始
次第にサイトが大きく・・・
利用環境・ソフトウェア
Amazon Linux (64bit)
Movable Type 5.12 (MTOS)
Apache HTTP Server 2.2.21
MySQL 5.1.52
Perl 5.10.1
S3FS 1.61
雲の写真を載せるブログサイト開始
MovableType on EC2
Route53でDNSレコードを管理
スタティック
パブリッシング
インスタンス1台
動画、過去画像集を公開
過去画像集Zipや動画を公開 コメント欄経由ののユーザー要望
サイズが大きく、ダウンロード負荷の高いコンテンツの配信
必要なディスク容量は未知数
Web Storageパターン
容量の大きいデータを、S3に逃がすパターン
S3のDNS名をCNAME登録して利用
S3のWebサーバ機能
EC2に比べて安価
動画、過去画像集を公開
動画・過去画像集をS3へ
メインサイトから
リンクを作成
まさかの大人気サイト化
雲マニア御用達のサイトへ
Facebookから火がつく
アクセス増により、アクセス出来ない状況に
イワシ雲!
イワシ雲!
イワシ雲!
Direct Hostingパターン
HTML、画像、CSSなど静的コンテンツをすべてS3でホスティング
EC2はコンテンツ更新と、コメント投稿や動的なページだけで使用
ちなみに・・・
静的コンテンツだけしかないサイトであれば、S3+Route53でホスティングすると
データ保管料:1Gbyteあたり月約10円 データ転送料:1Gbyteあたり約16円 DNSサーバ:1ドメインあたり約50円 ->例えばデータ量1Gbyte、月間転送料10Gbyteのサイトなら約220円でホスティング可能 (1ページ100Kで10万PV)
しかもシステム管理不要
S3メインのシステムへ
配信のメインサイトとしてS3を使用
スタティックパブリッシング利用
S3FSでMTからファイルを配置
S3マウントソリューション
S3FS http://code.google.com/p/s3fs/
S3FS-C,S3FS-C(Cloudpack special) https://github.com/memorycraft/s3fs-cloudpack
S3Backer http://code.google.com/p/s3backer/
S3QL http://code.google.com/p/s3ql/
TntDriver(Windows) http://tntdrive.com/
Gladinet(Windows) http://gladinet.com/
まさかの海外展開
海外の雲マニアがサイトを発見
海外有名ニュースサイトへの掲載が決定
掲載までに海外からのアクセスへの対応が必要
Cache Distributionパターン
ユーザーに近い場所からの配信
世界各地のエッジサーバを利用し、オリジンサーバのコンテンツをキャッシング
Amazon CloudFrontを使用
よりよいレスポンスと負荷分散を実現
CloudFrontを利用した配信
3つのサブドメインを使用
www,data,mt
S3から配信するデータは、Contents Distributionパターンを適用
ブログコンテンツ
動画・画像集
コンテンツ管理・コメント投稿
デザイン推移
動画 人気 海外
CDPでAWSをもっと楽しく
ご清聴ありがとうございました @c9katayama