Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

AWS Black Belt Tech シリーズ 2016 - Amazon CloudFront

55.406 visualizaciones

Publicado el

AWS Black Belt Tech Webinar 2016
(旧マイスターシリーズ)
Amazon CloudFront

Publicado en: Tecnología
  • Sé el primero en comentar

AWS Black Belt Tech シリーズ 2016 - Amazon CloudFront

  1. 1. Amazon CloudFront AWS Black Belt Tech Webinar 2016 アマゾン ウェブ サービス ジャパン株式会社 ソリューションアーキテクト 北迫 清訓 2016/1/27
  2. 2. AWS Black Belt Tech Webinar 2016 • AWSJのTechメンバがAWSのプロダクトを 深堀りして解説するWebセミナー – サービスの概要、使いどころの説明 – アップデートのキャッチアップ • 毎週水曜 18〜19時 • 申し込みサイト – http://aws.amazon.com/jp/event_schedule/ • Twitter ハッシュタグ – #awsblackbelt で確認 2
  3. 3. Agenda 1. Contents Delivery Network 2. 高速配信機能 3. セキュリティ機能 4. ストリーミング配信機能 5. レポート & ロギング機能 6. Pricing 7. まとめ 3
  4. 4. Contents Delivery Network
  5. 5. Contents Delivery Network • 大規模なアクセスも世界中にあるエッジのキャパシティを 活用して効率的かつ高速にコンテツ配信が可能なサービス – ユーザからのアクセスを最も近いエッジサーバに誘導することでユーザへの 配信を高速化 – エッジサーバでは、コンテンツのキャッシングを行い、オリジンに負荷をかけ ず効率的に配信 オリジンサーバ Amazon CloudFront オリジンサーバ 台数の削減 レスポンス向上 負荷軽減 リクエスト 配信 リクエスト キャッシュから配信 キャッシュ コンテンツ取得 CDN クライアント 5
  6. 6. Contents Delivery Network • 最適なエッジへの誘導 オリジンサーバ Amazon CloudFront クライアント Internet 位置情報DB ①ドメイン名問い合わせ CloudFront DNS Edge Location ②IPアドレス問い合わせ (xxx.cloudfront.net) ③最適なEdgeアドレス応答 ④最適なEdgeへアクセ ス ⑤キャッシュがなければ オリジンから取得 DNSリゾル バ EDNS-Client-Subnet のサポートにより精度 を向上 6
  7. 7. 現時点のエッジロケーション Europe Amsterdam, Netherlands(2) Dublin, Ireland Frankfurt, Germany (3) London, England (3) Madrid, Spain Marseille, France Milan, Italia Paris, France (2) Stockholm, Sweden Warsaw, Poland Asia Chennai, India Hong Kong, China(2) Mumbai, India Manila, Philippines Osaka, Japan Seoul, Korea (2) Singapore (2) Taipei, Taiwan Tokyo, Japan(2) South America Sao Paulo, Brazil Rio de Janeiro, Brazil North America Atlanta, GA Ashburn, VA (3) Chicago, IL Dallas, TX (2) Hayward, CA Jacksonville, FL Los Angeles, CA(2) Miami, FL New York, NY (3) Newark, NJ Palo Alto, CA San Jose, CA Seattle, WA South Bend, IN St. Louis, MO 2016年1月時点 54 Edge Locations Australia Melbourne, Australia Sydney, Australia 最新のエッジロケーション情報 http://aws.amazon.com/jp/cloudfront/details/7
  8. 8. Amazon CloudFrontの特徴 • 高性能な分散配信 (世界54拠点のエッジサーバ) ※2016年1月時点 • 高いパフォーマンス (業界トップクラスのパフォーマンス測定結果) • キャパシティアクセスからの開放 (予測不可能なスパイクアクセスへの対応) • 完全従量課金 (初期費用がなく安価かつスポットも利用可能) • 設定が容易で即時利用が可能 (GUIからの設定で15分程度でサービス利用開始可能) 8
  9. 9. CDN導入における優位性 CloudFront Edge Edge Capacity オリジンサーバ CDNをサイトの前段に入れるだけでサイトアクセスの 高速化が見込める → 大量にアクセスが来てもレスポンスタイムを平常化 クライアント 9 エッジのキャパシティを活用し、 あらゆる規模の配信に対応 エッジとオリジン間の通信の最適化を自動で 行い、オリジンからのデータ取得も高速化 通信の最適化
  10. 10. CDNにおける従量課金の優位性 CloudFront Edge Edge Capacity オリジンサーバ配信量に対する 従量課金 オリジンサーバ配信量に対する 従量課金 CloudFront Edge 想定の難しいアクセス対応への機会損失リスクと 従量課金による無駄なコスト負担の回避 Edge Capacity クライアント クライアント 10
  11. 11. 即時利用可能なCDNの優位性 オリジンサーバ 通常時 オリジンサーバ CloudFront Edge Edge Capacity イベント・キャンペーン時 イベントに合わせてスポットでCDNを活用 DNSサービス (Route53) クライアント クライアント 11
  12. 12. 高速配信機能
  13. 13. CloudFront Distribution • Distribution – ドメイン毎に割り当てられるCloudFrontの設定 – AWS Management ConsoleもしくはAPIで即時作成可能 – WebもしくはRTMP Distributionを選択可能 – Distributionあたりの使用量が最大10Gbpsもしくは15,000RPSを超える 場合は上限緩和申請が必要 – デフォルトでは「xxxx.cloudfront.net」がDistributionのドメイン名として割り 当てられる • CNAMEエリアスを利用して独自ドメイン名の指定が可能 • CNAMEエリアスのワイルドカード指定もサポート (例: *.example.comなど) • Route53と組み合わせたZone Apex (例: example.comなど)が利用可能 13
  14. 14. CloudFront Edge PROXY CACHE Web Distribution • サポートプロトコル/HTTPメソッド – HTTP / HTTPS対応 • GET, HEAD, OPTION(選択可能) (Cacheモード) • PUT, POST, DELETE, OPTION, PATCH (Proxyモード) – オリジンへのアクセス • Internet経由でアクセスできることが必要 • Range GET対応 オリジンサーバ GET, HEAD, (OPTION) PUT, POST, DELETE, OPTION, PATCH PUT, POST, DELETE, OPTION, PATCH クライアント GET, HEAD, (OPTION) 14
  15. 15. エッジでのGzip圧縮機能 • CloudFrontエッジでコンテンツをGzip圧縮することで より高速にコンテンツを配信 リクエストヘッダーにAccept-Encoding:gzipが指定されており、オリジンがGzip に対応していない場合は、CloudFrontエッジにてGzip圧縮を行い配信 – Amazon S3はGzip圧縮をサポートしていないため、有効なオプション CloudFront Edge Gzip圧 縮 オリジンサーバ Accept-Encoding:gzip クライアント コンテンツリクエスト キャッシュがある場合は、 Gzipされたキャッシュを返す S3コンテンツが圧縮され高速配 信 15
  16. 16. キャッシュコントロール機能 • キャッシュコントロール キャッシュヒット率を向上させることがCDN導入におけるポイント – GET / HEAD / OPTION(選択可能)のリクエストが対象 – 単一ファイルサイズのキャッシングは最大20GBまで – URLパス毎にキャッシュ期間指定が可能 – フォワードオプション機能による動的ページ配信 (Webのみ) • Header / Cookie /Query Strings URLおよび有効化したフォーワードオプション機能のパラメータ値 の完全一致でキャッシュが再利用される 16
  17. 17. キャッシュコントロール機能 • キャッシュコントロールヘッダーの挙動 – Object Cachingにより、キャッシュ時間のコントロールが可能 – オリジン側がHTTPキャッシュコントロールヘッダーを付与しない場合でも上書きが可能 – Behavior毎にキャッシュ設定を行うことで、URLパス毎にキャッシュ期間を変えることも可能 • デフォルトTTL:オリジンがキャッシュコントロールヘッダーを指定しない場合に利用(デフォルト24時間) • 最小TTL:CloudFront側でキャッシュすべき最小期間 • 最大TTL:CloudFront側でキャッシュすべき最大期間 CloudFront Minimum TTL設定 最小TTL = 0秒 最小TTL >0秒を設定 オリジンHTTP ヘッダー Cache-Control max-ageを 指定 指定されたmax-ageと最大TTLで小さい値 の期間キャッシュ 最小TTL<max-age<最大TTL max-age期間 max-age < 最小TTL 最小TTL期間 最大TTL < max-age 最大TTL期間 Cache-Control設定なし デフォルトTTL期間キャッシュ (標準 24時間) 最小TTLまたはデフォルトTTLで大きい値の期間 キャッシュ 17
  18. 18. キャッシュコントロール機能(つづき) CloudFront Minimum TTL設定 最小TTL = 0秒 最小TTL >0秒を設定 オリジンHTTPヘッダー Cache-Control max-ageと s-maxageを指定 指定されたs-max-ageと最大TTLで小さい値 の期間キャッシュ 最小TTL<s-max-age<最大TTL s-max-age期間 s-max-age < 最小TTL 最小TTL期間 最大TTL < s-max-age 最大TTL期間 Expiresを指定 指定されたExpires日付と最大TTLで早い日付 の期間キャッシュ 最小TTL<<最大TTL Expires日付 Expires < 最小TTL 最小TTL期間 最大TTL < Expires 最大TTL期間 Cache-Control no-cache, no-storeを指定 キャッシュされない 最小TTLの期間キャッシュ ※HTML MetaタグのHTTP Cache-ControlもしくはProgmaが指定されていてもCloudFrontのキャッシュコントロールでは利用されない ※オリジンがS3で、オリジン側でヘッダー指定する場合は、MetadataにHTTPヘッダーを指定 18
  19. 19. キャッシュコントロール機能 • キャッシュのInvalidation(無効化) – コンテンツ毎の無効化パス指定 • 同時に最大3,000個までのパス指定が可能 – ワイルドカードを利用した無効化パス指定 • 同時に最大15個まで無効化パスリクエストが指定可能 • オブジェクト数の制限無し – AWS Management ConsoleもしくはAPIで実行可能 – Invalidationの完了は10-15分程度 AWS SDK / CLI / API 19
  20. 20. ダイナミックコンテンツ機能 • 動的コンテンツキャッシュへの対応 – オリジンサーバに対してHeader, Cookie, Query Strings情報 をフォワードすることで、動的なページの配信にも対応 – URLパス(Behavior)と組み合わせ、きめ細かなキャッシュコン トロールを実現 – Whitelistを利用して、必要最低限のパラメータのみをフォワー ド設定することで、キャッシュを有効活用することが重要 – キャッシュしないコンテンツでも、オリジンとの通信の最適化 により配信の高速化を実現 20
  21. 21. ダイナミックコンテンツ機能 • フォワード Header機能 – オリジンに任意のヘッダー情報をフォワードすることで動的なページ生成にも対応 – 全てのHeaderをフォワードするとキャッシュ効率が大幅に低下するため必要最小 限のヘッダーを指定することを推奨 – カスタムヘッダーにも対応 – CloudFront独自ヘッダー • CloudFront側でクライアントの情報を独自に判定し、オリジンにフォワード Type Header 詳細 接続プロトコル判定 CloudFront-Forwarded-Proto HTTPもしくはHTTPSを設定 デバイス判定 CloudFront-Is-Mobile-Viewer CloudFront-Is-Tablet-Viewer CloudFront-Is-Desktop-Viewer User-Agentをもとに、クライアントデバイスの 情報をTrue/Falseで設定 地域判定 CloudFront-Viewer-Country クライアントのIPアドレスをもとに、地域コー ドを設定 (ISO-3166-1 alpha-2準拠)21
  22. 22. ダイナミックコンテンツ機能 • フォワード Cookie機能 – オリジンに任意のCookie情報をフォワードすることで動的なページ生成にも対応 – CloudFrontは指定されたCookie名と値をセットでキャッシュ – 全てのCookieをフォワードするとキャッシュ効率が大幅に低下するため必要最小 限のCookieを指定することを推奨 – 対象のCookie名はワイルドカードの指定も可能 22
  23. 23. ダイナミックキャッシング • Behaviorsを活用したマルチオリジンおよびキャッ シュコントロールの個別設定 – クライアントからのリクエストパスパターンをもとに、キャッシュポリシーや オリジンへのアクセスルールの個別指定が可能 Behaviors Path Patternの記述方法 • 「*」 0もしくはそれ以上の文字列 • 「?」 1文字 例) /*.jpg, /image/*, /image/a*.jpg, /a??.jpg img/* api/item* * Behavior Cache TTL (正規表現)http://www.aws.com/ オリジン クライアント img/item01.jpg api/item?id=10 index.jsp 最小TTL 30 Days 最小TTL 10 min S3 Default TTL 0 Sec 23
  24. 24. カスタムエラーページ • カスタムエラーページ設定 – オリジンからのエラーコードに対して、CloudFront側で指定した任意の エラーページを応答 • エラーページのパスはドメインから指定ができないため、マルチオリジン設定 とパスパターンの組み合わせでS3などの別サーバからの取得 – エラーのキャッシュ時間も指定可能 – エラーコード毎にページやキャッシュ時間を設定 • 400,403,404,405,414,500,501,502,503,504 • デフォルトは5分(300秒) – CloudFrontからの応答を別のステータスコードに差し替えることも可能 24
  25. 25. カスタムエラーページ • Amazon S3と組み合わせた構成例 Webサーバ側で 4XXエラー時のページ設定5XXのカスタムエラー ページをS3に設定 (4XXはオプション) 5XX発生時 (4XX発生時) 4XX発生時 CloudFront S3 オリジ ン Custom Error Page Custom Error Page Custom Error Page • 4XX系はCloudFront側ですべてをハンドリングしていない上、クライアント要求の エラーのため、オリジン側で対処 • 5XX系はオリジン側のエラーのため、CloudFront側で対処 クライアント 25
  26. 26. セキュリティ機能
  27. 27. セキュリティ機能 • セキュア配信 – HTTPS対応 (強制リダイレクト / HTTPSのみ許可) – SSL証明書 (デフォルト / 独自証明書 / SNI / Certification Manager) – オリジン暗号化通信 – オリジンカスタムヘッダー – GEOリストリクション (Whitelist / Blacklist) – 署名付きURL/Cookie (有効期間指定) – Amazon WAF連携 27
  28. 28. サポートするSSL証明書 • デフォルト証明書 – cloudfront.netドメインのSSL証明書は標準で利用可能 • 独自SSL証明書 – X.509 PEM形式かつ認証チェーンが含まれること。鍵長は最大2048bit – CloudFrontにて別途SSL証明書の利用課金がされる – 様々な証明書タイプをサポート • Domain Validated, Extend Validated, Wildcard, Subject Alternative Name証明書 など – AWS Certification Managerで発行された証明書 • SNI(Server Name Indication)独自SSL証明書 – CloudFrontの独自SSL証明書費用を負担せず、独自ドメインでのSSL通信が可能 – 一部古いブラウザーはSNI拡張をサポートしていないため注意が必要 • Windows XPのIE, Android 2.2デフォルト, バージョン1.7以前のJavaブラウザなど 28
  29. 29. 独自SSL証明書の利用 • 利用申請 – 証明書の利用には上限緩和申請が必要 (デフォルト2) • 利用手順 1-1. 証明書機関で署名を受けた証明書をIAM CLIを利用してアップロード 1-2. AWS Certification ManagerのManagement Console画面より、 生成したい証明書のFQDNを指定 ※ホスト名にワイルドカードも指定可能 2. CloudFrontのDistribution設定画面にて登録した証明書を選択 3. 証明書と同じCNAMEに設定 4. SNIの有無を選択 5. 指定したCNAMEとDistribution作成時に生成されるDomain名を紐付けた レコードをDNSに登録 29
  30. 30. オリジン暗号化通信 • CloudFrontエッジとオリジン間の通信方式を制御 – SSLプロトコル方式 • TLSv1, TLSv.1.1, TLSv1.2, SSLv3から複数指定可能 – オリジンとの通信プロトコル • HTTPのみ、HTTPSのみ、クライアントからの通信プロトコルに合わせる – カスタムオリジンの場合のみ指定可能 CloudFront Edge カスタムオリジン クライアント HTTP/HTTPS 暗号化通信方式の指定が可能 S3 標準でHTTPS 30
  31. 31. オリジンカスタムヘッダー • エッジからオリジンサーバへの通信でカスタムHTTPヘッダー の追加 – オリジンサーバ毎に固定でヘッダーの追加もしくはクライアントからのリク エストヘッダーの上書きが可能 – Shared-Secret • CloudFrontとオリジン間で任意のヘッダーおよびヘッダー値を取り決め、オリジン 側でヘッダー値のチェックを行うことで、カスタムオリジンはCloudFrontからのア クセスのみに制御する – リクエストヘッダーの調整 • Cross-Origin Request Sharing(CORS)通信時に、クライアントブラウザーのバー ジョンなどにより、ブラウザが適切なヘッダーを付与しない場合に、強制的に設定 31
  32. 32. GEOリストリクション • 地域指定によるアクセス制御 – 接続されるクライアントの地域情報を元に、エッジでアクセス判定 – BlacklistもしくはWhitelistで指定可能 – Distribution全体に対して適用される – 制限されたアクセスには403を応答 CloudFront Edge 接続クライアントの 地域情報をもとに判定 クライアント GEO Restriction有効 オリジンサーバ 403 32
  33. 33. 署名付きURL/Cookie • 署名付きURL/Cookieを利用したプライベートコンテンツ配信 – Restricted Viewer Accessを有効にするだけで、署名のないアクセスを 全てブロック • Behavior単位で指定可能 • URLもしくはCookieいずれかを利用可能 – 標準 (Canned Policy) • 有効期間(時刻を秒単位指定) • 有効コンテンツパス – オプション (Custom Policy) • アクセス元IPアドレス制限 • 有効開始時刻指定 • 許可コンテンツのワイルドカード指定 33
  34. 34. 署名付きURL/Cookie • 署名付きURL/Cookieを利用した際のアクセスフロー – 単一コンテンツアクセスの場合は署名付きURL、複数コンテンツアクセス の場合は、署名付きCookieの利用を推奨 クライアント オリジンサーバ 認証サイト 認証リクエスト 署名付き URL/Cookieでアク セス 署名付き URL/Cookieなし 署名付きURL/Cookie を生成 CloudFront Private Key CloudFront Edge 403 34
  35. 35. 署名付きURL • 署名付きURL – WebおよびRTMP双方に対応 • Webの場合は有効期間を最小化することを推奨 – TCPコネクション確立中は対象コンテンツのダウンロードが可能 • RTMPの場合は動画再生時間以上の有効期間の設定が必要 – 権限のないアクセスには403を応答 – URLの生成 • 決められたフォーマットでQuery Stringsにパラメータ値を設定 – Canned Policy: http://xxxx.cloudfront.net/file.jpg?Expires=XXX&Signature=XXX&Key-Pair-Id=XXX – Custom Policy: http://xxxx.cloudfront.net/file.jpg?Policy=XXX&Signature=XXX&Key-Pair-Id=XXX • CloudFrontの秘密鍵を利用してSignatureのパラメータ文字列を署名 • アクセスURL毎に必ず署名が必要 • サンプルソースコード (Perl / PHP / C# + .NET Framework / Java) http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/PrivateCFSignatureCodeAndExamples.html 35
  36. 36. 署名付きCookie • 署名付きCookie – Webディストリビューションのみサポート • 許可コンテンツのワイルドカードパス指定ができるため、1つのCookieで対象パ ス以下のコンテンツにアクセス可能 • Cookieの中に署名付きURLのCustom Policyと同様のパラメータをセット – CloudFront-Key-Pair-Id, CloudFront-Policy, CloudFront-Signature • Set-Cookie時のポイント – Domain属性を利用して、CloudFrontのAlternate Domain Nameと同じドメイン名を 指定することで、Cookieの有効範囲を制限 – ExpireおよびMax-Age属性を利用しないことで、セッションCookieを作成 – Secure属性を利用することでクライアントリクエスト時にCookieを含める際にCookie の暗号化を行う • サンプルソースコード(Perl / PHP / C# + .NET Framework / Java) https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-cookies.html#private-content- overview-sample-code-cookies 36
  37. 37. 署名付きURL/Cookie • オリジンサーバの保護 – オリジンがAmazon S3の場合、Origin Access Identity(OAI)を利用 • S3のBucketへのアクセスをCloudFrontからのみに制限 – カスタムオリジンの場合、下記の2種類が選択可能 • オリジンカスタムヘッダーを利用し、CloudFrontで指定された任意のヘッダーをオリジン側で チェック • オリジン側のアドレスを公開しないとともに、CloudFrontが利用するIPアドレスのみの許可させる – CloudFrontが利用するIPアドレスは下記URLから取得可能 https://ip-ranges.amazonaws.com/ip-ranges.json – JSONフォーマット » Serviceキーの“CLOUDFRONT”でフィルタすることで抽出可能 CloudFront Edge カスタムオリジンサーバ S3 クライアント OAI IP制限/ ヘッダ−制限 クライアント ダイレクト アクセス ヘッダー付与 37
  38. 38. Amazon WAF連携 • Amazon WAFで定義したWeb ACLをCloudFront Distribution に適用 – CloudFrontをサービスの前段に配置することでサイトの保護を実現 – Amazon WAFでの制御 • IPアドレス制限 / SQLインジェクション / ヘッダー, クエリ等のStringマッチング – Amazon WAFの内容が即時反映 – ブロック時は403(Forbidden)を応答 CloudFront Edge クライアント 不正なアクセスを ブロック オリジンサーバ 403 38
  39. 39. ストリーミング配信機能
  40. 40. ストリーミング配信機能 • CloudFrontを活用したストリーミング配信 – 配信規模に応じて多くのネットワーク帯域が必要となるストリーミングを 効率的に配信可能 – 小規模から大規模配信まで柔軟に対応 – 対応可能な配信方式 • Amazon S3をコンテンツストレージとしたオンデマンドストリーミング配信 • ストリーミングサーバと連携したHTTPベースのストリーミング配信 (オンデマンド・ライブ双方対応) 40
  41. 41. ストリーミング配信 • Amazon S3と連携したマネージドオンデマンドストリーミング配信 – RTMP (Flash Media Server) • Distribution作成時にRTMPを選択 • RTMP, RTMPE, RTMPT, RTMPETをサポート – Smooth Streaming • Distribution作成時にWebでSmooth Streamingオプションを有効化 – HLS (Http Live Streaming) • Distribution作成時にWebを選択 – RTMPおよびSmooth StreamingのコンテンツはS3に格納されている必要がある – 動画コンテンツもそれぞれのフォーマットで準備が必要(FLV, MP4, iSMV, HLS) クライアント CloudFront Edge S3 RTMP/RTMPE/ RTMPT/RTMPETFlash Player / Silverlight Player HTTP/HTTPS 41
  42. 42. ストリーミング配信 • ストリーミングサーバと連携したHTTPベースのストリーミング配信 – シングルコンテンツマルチユース – オンデマンド・ライブ配信に対応 – AWS CloudFormationを利用した環境デプロイ用テンプレートも提供 クライアント CloudFront Edge EC2 Flash Player / Silverlight Player HTTP/HTTPS AWS CloudFormation Template LIVE 42
  43. 43. ストリーミング配信 • CloudFormationテンプレート CloudFrontとAdobe Media Serverを利用したHTTPライブ配信 • http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/LiveStreamingAdob eMediaServer5.0.html CloudFrontとIIS Media Serviceを利用したライブ Smooth Streaming配信 • http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/IISLiveSmoothStrea ming4.1.html CloudFrontとWowzaを利用したHTTPライブ配信 • http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/live-streaming- wowza.html 43
  44. 44. レポート & ロギング機能
  45. 45. CloudFront Reports & Analytics • Cache Statistics – キャッシュの利用状況 • Monitoring and Alarming – リアルタイムモニタリングと通知 • Popular Objects – 人気コンテンツの統計情報 • Top Referrers – リファラーの統計情報 • Usage – リクエスト数およびデータ転送量 • Viewers – クライアントデバイスの統計情報 Cache Statistics / Popular Objects / Top Referrers / Usage / ViewersはAWS Management Consoleのみで参照可能 45
  46. 46. CloudFront Reports & Analytics • Cache Statistics / Popular Objects / Usage /Top Referrers / Viewers に関してはCloudFrontの利用状況における傾向分析として利用 – 直近60日間のグラフが参照可能 – 1時間単位もしくは日単位でのグラフ表示 – グラフへの反映までには3時間程度Delay – CSVへのエクスポートも可能 – フィルタリング • 全DistributionもしくはDistribution単位 • 期間指定 • エッジ地域 • Monitoring and Alarmingはリアルタイムの利用状況の確認により、アク セス状況のリアルタイム監視として利用 – 数分の遅延で利用状況を把握可能 – Cloudwatchのアラート機能を利用し、突発的なアクセスやエラーレートの上昇の検知に よる通知が可能 – 3〜5分程度のDelayで検知 46
  47. 47. CloudFront Reports & Analytics • Cache Statistics – Total Request • 全リクエスト数 – Percentage of Viewer Requests by Result Type • CacheのHit/Miss/Errorの割合 – Bytes Transferred to Viewers • クライアントへの総データ転送容量 • Miss Hitしたリクエストに対する総データ転送容量 – HTTP Status Codes • 2XX, 3XX, 4XX, 5XX毎の応答数 – Percentage of GET Requests that Didn’t Finish Downloading • ダウンロードを完了出来なかったGETリクエストの割合 47
  48. 48. CloudFront Reports & Analytics • Monitoring and Alarming – CloudWatchを利用するため、しきい値設定によるアラート連携も可能 – CloudFrontのCloudWatchメトリックスはVirginiaリージョンに出力される – メトリックス • 4xxErrorRate, 5xxErrorRate, TotalErrorRate • BytesDownloaded, BytesUploaded • Requests 48
  49. 49. CloudFront Reports & Analytics • Popular Objects – Distribution毎のリクエスト数の多いTop 50コンテンツリスト • Object • Requests • Hits, Hit %, Misses • Total Bytes, Bytes From Misses, • Incomplete Download, Response Code 49
  50. 50. CloudFront Reports & Analytics • Top Referrers – Distribution毎のリクエスト数の多いTop 25のリファラードメイン • Referrersドメイン • Request Count • Request % 50
  51. 51. CloudFront Reports & Analytics • Usage – Number of Requests • HTTPリクエスト数 • HTTPSリクエスト数 – Data Transferred by Protocol • HTTPによるクライアントおよびオリジンに対して送信したデータ転送容量 • HTTPによるクライアントおよびオリジンに対して送信したデータ転送容量 – Data Transferred by Destination • CloudFront Edgeからクライアントに送信したデータ転送容量 • CloudFront Edgeからオリジンに送信したデータ転送容量 51
  52. 52. CloudFront Reports & Analytics • Viewers – Distribution毎のクライアントデバイス情報 • Devices – デバイス種別の比率 – デバイストレンド(日単位でのデバイス毎のリクエスト数) • Browsers – ブラウザー種別の比率 – ブラウザートレンド(日単位でのブラウザー毎のリクエスト数) • Operating Systems – OS種別の比率 – OSトレンド (日単位でのOS毎のリクエスト数) • Locations – Locationトレンド(日単位での地域毎のリクエスト数) – Location毎の比率 (Request Count/Request%/Bytes) 52
  53. 53. Access Log • CloudFrontアクセスログ – 任意のS3 Bucketに出力可能 – アクセスログの出力はタイムラグあり 項目 説明 date アクセス日(UTC) time アクセス時間(UTC) x-edge-location エッジロケーションID sc-bytes 配信Byte数(ヘッダー含む) c-ip クライアントIPアドレス cs-method HTTPアクセスMethod cs(Host) CloudFront Distributinドメイン名 cs-uri-stem リクエストURI sc-status レスポンスコード cs(Referer) リファラ cs(User-Agent) クライアントユーザエージェント cs-uri-query リクエストQuery Strings cs(Cookie) リクエストCookieヘッダー 項目 説明 x-edge-result-type Hit:キャッシュヒット RefreshHit:キャッシュがExpireされていた Miss:キャッシュミス LimitExceeded: CloudFrontのリミットオーバ CapacityExceeeded: エッジのキャパシティ不足 Error:クライアントもしくはオリジンによるエラー x-edge-request-id CloudFrontのリクエストID x-host-header リクエストHost Header cs-protocol リクエストプロトコル(http / https) cs-bytes リクエストByte数(ヘッダー含む) time-taken CloudFrontエッジがリクエストを受けて、オリジンからLastByte を取得するまでにかかった秒数 x-forwarded-for ViewerがHTTPプロキシなどを利用した場合の元Viewr IP ssl-protocol クライアントとHTTPS通信をした際の利用したプロトコル ssl-cipher クライアントとHTTPS通信した際の利用した暗号化方式 x-edge-response- result-type Viewerにレスポンスを返す直前の処理分類 ※分類はx-edge-result-typeと同様53
  54. 54. CloudFrontログ & レポート CloudFront クライアント S3 Management Console アクセスログ アクセスや利用状況傾向の 確認及び分析 Cache Statistics Popular Objects Top Referrers Usage Viewers Cloudwatch Monitoring and Alarming障害/異常検知や現状の利用確認 Access Log 複雑なアクセスや利用傾向分析 データの可視化と詳細な障害分析 リアルタイム モニター レポーティング Redshift ElasticSearch 54
  55. 55. アーキテクチャ & TIPS
  56. 56. Amazon CloudFrontの使いドコロ • Amazon S3を利用してWebコンテンツを配信する場合 CloudFrontとS3を組み合わせて利用することを推奨 CloudFront S3 クライアント Amazon S3はCloudFrontと組み合わせることで、スパイクアクセス含め、 よりスケーラブルにあらゆる規模にも対応配信が可能になる フルマネージド配信環境のため、運用が一切不要 56 フルマネージド キャッシュ
  57. 57. Amazon CloudFrontの使いドコロ • 大小問わずWebサイトのフロントキャッシュサーバとして Webサーバ 静的コンテンツ中心のサイト CloudFront S3 クライアント CMS 静的ファイルに出力 フルマネージド Webサーバ 動的コンテンツ中心のサイト CloudFront クライアント 一部HeaderでのClient判定や、POSTなどの動的 ページも対応可能 Webサーバの機能(mod_rewriteなど)で静的ファイル のパスをCloudFront経由に強制書換え パッケージCMSの利用もしくは既存構成に大きな変更 が加えられない場合 静的ファイル パスの書換ページアクセ ス 静的ページ取 得 静的ページの みキャッシュ キャッシュ 57
  58. 58. Amazon CloudFrontの使いドコロ • 大小問わずWebサイトのフロントキャッシュサーバとして Webサーバ 大容量のコンテンツを扱うサイト CloudFront クライアント 静的コンテンツストレージとしてS3を活用 動的ページアクセス 静的コンテンツ取得 静的コンテン ツキャッシュ S3 CMS AWS CLI / SDKを利用して ファイル転送やディレクトリ 同期 58
  59. 59. Amazon CloudFrontの使いドコロ • 大小問わず動画配信サイトのフロントキャッシュサーバとし て オンデマンド動画配信プラットフォーム CloudFront S3 クライアント フルマネージド動画配信プラットフォーム Elastic Transcoder Flash (RTMP/RTMPE/RTMPT/RTMPET) HTTP Live Streaming (HLS) Smooth Streaming 動画フォーマット変換 ストリーミング配信 キャッシング 59
  60. 60. Amazon CloudFrontの使いドコロ • 大小問わず動画配信サイトのフロントキャッシュサーバとし て ライブ動画配信プラットフォーム CloudFront クライアント マルチデバイスHTTPライブ配信 Flash (RTMP/RTMPE/RTMPT/RTMPET) HTTP Live Streaming (HLS) Smooth Streaming 映像送信 ライブ配信配信 配信 AWS Cloud Formation Template LiveEncoder LIVE Internet ライブ配信サーバ EC2 一括デプロイ 60
  61. 61. DNS名前解決の高速化 • Route 53と連携したDNS Lookupの高速化 – CloudFrontのAlternative Domain NameをRoute53を利用して名 前解決する際は、レコードセットTypeをCNAMEではなくAレコー ドのAlias設定することでクエリの回数が削減 > nslookup cdn.awssummit.co.jp Server: 192.168.2.1 Address: 192.168.2.1#53 Non-authoritative answer: cdn.awssumit.co.jp canonical name = dxxxx.cloudfront.net. Name: dXxxx.cloudfront.net Address: 54.230.234.XXX Name: dXXXX.cloudfront.net Address: 54.230.234.XXX : CNAM E A Record + Alias cdn .awssummit.co.jp. > Nslookup cdn.awssummit.co.jp Server: 192.168.2.1 Address: 192.168.2.1#53 Non-authoritative answer: Name: cdn.awssumit.co.jp Address: 54.230.234.XXX Name: cdn.awssumit.co.jp Address: 54.230.234.XXX Name: cdn.awssumit.co.jp Address: 54.230.235.XXX : 61
  62. 62. リアルタム障害/異常検知 • Cloudwatch Alarmの活用 – Requestメトリックス • 上限値アラーム設定による突発的なアクセス検知 • 下限値アラーム設定によるアクセス障害検知 – TotalErrorRateメトリックス • 上限値アラーム設定によるオリジンエラー障害検知 62
  63. 63. Amazon S3オリジン自動キャッシュの無効化 • Lambdaを活用した自動キャッシュの無効化 – S3への最新コンテンツのアップロードに連動して、CloudFrontから対象 コンテンツのInvalidationを自動発行 – S3のイベントおよびLambdaを利用し、CloudFrontのInvalidation API をコール S3 CloudFront Lambda オリジン 管理者 アップロード Lambda Function呼 び出し S3イベント CloudFront Invalidation API 呼び出し キャッシュの Invalidation ※Lambda Functionのプログラムは別途作成する必要あり 63
  64. 64. Pricing
  65. 65. CloudFront プライスモデル ①データ転送アウト ②リクエスト ③独自SSL証明書 EC2 S3オンプレ 2016年1月時点 ④オリジンへのデータ転送アウト ⑥無効リクエスト 米国 ヨーロッ パ 香港,フィリピン,韓国, シンガポール,台湾 日本 南米 オースト ラリア インド 予約容量の 価格 最初の10TB/月 $0.0.85 $0.085 $0.140 $0.140 $0.250 $0.140 $0.170 問い合わせ 次の40TB/月 $0.080 $0.080 $0.135 $0.135 $0.200 $0.135 $0.130 問い合わせ 次の100TB/月 $0.060 $0.060 $0.120 $0.120 $0.180 $0.120 $0.110 問い合わせ 次の350TB/月 $0.040 $0.040 $0.100 $0.100 $0.160 $0.100 $0.100 問い合わせ 次の524TB/月 $0.030 $0.030 $0.080 $0.080 $0.140 $0.095 問い合わせ 問い合わせ 次の4PB/月 $0.025 $0.025 $0.070 $0.070 $0.130 $0.090 問い合わせ 問い合わせ 次の5PB/月以上 $0.020 $0.020 $0.060 $0.060 $0.125 $0.085 問い合わせ 問い合わせ 米国 ヨーロッ パ 香港,フィリピン,韓国, シンガポール,台湾 日本 南米 オーストラリ ア インド 予約容量の 価格 HTTPリクエスト $0.0075 $0.0090 $0.0090 $0.0090 $0.0160 $0.0090 $0.0090 問い合わせ HTTPSリクエスト $0.0100 $0.0120 $0.0120 $0.0120 $0.0220 $0.0125 $0.0120 問い合わせ ②リクエスト(10,000件あたり) ③独自SSL証明書 Distributionに関連付けられた証明書1通につき、月$600 ※SNIの場合は不要 米国 ヨーロッパ 香港,フィリピン,韓国, シンガポール,台湾 日本 南米 オーストラリ ア インド 予約容量の 価格 All Data Transfer $0.020 $0.020 $0.060 $0.060 $0.125 $0.100 $0.160 問い合わせ ④オリジンへのデータ転送アウト(GBあたり) ⑥無効リクエスト 最初の1,000ファイルまで追加料金なし。それ以上はリクエスト毎に$0.005 ⑤データ転送アウト ⑤ CloudFrontへのデータ転送アウト(GBあたり) 別のAWSリージョンまたはAmazon CloudFront、$0.000 ①データ転送アウト(GBあたり)
  66. 66. CloudFront Price Class • Price Classを指定することで、安価なエッジロケーション のみを利用した配信が可能 – Price Classの変更により、ユーザへの配信速度に影響が出る可能性があるため利用の 際は注意が必要 66
  67. 67. Free Tier • AWS無料枠 – サインアップから1年間 – 50GB/月のデータ転送アウト – 2万件/月のHTTPおよびHTTPSリクエスト 検証などで是非ご活用ください 67
  68. 68. まとめ
  69. 69. まとめ • CloudFrontを活用することで – 簡単にサイトの高速化とスケーラビリティを実現可能 – 動的コンテンツへの対応も可能 – プレミアムコンテンツもセキュアに配信 – レポート機能でアクセス傾向分析も可能 – いつでも、すぐに利用できるCDNサービス 69
  70. 70. Appendix • 参考資料 – Amazon CloudFront Developer Guide http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/Introd uction.html – Amazon CloudFront FAQ http://aws.amazon.com/jp/cloudfront/faqs/ – Amazon CloudFront Pricing http://aws.amazon.com/jp/cloudfront/pricing/ 70
  71. 71. AWS Black Belt Tech Webinar 2016 • 2月は「エンタープライズアプリケーション&アーキテクチャ点検月間」です! – 2/3 (水) :お休み – 2/10 (水) :AWS Well-Architected – 2/17 (水) :Amazon WorkSpaces – 2/24 (水) :Amazon WorkDocs • イベントスケジュール http://aws.amazon.com/jp/about-aws/events/ 71
  72. 72. Webinar資料の配置場所 • AWS クラウドサービス活用資料集 – http://aws.amazon.com/jp/aws-jp-introduction/ 72
  73. 73. 公式Twitter/Facebook AWSの最新情報をお届けします @awscloud_jp 検索 最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを 日々更新しています! もしくは http://on.fb.me/1vR8yWm 73
  74. 74. ご参加ありがとうございました。 74

×