【レポート】Amazon CloudFrontとAWS Lambda@Edgeの紹介 #reinvent #CTD201

2017.11.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

re:Invent 2017のセッション「CTD201 - Introduction to Amazon CloudFront and AWS Lambda@Edge」を聴講したレポートです。

スピーカーは

  • Tom Witman - Head of BD, Edge/Security, AWS
  • Nishit Sawhney - Principal Product Manager, Amazon Web Services

です。

AWSのエッジサービスとは

  • CloudFrontのエッジキャッシュサーバーによって様々なサービスが提供される
    • Route 53
    • AWS WAF
    • CloudFront
    • Lambda@Edge
  • Webアプリにダイレクトアクセスする
    • クラウドへのネットワークアクセスは地域ISPから遠い
    • AWSのEdgeサービスは地域ISPから近いところで提供
    • エッジロケーション(エッジキャッシュサーバーを提供するデータセンター)は世界中に100超ある
  • CloudFrontの動作
    • ユーザーからの初回アクセスはオリジン(キャッシュ元)から取得
    • 2回目以降はキャッシュサーバーから返答
  • CloudFrontの設定単位 : ディストリビューション
  • CloudFrontのオリジン選択 : パスパターンマッチング
  • サポートするHTTPメソッド
  • 4つのユースケース
    1. Webサイト高速化
    2. ユーザー体験のカスタマイズ
    3. ライブ/オンデマンドのストリーミング
    4. セキュアコンテンツ

1. Webサイト高速化

  • WordPressのCloudFront構成例
    • 静的コンテンツと動的コンテンツの使い分け
    • 静的コンテンツはTTLを長くし、キャッシュを効かせる。ヘッダやクエリストリングは転送しない。CloudFrontのデフォルト設定を使う。
    • 個別のキャッシュ Varyヘッダの設定例
    • 動的コンテンツは短いTTL、クエリストリング単位のキャッシュが可能。APIコールにも有効。1000RPSのリクエストを捌くのを想像してみて
  • TCPハンドシェイクの効率化KeepAliveでキャッシュ-オリジン間のコネクションコストを削減
  • TLS/SSL最適化
    • HTTP/2もサポート
    • セッションチケット
    • OCSP Stapling
    • PFS
  • 事例: Slack Web API。GET/POSTリクエストでJSONのレスポンスを改善

2. ユーザー体験のカスタマイズ

  • Lambda@Edgeの利用
  • ユーザーのLambda関数をエッジサーバーで実行。プロセスを常駐させる必要はなく、実行時間単位の課金
  • トリガーは4種類。Viewer Request, Origin Request(キャッシュミスのとき), Origin Response, Viewer Response。レスポンストリガーはレスポンス内容の変更を想定
  • ユースケース
    • コンテンツのカスタマイズ
    • 訪問者セッションの検証。トークンとか。
    • URLカスタマイズ
    • A/Bテスト
    • セキュリティ HSTS対応やボット対策
  • ブループリントでユースケースごとのサンプルコードが選べる。ほかにもAWS Compute Blog、AWS Networking Blogにも。
  • 最近追加された新機能
    • コンテンツベースのオリジン選択(11月リリース)
    • バイナリサポートRekognitionの画像アップロードとの組み合わせを例示していました

3. ライブ/オンデマンドのストリーミング

  • サポートするオリジン
    • S3
    • EC2 with Streaming Software
  • Content Typeの設定
  • コンテンツの保護: Signed Cookieの利用
  • ハイトラフィックなイベントに対応するための準備ビジネスサポートへの加入を推奨
  • 事例 : Hulu

4. セキュアコンテンツ

  • 様々なセキュリティオプション
  • 新機能、Field-Level Encryptionの発表。リリースは12月予定
  • 他のサービスの組み合わせ
    • AWS WAF : OWASP対応も
    • AWS Shield Advanced
    • AWS Certificate Manager
    • AWS Config
    • AWS CloudWatch

所感

CloudFrontとLambda@Edgeの概要紹介として、よくまとまっているセッションでした。ちょっとボリュームが多いので、初心者が理解するにはそれなりに時間がかかる感じはしますw