20140906 jaws festa 2014 cloud front+route53

47
CloudFront + Route53 俺俺俺俺俺俺俺俺俺俺俺俺俺俺 俺 ~!~ 俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺 俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺 、! 俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺AWS俺俺俺俺俺俺俺俺俺俺俺俺Amazon CloudFront 俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺俺 )。 俺俺俺俺俺俺 俺俺俺俺俺俺俺俺俺俺俺俺俺俺 、!

Transcript of 20140906 jaws festa 2014 cloud front+route53

Page 1: 20140906 jaws festa 2014 cloud front+route53

CloudFront + Route53 ~俺たちエッジロケーションズ!~

サイト制作に関わる方にこそご参加頂きたいセッションです。

落ちる、待たせるウェブサイトとは今日でさよなら!

ウェブサイトやストリーミング配信が複雑で高額なシステムを使わずにすぐに構築できるAWSの

コンテンツ配信サービス(Amazon CloudFront)を使い始めるのに難しい知識は必要ありません。

さぁみんなで、俺たちエッジロケーションズ!

Page 2: 20140906 jaws festa 2014 cloud front+route53

2

自己紹介

渡部 卓央株式会社アフォーダンス 代表取締役

技術士(情報工学部門)

JAWS-UG 札幌 会長

@takuowatanabe

facebook.com/watanabetakuo

copyright Affordance Corp.

Page 3: 20140906 jaws festa 2014 cloud front+route53

3

CloudFront はじめに

copyright Affordance Corp.

Page 4: 20140906 jaws festa 2014 cloud front+route53

4

利用シーン

copyright Affordance Corp.

アクセス集中

テレビで取り上げられた

サイトダウン!!

Page 5: 20140906 jaws festa 2014 cloud front+route53

5

待たせる配信CDN を使用しないとき

copyright Affordance Corp.

Webサーバ

エンドユーザ

エンドユーザ

エンドユーザ

Page 6: 20140906 jaws festa 2014 cloud front+route53

6

待たせない配信CloudFront を使用したとき

copyright Affordance Corp.

エンドユーザ

エンドユーザ

エンドユーザ様々な IP アドレスが使用される

Page 7: 20140906 jaws festa 2014 cloud front+route53

7

CDN(Contents Delivery Network)

• ユーザからのアクセスを近いエッジサーバに誘導することで、ユーザへの配信を高速化

• エッジサーバでは、コンテンツのキャッシングを行い、オリジンサーバに負荷をかけず効率的に配信

copyright Affordance Corp.

エッジサーバユーザ オリジン

サーバ

(1) 最適なエッジにリクエスト

レスポンス向上 負荷軽減

(2) キャッシュを配信

(5) 取得したコンテンツを配信しキャッシュ

(3) エッジにキャッシュがなければオリジンにリクエスト

(4) エッジにコンテンツを配信

Page 8: 20140906 jaws festa 2014 cloud front+route53

8

CloudFront の動作

copyright Affordance Corp.

ユーザ

DNS サーバ

CloudFront DNS 地理情報

オリジンサーバ

CloudFront Edge

CloudFront Edge CloudFront

Edge

(1) CF の名前解決 xxx.cloudfront.net

(2) IP アドレス問い合わせ

(3) 最適な Edge アドレスの応答

(4) 最適な Edgeにアクセス (5) キャッシュがなけれ

ばオリジンから取得

Cloudfront.net DNS

Page 9: 20140906 jaws festa 2014 cloud front+route53

9

エッジロケーション

copyright Affordance Corp.

南米サンパウロ(ブラジル)リオデジャネイロ(ブラジル)

アメリカジョージア州アトランタバージニア州アッシュバーン( 3 )テキサス州ダラス / フォートワース( 2 )カリフォルニア州ヘイワードフロリダ州ジャクソンビルカリフォルニア州ロサンゼルス( 2 )フロリダ州マイアミニューヨーク州ニューヨーク( 3 )ニュージャージー州ニューアークカリフォルニア州パロアルトカリフォルニア州サンノゼワシントン州シアトルインディアナ州サウスベンドミズーリ州セントルイス

世界 52 ヶ所2014 年 7 月現

ヨーロッパアムステルダム(オランダ)( 2 )ダブリン(アイルランド)フランクフルト(ドイツ)( 3 )ロンドン(英国)( 3 )マドリード(スペイン)マルセイユ(フランス)ミラノ(イタリア)パリ(フランス)( 2 )ストックホルム(スウェーデン)ワルシャワ(ポーランド)

アジアチェンナイ(インド)香港(中国)( 2 )ムンバイ(インド)マニラ(フィリピン)大阪(日本)ソウル(韓国)シンガポール( 2 )台北(台湾)東京(日本)( 2 )

オーストラリアシドニー(オーストラリア)メルボルン(オーストラリア)

Page 10: 20140906 jaws festa 2014 cloud front+route53

10

CloudFront の特徴

• 高性能な分散配信• 世界 52 拠点のエッジサーバ  ※ 2014 年 7 月現在

• 高いパフォーマンス• 業界トップクラスのパフォーマンス

測定結果• レイテンシにもとづいてエンドユー

ザを誘導• 信頼性

• 単一障害点なし• SLA 99.9% 以上

• キャパシティプランからの解放• 予測不可能なスパイクアクセスも

CloudFront がカバー

• 完全従量課金• 初期費用なし• 安価かつスポットも利用可能

• 設定が容易で即時利用可能• GUI からの設定で 15 分程度でサー

ビス利用開始可能

copyright Affordance Corp.

Page 11: 20140906 jaws festa 2014 cloud front+route53

11

料金

copyright Affordance Corp.

(1) データ転送アウト

(2) リクエスト

(3) 専用 IP 独自 SSL 証明書(4) オリジンへ

のデータ転送アウト

オンプレ

CloudFront

(1) データ転送アウト (GB 単位 )   米国

ヨーロッパ

香港、フィリピン、韓国、シンガポールおよび台湾

日本 南米オーストラリア

インド

最初の 10 TB/ 月 $0.12 $0.12 $0.19 $0.19 $0.25 $0.19 $0.17

次の 40 TB/ 月 $0.08 $0.08 $0.14 $0.14 $0.20 $0.14 $0.13

次の 100 TB/ 月 $0.06 $0.06 $0.12 $0.12 $0.18 $0.12 $0.11

次の 350 TB/ 月 $0.04 $0.04 $0.10 $0.10 $0.16 $0.10 $0.10

次の 524 TB/ 月 $0.03 $0.03 $0.08 $0.08 $0.14 $0.10 お問合せ

次の 4 PB/ 月 $0.03 $0.03 $0.07 $0.07 $0.13 $0.09 お問合せ

5 PB/ 月以上 $0.02 $0.02 $0.06 $0.06 $0.13 $0.09 お問合せ

(2) リクエスト(10,000 件あた

り )  米国

ヨーロッパ

香港、フィリピン、韓国、シンガポールおよび台湾

日本 南米オーストラリア

インド

HTTP リクエスト $0.0075 $0.0090 $0.0090 $0.009  $0.0160  $0.009  $0.0090

HTTPS リクエスト

$0.0100 $0.0120 $0.0120 $0.0120 $0.0220  $0.0125 $0.012 

(4)オリジンへのデータ転送アウト

(GB単位 ) 

米国ヨーロッパ

香港、フィリピン、韓国、シンガポールおよび台湾

日本 南米オーストラリア

インド

すべてのデータ転送

$0.02 $0.02 $0.06 $0.06 $0.13 $0.10 $0.16

(3) 専用 IP 独自 SSL 証明書 Desitribution に関連付けられた証明書 1 通につき $600/ 月

(5) 無効リクエスト1000 ファイルまで 追加料金なし1001 ファイル以上 $0.005/1 ファイル

2014 年 7 月現在

Page 12: 20140906 jaws festa 2014 cloud front+route53

12

CloudFront 代表的な機能

copyright Affordance Corp.

Page 13: 20140906 jaws festa 2014 cloud front+route53

13

キャッシュコントロール

• キャッシュ時間• デフォルト 24 時間キャッシュ

• 最短 1 時間キャッシュ

• 単一ファイルの最大サイズは 20GB まで

• キャッシュ有無や期間指定• HTTP ヘッダ( Cache-Control 、 Expires )と Minimum TTL を指定

copyright Affordance Corp.

CloudFront Minimum TTL設定

Minimum TTL=0(デフォルト ) Minimum TTL>0

オリジンHTTPヘッダ

Cache-Control max-age

指定された max-age 期間キャッシュ 指定された max-age もしくは Minimum TTL の長い方の期間キャッシュ

Cache-Control 指定なし

24 時間キャッシュ 24 時間もしくは Minimum TTL の長い方の期間キャッシュ

Cache-Control max-age と s-maxage

指定された s-maxage 期間エッジにキャッシュされ、 max-age 期間ブラウザにキャッシュ

指定された s-maxage もしくは Minimum TTLの長い方の期間エッジにキャッシュされ、 max-age 期間ブラウザにキャッシュ

Expires Expires で指定された日付までキャッシュ Expires で指定された日付と Minimum TTL の期間を加算した期間キャッシュ

Cache-Control no-cache,   no-store

キャッシュされない Minimum TTL の期間キャッシュ

Page 14: 20140906 jaws festa 2014 cloud front+route53

15

マルチオリジン

• Behaviors の Path Pattern( 正規表現 ) を利用したオリジンの振り分け• 記述方法/  *: 0 もしくはそれ以上の文字列   ?: 1文字

• オリジンは Distributionごとに 10個まで登録可能

• 振り分けルール( Behaviors )も Distributionごとに 10個まで登録可能

• Behaviorsごとにキャッシュポリシーやオリジンへのアクセスルールが指定可能

copyright Affordance Corp.Web サーバー

クライアント

CloudFront

S3

EC2

/image/

/site1/

/site2/

Page 15: 20140906 jaws festa 2014 cloud front+route53

16

カスタムエラー

• HTTP ステータスコードごとにエラーレスポンスを作成可能• エラーのキャッシュ時間(オリジンへ

の再取得要求時間)が指定可能• 応答ページのステータスコード

を変更可能

HTTP Status Code

information

Client Error

400 Bad Request

403 Forbidden

404 Not Found

405 Method Not Allowed

414 Request-URI Too Long

Server Error

500 Internal Server Error

501 Not Implemented

502 Bad Gateway

503 Service Unavaliable

504 Gateway Timeout

copyright Affordance Corp.

Page 16: 20140906 jaws festa 2014 cloud front+route53

17

ロギング

• 任意の S3 Bucket に出力可能• 出力先Bucket のアクセス権設定( FULL_CONTROL )に注意

• アクセスログの出力はタイムラグあり

• ログを取得しないことも可能

• アクセスログ作成の追加料金なし。 S3 の料金のみ必要

• ログファイルの形式• 1 つのエンドユーザーリスエストの詳細を 1 エントリとして記録

• ウェブディストリビューション、 RTMP ディストリビューションのログファイルは別の内容

• W3C拡張ログファイル形式で出力

• タブ区切りの値が含まれる

• レコードは時系列というわけではない

• 標準外の文字はエンコードされる

copyright Affordance Corp.

Page 17: 20140906 jaws festa 2014 cloud front+route53

18

Route53 はじめに

copyright Affordance Corp.

Page 18: 20140906 jaws festa 2014 cloud front+route53

19

DNS 問い合わせRoute53 を使用しないとき

copyright Affordance Corp.

DNSサーバ

エンドユーザ

エンドユーザ

エンドユーザ

エンドユーザ

Page 19: 20140906 jaws festa 2014 cloud front+route53

20

DNS 問い合わせRoute53 を使用したとき

copyright Affordance Corp.

エンドユーザ

エンドユーザ

エンドユーザ

Anycast IP アドレスが使用される同じ IP アドレスでも近いサーバにつながる

エンドユーザ

Page 20: 20140906 jaws festa 2014 cloud front+route53

21

エッジロケーション

copyright Affordance Corp.

南米サンパウロ(ブラジル)リオデジャネイロ(ブラジル)

アメリカジョージア州アトランタバージニア州アッシュバーン( 3 )テキサス州ダラス / フォートワース( 2 )カリフォルニア州ヘイワードフロリダ州ジャクソンビルカリフォルニア州ロサンゼルス( 2 )フロリダ州マイアミニューヨーク州ニューヨーク( 3 )ニュージャージー州ニューアークカリフォルニア州パロアルトカリフォルニア州サンノゼワシントン州シアトルインディアナ州サウスベンドミズーリ州セントルイス

世界 52 ヶ所2014 年 7 月現

ヨーロッパアムステルダム(オランダ)( 2 )ダブリン(アイルランド)フランクフルト(ドイツ)( 3 )ロンドン(英国)( 3 )マドリード(スペイン)マルセイユ(フランス)ミラノ(イタリア)パリ(フランス)( 2 )ストックホルム(スウェーデン)ワルシャワ(ポーランド)

アジアチェンナイ(インド)香港(中国)( 2 )ムンバイ(インド)マニラ(フィリピン)大阪(日本)ソウル(韓国)シンガポール( 2 )台北(台湾)東京(日本)( 2 )

オーストラリアシドニー(オーストラリア)メルボルン(オーストラリア)

Page 21: 20140906 jaws festa 2014 cloud front+route53

22

Route53 の特徴

• 高可用性および高信頼性• SLA 100%• 冗長化されたロケーション• 世界 52 拠点のエッジサーバ 

※ 2014 年 7 月現在• 高速伝搬

• 全世界で動作する Anycast ネットワーク

• 変更の高速伝搬• AWS サービスとの統合

• ELB エイリアス• CloudFront ディストリビューション• S3 ウェブサイトバケットへのマッピ

ング• レイテンシベースルーティング

• 安価• クエリ数に対応した料金

• 柔軟性• 加重ランドロビン

copyright Affordance Corp.

Page 22: 20140906 jaws festa 2014 cloud front+route53

23

サポートするレコードタイプ

A Address record アドレスレコード

AAAA IPv6 address record IPv6 アドレスレコード

CNAME Canonical name record 正規名レコード

MX Mail exchange record メール交換レコード

NS Name server record ネームサーバーレコード

PTR Pointer record ポインターレコード

SOA Start of authority record 管理情報の始点レコード

SPF Sender policy framework センダーポリシーフレームワーク

SRV Service locator サービスロケーター

TXT Text record テキストレコード

copyright Affordance Corp.

エイリアスレコード ELB マッピング、 CloudFront ディストリビューションマッピング、 S3 バケットマッピング

Page 23: 20140906 jaws festa 2014 cloud front+route53

24

料金

copyright Affordance Corp.

(1) ホストゾーンあたり

最初の 25 ホストゾーン $0.50/ ホストゾーン

それを超えるホストゾーン $0.10/ ホストゾーン

(2) クエリ 最初の 10 億クエリまで 最初の 10 億クエリを超える

標準的クエリ $0.500/100 万クエリ $0.250/100 万クエリ

レイテンシーベースルーティングクエリ $0.750/100 万クエリ $0.375/100 万クエリ

エイリアスレコードへのクエリ 無料

(3)DNS フェイルオーバーのヘルスチェック

基本ヘルスチェック

AWS 内部エンドポイント $0.500/ ヘルスチェック 1 件

AWS 以外のエンドポイント $0.750/ ヘルスチェック 1 件

HTTPS 、文字列マッチング、または短インターバルオプション

AWS 内部エンドポイント $1.00/ オプション機能 1件

AWS 以外のエンドポイント $2.00/ オプション機能 1件

2014 年 7 月現在

Page 24: 20140906 jaws festa 2014 cloud front+route53

25

落ちない待たせないウェブサイトを作ろう!

copyright Affordance Corp.

Page 25: 20140906 jaws festa 2014 cloud front+route53

26

ウェブサイトを作る

copyright Affordance Corp.

Page 26: 20140906 jaws festa 2014 cloud front+route53

27

パターン1:ウェブサイトを作る

copyright Affordance Corp.

Web サーバークライアント

CloudFront

静的ページ中心のWebサイトの例• POST対応により簡易的な動的ページは CloudFront経由で配

ページ全体を簡単に高速化

Route53

Page 27: 20140906 jaws festa 2014 cloud front+route53

28

パターン2:ウェブサイトを作る

copyright Affordance Corp.

動的ページ中心のWebサイトの例• 静的ファイルのパスを CloudFront経由に変更• Web サーバーの機能 (mod_rewrite など ) で静的ファイルの

パスを CloudFront経由に強制書き換え

cssjs jpg

Web サーバークライアント

</>

CloudFront

ページの大半を占める静的ファイルを高速配信

Route53

Page 28: 20140906 jaws festa 2014 cloud front+route53

29

パターン3:ウェブサイトを作る

copyright Affordance Corp.

動的ページ中心に大量の静的コンテンツを扱うのWebサイトの例• S3 と連携することで、手間のかからないスケーラブルなコン

テンツ配信インフラを実現

cssjs jpg

Web サーバー

クライアント

CloudFront

高速化とスケーラビリティの確保

画像配信サーバー S3

mpg mp

3

OR

</>

Route53

Page 29: 20140906 jaws festa 2014 cloud front+route53

30

パターン4:ウェブサイトを作る

copyright Affordance Corp.

パスによりオリジンを変更するWebサイトの例• 静的コンテンツは S3 と連携し、動的コンテンツの site1 は

EC2 、 site2 はオンプレと連携することで、負荷分散を実現• マルチオリジン機能を使用

Web サーバー

クライアント

CloudFront

高速化と負荷分散

S3

EC2

/image/

/site1/

/site2/

Route53

Page 30: 20140906 jaws festa 2014 cloud front+route53

31

ストリーミング配信しよう!

copyright Affordance Corp.

Page 31: 20140906 jaws festa 2014 cloud front+route53

32

CloudFront を活用したストリーミング配信

• ストリーミング配信を効率的に配信可能• 配信規模に応じてネットワーク帯域を気にしなくてよい

• 小規模配信から大規模配信まで柔軟に対応

• 対応可能な配信方式• S3 と組み合わせたオンデマンドストリーミング配信

• HTTP ベースのストリーミング配信(オンデマンド・ライブ)

copyright Affordance Corp.

Page 32: 20140906 jaws festa 2014 cloud front+route53

33

S3 と組み合わせたオンデマンドストリーミング配信

• Distribution 作成時に「 Streaming」を指定

• CloudFront にセットアップされている Flash Media Server(FMS) を利用して配信• RTMP 、 RTMPE 、 RTMPT 、 RTMPTE プロトコルをサポート

• CloudFront 上の clossdomain.xml はすべてのドメインからのアクセスを許可

• ストリーミング配信のため、クライアント側に映像ファイルが残らない

• コンテンツは S3 に格納されている必要がある

copyright Affordance Corp.

クライアントFlash Player

CloudFront

S3

RTMP

Player からのリクエスト URLrtmp://xxx.cloudfront.net/cfx/st/xxx.fv

Page 33: 20140906 jaws festa 2014 cloud front+route53

34

HTTP ベースのストリーミング配信

• Distribution 作成時に「Download」を指定

• 複数の配信方式をサポート• HTTP Live Streaming(HLS) 、 HTTP Dynamic Streaming(HDS) 、 IIS

Smooth Streaming 、 Progressive Download などの配信方式

• オンデマンド、ライブ双方で利用可能

• マルチデバイスへの配信が可能• 自前でオリジンのストリーミングサーバを構築しなくてよい

• CloudFormation ライブ配信環境テンプレートあり

copyright Affordance Corp.クライアント

CloudFront

S3

HTTP HTTPEC2

Page 34: 20140906 jaws festa 2014 cloud front+route53

35

CloudFront作ってみよう

( Web サイトを CDN 化する)

copyright Affordance Corp.

Page 35: 20140906 jaws festa 2014 cloud front+route53

36

ステップ1Distribution 作成開始

copyright Affordance Corp.

Page 36: 20140906 jaws festa 2014 cloud front+route53

37

ステップ2ディストリビューションの種類選択

copyright Affordance Corp.

Page 37: 20140906 jaws festa 2014 cloud front+route53

38

ステップ3ディストリビューション設定

copyright Affordance Corp.

Page 38: 20140906 jaws festa 2014 cloud front+route53

39

ステップ3-1(設定詳細)オリジンサーバー設定

copyright Affordance Corp.

Page 39: 20140906 jaws festa 2014 cloud front+route53

40

ステップ3-2(詳細設定)キャッシュ設定

copyright Affordance Corp.

Page 40: 20140906 jaws festa 2014 cloud front+route53

41

ステップ3-3(詳細設定)ディストリビューション設定

copyright Affordance Corp.

Page 41: 20140906 jaws festa 2014 cloud front+route53

42

ステップ3-4(詳細設定)ログ設定

copyright Affordance Corp.

Page 42: 20140906 jaws festa 2014 cloud front+route53

43

ステップ4ディストリビューション配備

copyright Affordance Corp.

約 10 分

Page 43: 20140906 jaws festa 2014 cloud front+route53

44

ステップ5ディストリビューション詳細情報

copyright Affordance Corp.

Page 44: 20140906 jaws festa 2014 cloud front+route53

45

ステップ6CNAME 設定

copyright Affordance Corp.

Page 45: 20140906 jaws festa 2014 cloud front+route53

46

パフォーマンス検証サイト

copyright Affordance Corp.

Page 46: 20140906 jaws festa 2014 cloud front+route53

47

パフォーマンス測定1

copyright Affordance Corp.

■ CloudFront 無し

■ CloudFront 有り

Page 47: 20140906 jaws festa 2014 cloud front+route53

48copyright Affordance Corp.

CloudFront は早い、安い、簡単。

さあ、始めてみましょう!