57
AWSマイスターシリーズ ~CloudFront ~ 2012611荒木 靖宏 (@ar1 ) プリンシパルソリューションアーキテクト

20120611 aws meister-reloaded-cloud-front-public

Embed Size (px)

Citation preview

Page 1: 20120611 aws meister-reloaded-cloud-front-public

AWSマイスターシリーズ ~CloudFront ~

2012年6月11日 荒木 靖宏 (@ar1 ) プリンシパルソリューションアーキテクト

Page 2: 20120611 aws meister-reloaded-cloud-front-public

RTMP (Flash) と HTTP / HTTPS

コンテンツキャッシュ期限を0にも

Adaptive Bitrate Streaming

Private Content

Programmatic Invalidation

業界標準のアクセスログ

AWS Management Console

全機能を制御できるAPI

主要な仕様

2

Amazon CloudFront

Page 3: 20120611 aws meister-reloaded-cloud-front-public

コミットメントなし

バンド幅、転送量、 期間など

オリジナルコンテンツにはHTTPでアクセス

S3や、Webサーバ

FLVストリーミングも付加料金なし

FLV ファイルはS3上に配置

その他S3との密接な連携

ログやS3クライアント

他社と比べたときのCloudFrontの特徴

Page 4: 20120611 aws meister-reloaded-cloud-front-public

ゲーム

ソフトウェアダウンロード

メディア配信 – オンデマンド & Live

写真共有

ウェブサイト一般

CloudFrontの利用例

4

Page 6: 20120611 aws meister-reloaded-cloud-front-public

問題点: FCバルセロナは試合中継の日のピークト

ラフィックの対応に多くの時間とコストをかけすぎていた 解決策: AWSの伸縮性(Elastic) と従量課金モデルにより解決 FCバルセロナのウェブサイト、ECサイトおよびモバイル向けアプリケーションをEC2, CloudFront, RDS, Route 53などで構築・運用 ビジネス上の効果: 試合日の対応の簡素化及び効率化 商品リリースまでの時間を半分に削減

FCバルセロナ

6

ケーススタディ

Page 7: 20120611 aws meister-reloaded-cloud-front-public

CloudFrontの利用メリット

• いつでも利用開始可能

• 価格

– CloudFrontの転送課金はEC2向けのネットワーク課金より安価

–実際の転送量とリクエスト数に応じた支払い

– エッジロケーション毎に料金が異なる

• 日本は0.201米ドル/GBから

• コミットしていただければディスカウントあり

– Reserved Capacity

Page 8: 20120611 aws meister-reloaded-cloud-front-public

Reliable

• それぞれの地域内で複数のロケーションで冗長化

• 24x7ではたらく専任のチーム

• 多数の利用実績

• 99.9% SLA

Page 9: 20120611 aws meister-reloaded-cloud-front-public

価格

9

Page 10: 20120611 aws meister-reloaded-cloud-front-public

Dynamic Site Acceleration

10

Page 11: 20120611 aws meister-reloaded-cloud-front-public

動的コンテンツ(dynamic content)とは?

• インタラクティブ

• パーソナライズ

• News • Weather • Sports • Social media • Advertising

11

Page 12: 20120611 aws meister-reloaded-cloud-front-public

Elastic Load Balancing

動的サイトにおけるCloudFront利用は一部に限られていた

Amazon CloudFront static.mysite.com

12

Dynamic Content

Amazon EC2

Static Content

Amazon S3

Your Users

www.mysite.com

Page 13: 20120611 aws meister-reloaded-cloud-front-public

13

Dynamic Site 機能 • Multiple Cache Behaviors NEW!

• Multiple Origin Servers NEW!

• Origin Connection Protocol

• Viewer Connection Protocol

• Minimum Expiration Period NEW!

• Query String Parameters NEW!

• Private Content

• Console Support NEW!

Page 14: 20120611 aws meister-reloaded-cloud-front-public

Elastic Load Balancing

Amazon CloudFront www.mysite.com

今日からの動的サイトの構築

14

Dynamic Content

Amazon EC2

Static Content

Amazon S3

Your Users

ユーザはまず CloudFront へ 最低レイテンシへの誘導 TCP最適化 Persistent Connections

CloudFront から Origin 動的/静的のコンテンツわけ

オリジンへのPersistent connections 経路のモニタリング

Page 15: 20120611 aws meister-reloaded-cloud-front-public

15

Multiple Cache Behaviors

• Query Stringsをオリジンに飛ばすかどうかなどを制御

• 登録できる制御パターンは10まで。デフォルト値の設定も必要。

• 最初にマッチしたものが使われる

Page 16: 20120611 aws meister-reloaded-cloud-front-public

16

Multiple Origin Servers

• 複数のオリジンが使える。

• S3 bucket, an ELB, an EC2 instance, a custom origin, etc.

• 10オリジンまで. それぞれ”Origin ID”が付与される

Amazon Confidential

Page 17: 20120611 aws meister-reloaded-cloud-front-public

17

Minimum Expiration Period

• minTTL はAPIとコンソールから

• minTTL は0秒にも設定可能

• 使うヘッダ

• If-Modified-Since (クライアントから)

• Cache-Control: no-cache | s-max-age=0 | max-age=0

• Expires: <now or in the past>

• Pragma: no-cache (not in the spec, but for HTTP 1.0 backward

compatibility)

• 一切cacheしないためには、Cache-Control: no-store | private、さらにminimun TTLを0にする

ヘッダの利用が必須

Page 18: 20120611 aws meister-reloaded-cloud-front-public

18

Query String Parameters

• オプション機能として提供。有効ににすると、Query Stringもすべて含んだfull URLがオリジンに送られる。

• ロギング機能を有効にしていれば、Query Stringは記録される。

• 注意事項

• Query Stringの順番、大文字小文字に注意

• Private Content機能を使うときにCloudFrontで予約

• Expires, Policy, Signature, and Key-Pair-Id are reserved query

parameters

Page 19: 20120611 aws meister-reloaded-cloud-front-public

CloudFrontはどう動いているのか

19

Page 20: 20120611 aws meister-reloaded-cloud-front-public

CloudFront’s Global Presence

20

Europe

Amsterdam

Dublin

Frankfurt (2)

London (2)

Milan (2)

Paris

Stockholm

Asia

Hong Kong

Osaka

Singapore (2)

Tokyo

South America

Sao Paulo

North America

Ashburn, VA (2)

Dallas, TX

Jacksonville, FL

Los Angeles, CA (2)

Miami, FL

Newark, NJ

New York, NY (2)

Palo Alto, CA

Seattle, WA

San Jose, CA

South Bend, IN

St. Louis, MO

Amazon Confidential

30のエッジロケーション(2012年5月末)

Page 21: 20120611 aws meister-reloaded-cloud-front-public

CDNを使用しないときの動作

Web

サーバ

Page 22: 20120611 aws meister-reloaded-cloud-front-public

www.example.comにどうアクセスする?

1. クライアントは使用しているDNS解決用サーバに、www.example.comのアドレスを問いあわせる

2. www.example.comがCNAMEレコードならば、さらにIPアドレス(Aレコード)が得られるまで問いあわせる

3. IPアドレスに向けてHTTPでアクセスする

DNSとHTTP

ユーザ local DNS

1

2

3

example.com DNS

Page 23: 20120611 aws meister-reloaded-cloud-front-public

CloudFront使用時のHTTP配信

様々なIPアドレスが使用される

Page 24: 20120611 aws meister-reloaded-cloud-front-public

CloudFront

1. クライアントは使用しているDNS解決用サーバに、cloudfront.example.comのアドレスを問いあわせる

2. cloudfront.example.comはXXXX.cloudfront.netのCNAME 3. XXXX.cloudfront.netのIPアドレスを問いあわせ。 4. cloudfront.netのDNSが地理情報に応じたCloudFrontのIPアドレスを返す 5. CloudFrontのIPアドレスに向けてHTTPでアクセスする

DNSとHTTP(CloudFront使用時)

ユーザ local DNS

1 2

3

example.com DNS

cloudfront.net DNS

地理情報

4

5

Page 25: 20120611 aws meister-reloaded-cloud-front-public

CloudFrontの詳細

25

Page 26: 20120611 aws meister-reloaded-cloud-front-public

EC2など、自分で運用しているサーバを使う場合

動的なコンテンツ

Ajaxなどクロスドメイン通信が必要なもの

S3を使う場合

FLVファイルの配信

• Adobe Flash Media Server 3.5相当

• rtmp://[domain_name]/cfx/st/[filename]

静的ファイル

• 画像、テキスト、CSSファイル等

オリジンサーバの使いわけ

Page 27: 20120611 aws meister-reloaded-cloud-front-public

全てのログファイルはS3に保存

クライアントからのアクセス記録は全エッジロケーションから24時間以内に収集

オリジンフェッチを使う場合は、S3のバケットを作成する

ログをとらないことも可能

ログの形式

1時間毎もしくは、50MB毎の分割

例:

• mylogs.s3.amazonaws.com/myprefix/EMLARXS993KSTG8.2009-03-17-20.RT4KCN4SGK9.gz

ログファイル

Page 28: 20120611 aws meister-reloaded-cloud-front-public

課金はトラフィック量とリクエスト数にかかります

0.0095USD / 1万 HTTP request

0.0130USD / 1万 HTTPS request

特定のエッジロケーションだけ使うようにはできない。

エンドユーザの位置次第です

オリジンフェッチは、それぞれのエッジロケーションから個別にアクセスします

利用の注意点

Page 29: 20120611 aws meister-reloaded-cloud-front-public

CNAMEはCloudFrontの設定時に設定したものと一致する必要がある

一致しない場合はinvalidとして処理される

カスタムドメイン使用上の注意(1)

Page 30: 20120611 aws meister-reloaded-cloud-front-public

HTTPSの場合はカスタムドメインを使用できない

無理に使うと警告されます

カスタムドメイン使用上の注意(2)

Page 31: 20120611 aws meister-reloaded-cloud-front-public

Route53を使った場合のドメイン名だけのCloudFrontは指定できない。

カスタムドメイン使用上の注意(3)

Page 32: 20120611 aws meister-reloaded-cloud-front-public

Cache-Controlヘッダ、Expiresヘッダを使用

Cache-Control: max-age=3600

Expires: Tue, 05 Oct 2011 21:00:00 GMT

最小時間は0秒

頻繁に更新する場合には、URL(ファイル)名変更を推奨

ファイルの破棄リクエスト

同時に3リクエストまで

1リクエストで1000URLまで

キャッシュの制御 ヘッダでの制御が必須

Page 33: 20120611 aws meister-reloaded-cloud-front-public

ストリーミング

エンドユーザが視聴後にファイルが残らない

部分再生をした場合には、再生部分のみ配送(=低料金)

HTTP配信

オフライン再生などのために、ローカルコピーを保存してもらいたいときに使用する

部分再生の場合であっても通常はファイル全体が配送される

動画配信

Page 34: 20120611 aws meister-reloaded-cloud-front-public

アドビでFMS on AWSを購入

http://www.adobe.com/go/learn_fms_aws_order_en.

https://s3.amazonaws.com/cloudfront-live-jp/live-http-streaming-using-cloudfront.txt

ライブストリーミング

Page 35: 20120611 aws meister-reloaded-cloud-front-public

CloundFrontはContent Delivery Networkです

Web(HTTP,HTTPS), Flash streaming (RTMP)

使ったぶんだけの支払い

コミットメントなし

オンラインだけでいつでも始められます

オリジンサーバは選択可能

Amazon S3 (Flash streamingの場合は必須)

カスタマオリジンサーバはHTTP(S)が届けばどこでもよい

エッジロケーションは30箇所以上

CloudFrontに関するまとめ

Page 36: 20120611 aws meister-reloaded-cloud-front-public

Apacheでの

動的ページを設定してみる

Page 37: 20120611 aws meister-reloaded-cloud-front-public

たとえばこんなの

Page 38: 20120611 aws meister-reloaded-cloud-front-public

http://sp1.cedec.araki.net/smokeping/images/WorldRegions/NRT_last_10800.png

Page 39: 20120611 aws meister-reloaded-cloud-front-public

# a2enmod headers

# vi httpd.conf

# /etc/init.d/apache2 reload

Cache-Controlヘッダをつける

mod_headers モジュール

mod_expires モジュール等おすきなものでどうぞ

Page 40: 20120611 aws meister-reloaded-cloud-front-public
Page 41: 20120611 aws meister-reloaded-cloud-front-public
Page 42: 20120611 aws meister-reloaded-cloud-front-public

デモ

Page 43: 20120611 aws meister-reloaded-cloud-front-public

CloudFrontを設定してみる

Page 44: 20120611 aws meister-reloaded-cloud-front-public
Page 45: 20120611 aws meister-reloaded-cloud-front-public
Page 46: 20120611 aws meister-reloaded-cloud-front-public
Page 47: 20120611 aws meister-reloaded-cloud-front-public
Page 48: 20120611 aws meister-reloaded-cloud-front-public
Page 49: 20120611 aws meister-reloaded-cloud-front-public
Page 50: 20120611 aws meister-reloaded-cloud-front-public
Page 51: 20120611 aws meister-reloaded-cloud-front-public
Page 52: 20120611 aws meister-reloaded-cloud-front-public

2つ目のオリジン追加

Page 53: 20120611 aws meister-reloaded-cloud-front-public
Page 54: 20120611 aws meister-reloaded-cloud-front-public
Page 55: 20120611 aws meister-reloaded-cloud-front-public
Page 56: 20120611 aws meister-reloaded-cloud-front-public
Page 57: 20120611 aws meister-reloaded-cloud-front-public

CloudFrontをはじめるにあたって

57

利用のメリット

• 低レイテンシ レイテンシにもとづいてエンドユーザを誘導

• 広帯域 ストリーミングメディアや大ファイルダウンロード

• リライアブル 単一障害点なし。SLAあり。

• スケーラブル 大規模な利用でも世界中のネットワークが利用可能

• グローバル 30のエッジロケーション

• Cost-effective つかったぶんのお支払い。最低利用額なし。コミットなし。

• 簡単 セルフサービスで開始可能。Webコンソール、サードパーティツール、SDKあり。

Amazon Confidential