20120611 aws meister-reloaded-cloud-front-public

Post on 21-Jun-2015

4.456 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

RTMP (Flash) と HTTP / HTTPS

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

Adaptive Bitrate Streaming

Private Content

Programmatic Invalidation

業界標準のアクセスログ

AWS Management Console

全機能を制御できるAPI

主要な仕様

2

Amazon CloudFront

コミットメントなし

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

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

S3や、Webサーバ

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

FLV ファイルはS3上に配置

その他S3との密接な連携

ログやS3クライアント

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

ゲーム

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

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

写真共有

ウェブサイト一般

CloudFrontの利用例

4

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

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

FCバルセロナ

6

ケーススタディ

CloudFrontの利用メリット

• いつでも利用開始可能

• 価格

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

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

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

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

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

– Reserved Capacity

Reliable

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

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

• 多数の利用実績

• 99.9% SLA

価格

9

Dynamic Site Acceleration

10

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

• インタラクティブ

• パーソナライズ

• News • Weather • Sports • Social media • Advertising

11

Elastic Load Balancing

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

Amazon CloudFront static.mysite.com

12

Dynamic Content

Amazon EC2

Static Content

Amazon S3

Your Users

www.mysite.com

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!

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 経路のモニタリング

15

Multiple Cache Behaviors

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

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

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

16

Multiple Origin Servers

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

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

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

Amazon Confidential

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にする

ヘッダの利用が必須

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

CloudFrontはどう動いているのか

19

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月末)

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

Web

サーバ

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

CloudFront使用時のHTTP配信

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

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

CloudFrontの詳細

25

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

動的なコンテンツ

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

S3を使う場合

FLVファイルの配信

• Adobe Flash Media Server 3.5相当

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

静的ファイル

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

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

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

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

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

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

ログの形式

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

例:

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

ログファイル

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

0.0095USD / 1万 HTTP request

0.0130USD / 1万 HTTPS request

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

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

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

利用の注意点

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

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

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

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

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

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

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

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

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

Cache-Control: max-age=3600

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

最小時間は0秒

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

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

同時に3リクエストまで

1リクエストで1000URLまで

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

ストリーミング

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

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

HTTP配信

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

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

動画配信

アドビで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

ライブストリーミング

CloundFrontはContent Delivery Networkです

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

使ったぶんだけの支払い

コミットメントなし

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

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

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

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

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

CloudFrontに関するまとめ

Apacheでの

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

たとえばこんなの

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

# a2enmod headers

# vi httpd.conf

# /etc/init.d/apache2 reload

Cache-Controlヘッダをつける

mod_headers モジュール

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

デモ

CloudFrontを設定してみる

2つ目のオリジン追加

CloudFrontをはじめるにあたって

57

利用のメリット

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

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

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

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

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

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

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

Amazon Confidential

top related