20140906 jaws festa 2014 cloud front+route53
-
Upload
takuo-watanabe -
Category
Internet
-
view
277 -
download
6
Transcript of 20140906 jaws festa 2014 cloud front+route53
CloudFront + Route53 ~俺たちエッジロケーションズ!~
サイト制作に関わる方にこそご参加頂きたいセッションです。
落ちる、待たせるウェブサイトとは今日でさよなら!
ウェブサイトやストリーミング配信が複雑で高額なシステムを使わずにすぐに構築できるAWSの
コンテンツ配信サービス(Amazon CloudFront)を使い始めるのに難しい知識は必要ありません。
さぁみんなで、俺たちエッジロケーションズ!
2
自己紹介
渡部 卓央株式会社アフォーダンス 代表取締役
技術士(情報工学部門)
JAWS-UG 札幌 会長
@takuowatanabe
facebook.com/watanabetakuo
copyright Affordance Corp.
3
CloudFront はじめに
copyright Affordance Corp.
4
利用シーン
copyright Affordance Corp.
アクセス集中
テレビで取り上げられた
サイトダウン!!
5
待たせる配信CDN を使用しないとき
copyright Affordance Corp.
Webサーバ
エンドユーザ
エンドユーザ
エンドユーザ
6
待たせない配信CloudFront を使用したとき
copyright Affordance Corp.
エンドユーザ
エンドユーザ
エンドユーザ様々な IP アドレスが使用される
7
CDN(Contents Delivery Network)
• ユーザからのアクセスを近いエッジサーバに誘導することで、ユーザへの配信を高速化
• エッジサーバでは、コンテンツのキャッシングを行い、オリジンサーバに負荷をかけず効率的に配信
copyright Affordance Corp.
エッジサーバユーザ オリジン
サーバ
(1) 最適なエッジにリクエスト
レスポンス向上 負荷軽減
(2) キャッシュを配信
(5) 取得したコンテンツを配信しキャッシュ
(3) エッジにキャッシュがなければオリジンにリクエスト
(4) エッジにコンテンツを配信
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
9
エッジロケーション
copyright Affordance Corp.
南米サンパウロ(ブラジル)リオデジャネイロ(ブラジル)
アメリカジョージア州アトランタバージニア州アッシュバーン( 3 )テキサス州ダラス / フォートワース( 2 )カリフォルニア州ヘイワードフロリダ州ジャクソンビルカリフォルニア州ロサンゼルス( 2 )フロリダ州マイアミニューヨーク州ニューヨーク( 3 )ニュージャージー州ニューアークカリフォルニア州パロアルトカリフォルニア州サンノゼワシントン州シアトルインディアナ州サウスベンドミズーリ州セントルイス
世界 52 ヶ所2014 年 7 月現
在
ヨーロッパアムステルダム(オランダ)( 2 )ダブリン(アイルランド)フランクフルト(ドイツ)( 3 )ロンドン(英国)( 3 )マドリード(スペイン)マルセイユ(フランス)ミラノ(イタリア)パリ(フランス)( 2 )ストックホルム(スウェーデン)ワルシャワ(ポーランド)
アジアチェンナイ(インド)香港(中国)( 2 )ムンバイ(インド)マニラ(フィリピン)大阪(日本)ソウル(韓国)シンガポール( 2 )台北(台湾)東京(日本)( 2 )
オーストラリアシドニー(オーストラリア)メルボルン(オーストラリア)
10
CloudFront の特徴
• 高性能な分散配信• 世界 52 拠点のエッジサーバ ※ 2014 年 7 月現在
• 高いパフォーマンス• 業界トップクラスのパフォーマンス
測定結果• レイテンシにもとづいてエンドユー
ザを誘導• 信頼性
• 単一障害点なし• SLA 99.9% 以上
• キャパシティプランからの解放• 予測不可能なスパイクアクセスも
CloudFront がカバー
• 完全従量課金• 初期費用なし• 安価かつスポットも利用可能
• 設定が容易で即時利用可能• GUI からの設定で 15 分程度でサー
ビス利用開始可能
copyright Affordance Corp.
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 月現在
12
CloudFront 代表的な機能
copyright Affordance Corp.
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 の期間キャッシュ
15
マルチオリジン
• Behaviors の Path Pattern( 正規表現 ) を利用したオリジンの振り分け• 記述方法/ *: 0 もしくはそれ以上の文字列 ?: 1文字
• オリジンは Distributionごとに 10個まで登録可能
• 振り分けルール( Behaviors )も Distributionごとに 10個まで登録可能
• Behaviorsごとにキャッシュポリシーやオリジンへのアクセスルールが指定可能
copyright Affordance Corp.Web サーバー
クライアント
CloudFront
S3
EC2
/image/
/site1/
/site2/
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.
17
ロギング
• 任意の S3 Bucket に出力可能• 出力先Bucket のアクセス権設定( FULL_CONTROL )に注意
• アクセスログの出力はタイムラグあり
• ログを取得しないことも可能
• アクセスログ作成の追加料金なし。 S3 の料金のみ必要
• ログファイルの形式• 1 つのエンドユーザーリスエストの詳細を 1 エントリとして記録
• ウェブディストリビューション、 RTMP ディストリビューションのログファイルは別の内容
• W3C拡張ログファイル形式で出力
• タブ区切りの値が含まれる
• レコードは時系列というわけではない
• 標準外の文字はエンコードされる
copyright Affordance Corp.
18
Route53 はじめに
copyright Affordance Corp.
19
DNS 問い合わせRoute53 を使用しないとき
copyright Affordance Corp.
DNSサーバ
エンドユーザ
エンドユーザ
エンドユーザ
エンドユーザ
20
DNS 問い合わせRoute53 を使用したとき
copyright Affordance Corp.
エンドユーザ
エンドユーザ
エンドユーザ
Anycast IP アドレスが使用される同じ IP アドレスでも近いサーバにつながる
エンドユーザ
21
エッジロケーション
copyright Affordance Corp.
南米サンパウロ(ブラジル)リオデジャネイロ(ブラジル)
アメリカジョージア州アトランタバージニア州アッシュバーン( 3 )テキサス州ダラス / フォートワース( 2 )カリフォルニア州ヘイワードフロリダ州ジャクソンビルカリフォルニア州ロサンゼルス( 2 )フロリダ州マイアミニューヨーク州ニューヨーク( 3 )ニュージャージー州ニューアークカリフォルニア州パロアルトカリフォルニア州サンノゼワシントン州シアトルインディアナ州サウスベンドミズーリ州セントルイス
世界 52 ヶ所2014 年 7 月現
在
ヨーロッパアムステルダム(オランダ)( 2 )ダブリン(アイルランド)フランクフルト(ドイツ)( 3 )ロンドン(英国)( 3 )マドリード(スペイン)マルセイユ(フランス)ミラノ(イタリア)パリ(フランス)( 2 )ストックホルム(スウェーデン)ワルシャワ(ポーランド)
アジアチェンナイ(インド)香港(中国)( 2 )ムンバイ(インド)マニラ(フィリピン)大阪(日本)ソウル(韓国)シンガポール( 2 )台北(台湾)東京(日本)( 2 )
オーストラリアシドニー(オーストラリア)メルボルン(オーストラリア)
22
Route53 の特徴
• 高可用性および高信頼性• SLA 100%• 冗長化されたロケーション• 世界 52 拠点のエッジサーバ
※ 2014 年 7 月現在• 高速伝搬
• 全世界で動作する Anycast ネットワーク
• 変更の高速伝搬• AWS サービスとの統合
• ELB エイリアス• CloudFront ディストリビューション• S3 ウェブサイトバケットへのマッピ
ング• レイテンシベースルーティング
• 安価• クエリ数に対応した料金
• 柔軟性• 加重ランドロビン
copyright Affordance Corp.
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 バケットマッピング
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 月現在
25
落ちない待たせないウェブサイトを作ろう!
copyright Affordance Corp.
26
ウェブサイトを作る
copyright Affordance Corp.
27
パターン1:ウェブサイトを作る
copyright Affordance Corp.
Web サーバークライアント
CloudFront
静的ページ中心のWebサイトの例• POST対応により簡易的な動的ページは CloudFront経由で配
信
ページ全体を簡単に高速化
Route53
28
パターン2:ウェブサイトを作る
copyright Affordance Corp.
動的ページ中心のWebサイトの例• 静的ファイルのパスを CloudFront経由に変更• Web サーバーの機能 (mod_rewrite など ) で静的ファイルの
パスを CloudFront経由に強制書き換え
cssjs jpg
Web サーバークライアント
</>
CloudFront
ページの大半を占める静的ファイルを高速配信
Route53
29
パターン3:ウェブサイトを作る
copyright Affordance Corp.
動的ページ中心に大量の静的コンテンツを扱うのWebサイトの例• S3 と連携することで、手間のかからないスケーラブルなコン
テンツ配信インフラを実現
cssjs jpg
Web サーバー
クライアント
CloudFront
高速化とスケーラビリティの確保
画像配信サーバー S3
mpg mp
3
OR
</>
Route53
30
パターン4:ウェブサイトを作る
copyright Affordance Corp.
パスによりオリジンを変更するWebサイトの例• 静的コンテンツは S3 と連携し、動的コンテンツの site1 は
EC2 、 site2 はオンプレと連携することで、負荷分散を実現• マルチオリジン機能を使用
Web サーバー
クライアント
CloudFront
高速化と負荷分散
S3
EC2
/image/
/site1/
/site2/
Route53
31
ストリーミング配信しよう!
copyright Affordance Corp.
32
CloudFront を活用したストリーミング配信
• ストリーミング配信を効率的に配信可能• 配信規模に応じてネットワーク帯域を気にしなくてよい
• 小規模配信から大規模配信まで柔軟に対応
• 対応可能な配信方式• S3 と組み合わせたオンデマンドストリーミング配信
• HTTP ベースのストリーミング配信(オンデマンド・ライブ)
copyright Affordance Corp.
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
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
35
CloudFront作ってみよう
( Web サイトを CDN 化する)
copyright Affordance Corp.
36
ステップ1Distribution 作成開始
copyright Affordance Corp.
37
ステップ2ディストリビューションの種類選択
copyright Affordance Corp.
38
ステップ3ディストリビューション設定
copyright Affordance Corp.
39
ステップ3-1(設定詳細)オリジンサーバー設定
copyright Affordance Corp.
40
ステップ3-2(詳細設定)キャッシュ設定
copyright Affordance Corp.
41
ステップ3-3(詳細設定)ディストリビューション設定
copyright Affordance Corp.
42
ステップ3-4(詳細設定)ログ設定
copyright Affordance Corp.
43
ステップ4ディストリビューション配備
copyright Affordance Corp.
約 10 分
44
ステップ5ディストリビューション詳細情報
copyright Affordance Corp.
45
ステップ6CNAME 設定
copyright Affordance Corp.
46
パフォーマンス検証サイト
copyright Affordance Corp.
47
パフォーマンス測定1
copyright Affordance Corp.
■ CloudFront 無し
■ CloudFront 有り
48copyright Affordance Corp.
CloudFront は早い、安い、簡単。
さあ、始めてみましょう!