23
AWS Cloud Design Pattern -コンテンツ配信編-

CDP Night #1 静的コンテンツ配信編

Embed Size (px)

DESCRIPTION

2012年4月13日に行なったCDP Night #1の資料です。MovableTypeを使用した静的コンテンツの配信パターンです。

Citation preview

Page 1: CDP Night #1 静的コンテンツ配信編

AWS Cloud Design Pattern

-コンテンツ配信編-

Page 2: CDP Night #1 静的コンテンツ配信編

Twitterタグ: #jawsug #awscdp

Page 3: CDP Night #1 静的コンテンツ配信編

自己紹介

名前

片山暁雄

所属

アマゾンデータサービスジャパン

ID

@c9katayama

好きなAWSサービス

Amazon Simple Workflow

好きなAWSクラウドデザインパターン

Cloud DI

Page 4: CDP Night #1 静的コンテンツ配信編

Cloud DI

タグ情報を使って、インスタンスへパラメータをインジェクト

ec2-describe-tagsでインスタンス内から取得

タグなのでコンソールから容易に変更可能

コンソールから確認しやすい

Page 5: CDP Night #1 静的コンテンツ配信編

#!/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}

Page 6: CDP Night #1 静的コンテンツ配信編

CDPシナリオ[画像動画配信サイト]

Page 7: CDP Night #1 静的コンテンツ配信編

このシナリオ

雲の写真を載せるブログサイト開始

はじめは個人的に開始

次第にサイトが大きく・・・

Page 8: CDP Night #1 静的コンテンツ配信編

利用環境・ソフトウェア

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

Page 9: CDP Night #1 静的コンテンツ配信編

雲の写真を載せるブログサイト開始

MovableType on EC2

Route53でDNSレコードを管理

スタティック

パブリッシング

インスタンス1台

Page 10: CDP Night #1 静的コンテンツ配信編

動画、過去画像集を公開

過去画像集Zipや動画を公開 コメント欄経由ののユーザー要望

サイズが大きく、ダウンロード負荷の高いコンテンツの配信

必要なディスク容量は未知数

Page 11: CDP Night #1 静的コンテンツ配信編

Web Storageパターン

容量の大きいデータを、S3に逃がすパターン

S3のDNS名をCNAME登録して利用

S3のWebサーバ機能

EC2に比べて安価

Page 12: CDP Night #1 静的コンテンツ配信編

動画、過去画像集を公開

動画・過去画像集をS3へ

メインサイトから

リンクを作成

Page 13: CDP Night #1 静的コンテンツ配信編

まさかの大人気サイト化

雲マニア御用達のサイトへ

Facebookから火がつく

アクセス増により、アクセス出来ない状況に

イワシ雲!

イワシ雲!

イワシ雲!

Page 14: CDP Night #1 静的コンテンツ配信編

Direct Hostingパターン

HTML、画像、CSSなど静的コンテンツをすべてS3でホスティング

EC2はコンテンツ更新と、コメント投稿や動的なページだけで使用

Page 15: CDP Night #1 静的コンテンツ配信編

ちなみに・・・

静的コンテンツだけしかないサイトであれば、S3+Route53でホスティングすると

データ保管料:1Gbyteあたり月約10円 データ転送料:1Gbyteあたり約16円 DNSサーバ:1ドメインあたり約50円 ->例えばデータ量1Gbyte、月間転送料10Gbyteのサイトなら約220円でホスティング可能 (1ページ100Kで10万PV)

しかもシステム管理不要

Page 16: CDP Night #1 静的コンテンツ配信編

S3メインのシステムへ

配信のメインサイトとしてS3を使用

スタティックパブリッシング利用

S3FSでMTからファイルを配置

Page 17: CDP Night #1 静的コンテンツ配信編

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/

Page 18: CDP Night #1 静的コンテンツ配信編

まさかの海外展開

海外の雲マニアがサイトを発見

海外有名ニュースサイトへの掲載が決定

掲載までに海外からのアクセスへの対応が必要

Page 19: CDP Night #1 静的コンテンツ配信編

Cache Distributionパターン

ユーザーに近い場所からの配信

世界各地のエッジサーバを利用し、オリジンサーバのコンテンツをキャッシング

Amazon CloudFrontを使用

よりよいレスポンスと負荷分散を実現

Page 20: CDP Night #1 静的コンテンツ配信編

CloudFrontを利用した配信

3つのサブドメインを使用

www,data,mt

S3から配信するデータは、Contents Distributionパターンを適用

ブログコンテンツ

動画・画像集

コンテンツ管理・コメント投稿

Page 21: CDP Night #1 静的コンテンツ配信編

デザイン推移

動画 人気 海外

Page 22: CDP Night #1 静的コンテンツ配信編

CDPでAWSをもっと楽しく

Page 23: CDP Night #1 静的コンテンツ配信編

ご清聴ありがとうございました @c9katayama