Amazon CloudFrontの
概要と勘所
ユースケースから学ぶ
アマゾンウェブサービス勉強会
1
2016/01/14
自己紹介
名前 : 平田 圭 (@masuwo3)
所属 : データ分析チーム
現在 : 2015年5月よりクラスメソッド
過去 : 特任助教、SE、IT講師、etc...
勉強 : 機械学習、統計
2
アジェンダ
• CloudFrontの概要
• 使い方
• ユースケース
3
4
Amazon CloudFrontの概要
5
Amazon CloudFrontとは?
• AWSが提供する高速コンテンツ配信サービス
• CDN (Content Delivery Network)を利用
• CloudFrontを通して、コンテンツの高速配信を実現する
オリジンサーバCoudFront
Edge Location
6
CDN(Contents Delivery Network)
世界各地のエッジサーバにコンテンツをキャッシュすることで、
• 問い合わせに対する高速な応答
• 大規模アクセスに対する負荷分散
を実現することができる。
CDNあり
CDNなし
最適なエッジロケーションへの誘導
7
CloudFrontの仕組み
DNSリゾルバ DNSリゾルバ
CloudFront DNS
位置情報DB
①ドメイン名問い合わせ ②IPアドレス問い合わせ
③最適なEdgeアドレス応答
Edge Location
③最適なEdgeサーバに
コンテンツ問い合わせ ④キャッシュがなければ
オリジンサーバから取得
8
Edge Locationについて
AWS Black Belt Techシリーズ Amazon CloudFront より
http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-cloudfront
※2014年12月時点
9
負荷対策と従量課金
大規模リクエストへ対応
利用料金はアクセス量に応じた従量課金
突発的なスパイクへの対策として有効
10
利用料金
①
②
③
① HTTP / HTTPSリクエスト数
② 外部へのデータ転送量
③ オリジンへのデータ転送量
④ 独自SSL証明書の利用
⑤ 無効化リクエスト
価格の詳細は公式ページをご参照ください
https://aws.amazon.com/jp/cloudfront/pricing/
11
Amazon CloudFrontのメリット
• コンテンツの分散配信
世界52拠点のエッジサーバによる分散配信
• 潜在的な大規模アクセスからの開放
予測不可能なスパイクアクセスへの対応
• 従量課金制
アクセス量に応じた課金
12
コンテンツ配信の種類
webコンテンツの配信
• HTTP, HTTPSによるコンテンツの配信
• webサイト上の画像などのメディアを効率的に配信する
• web上に公開されているサーバをオリジンとして指定
動画のストリーミング配信
• RTMPを用いた動画のストリーミング配信
• Adobe Flash Playerなどを用いた動画配信に対応
• オリジンサーバはS3に限定
13
CloudFrontの使い方
14
CloudFrontを構成する要素
• オリジンサーバ
配信したいコンテンツを保持するサーバ
• エッジサーバ
コンテンツのキャッシュを保持するサーバ
• ディストリビューション
利用するCDNの設定をまとめた定義
• ドメインの設定
• キャッシュコントロール
15
配信に必要な手順について
1.オリジンサーバの準備
2.ディストリビューションの作成
16
1. オリジンサーバの準備
配信したいコンテンツを公開したサーバを配置
S3 bucket上の
コンテンツを公開
EC2インスタンス上に
webサーバを構築
AWS外部の
webサーバを利用
※動画ストリーミングの場合はS3に限定
17
2. ディストリビューションの設定
AWS Management Consoleなどから設定を行う
はじめに「Create Distribution」を選択
18
2. ディストリビューションの設定
ディストリビューションの種類を選択
画像などの配信
⇨「web」を選択
動画ストリーミング
⇨「RTMP」を選択
19
2. ディストリビューションの設定
ドメイン名または
AWSのIDを指定
コンテンツが格納されているオリジンサーバを指定
コンテンツのパスも
同時に指定可能
20
2. ディストリビューションの設定
設定後、Edge Locationに展開されるのを待つ
「In Progress」
⇩
「In Deploy」
(15分程度)
展開後、「Domain Name」にアクセスすると
コンテンツが確認できる
21
注意点
コンテンツのキャッシュ
• キャッシュされたコンテンツは、変更が即時反映されない
• 変更が少ない静的なコンテンツを対象とするべき
• 動的なコンテンツについては、設定で指定可能
• HTTP Header
• Cookie
• Query String
22
キャッシュコントロール
• コンテンツ毎の制御
• HTTPヘッダで期間を指定
S3の場合は
Management
Console
から指定可能
23
キャッシュコントロール
• デフォルトとしての指定
詳細は弊社ブログを
Amazon CloudFrontの
キャッシュ期間をコントロー
ルする(2015年6月版)
【新機能】Amazon
CloudFrontに「Maximum
TTL / Default TTL」が設定
できるようになりました!
24
コンテンツの削除・更新
• 無効化リクエストによるキャッシュクリア
コンテンツを指定してクリアすることもできる
15分程度でクリアされる
25
ユースケースについて
26
webサイトにおける利用例
• webサイトのフロントキャッシュサーバとして
動的ページアクセス
静的コンテンツ取得
キャッシング
コンテンツの同期
webサーバ CMS
27
動画配信サイトにおける利用例
動画フォーマット変換
• 動画配信サイトのフロントキャッシュサーバとして
キャッシングストリーミング配信
Flash
Smooth Streaming
HTTP Live Streaming Amazon Elastic Transcoder
28
まとめ
• CloudFrontとCDNについての概要
• 応答の高速化と負荷分散
• CloudFrontによるCDNの構築手順
• 注意点
• 動的コンテンツの扱い
• キャッシュコントロール
• ユースケース
• webサイトにおける利用例
• 動画サイトにおける利用例
29
参考資料
• 公式資料 (blackbelt webinar)
AWS Black Belt Techシリーズ Amazon CloudFront
http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-cloudfront
Amazon CloudFront 開発者用ドキュメント
http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/Introduction.html
• 弊社ブログ
AWS 再入門 CloudFront編
http://dev.classmethod.jp/cloud/cm-advent-calendar-2015-aws-re-entering-cloudfront/
Amazon CloudFrontのキャッシュ期間をコントロールする(2015年6月版)
http://dev.classmethod.jp/cloud/cloudfront-cache-control/
Amazon CloudFrontに “Maximum TTL / Default TTL” が設定できるようになりました!
http://dev.classmethod.jp/cloud/aws/introduction-to-max-ttl-on-cloudfront/
Cloud frontの概要と勘所

Cloud frontの概要と勘所