#40 Amazon CloudFront

Abstract

加藤がSAPの勉強中。その中からCloudFrontをネタに取り上げて話したよ。

Date
2021-02-22 10:48

Show Notes

Amazon CloudFront

  • Amazon CloudFrontとはCDNサービスである
  • CDNとは、同一のコンテンツをより素早く効率的に配信するためのネットワークである ​
  • S3やEC2等を利用すると、簡単に世界中のユーザからコンテンツにアクセス可能にできる
  • ただし、以下のような課題がある
    • 大量のアクセスがある場合、アクセス数分の負荷に耐えなければならない
    • ユーザから遠いロケーションに配置されたコンテンツの取得には時間がかかる
    • XSSやDDoSのリスクがある
    • ・・・等。 ​
  • CloudFrontディストリビューションを作成して、コンテンツを効率的に配信可能
  • ディストリビューションとは、ドメイン単位で割り当てられるCloudFrontの設定の事
  • オリジンサーバをキャッシュし、エッジロケーションにプロビジョニングする
    • オリジンの負荷がオフロードされる
    • ユーザから近いエッジロケーションからコンテンツを取得させる ​
  • 設定で様々なケースに対応可能
    • セキュアに通信をしたければHTTPSを利用する
      • デフォルト証明書、独自SSL証明書が使える
        • 独自SSL証明書はSNI、専用IPアドレスSSL証明書が使える
    • 通信方式の制御も可能(TLS1.2や1.1等)
    • XSSやDDoS等の対策も可能
      • AWS WAFをディストリビューションにセットできる
      • AWS Shieldがデフォルトで組み込まれている
    • アクセス制御をするにはRestricted Viewer Accessを利用
      • 署名付きURLや署名付きCookieを利用する
        • 複数のファイルを制御するなら署名付きCookieを利用
      • S3ならさらにOrigin Access IdentityでS3でアクセスコントロールできる
        • 必ずCloudFrontを経由する仕組みが実現できる
    • 接続地域を制限したいならGeo-Restrictionsを利用
    • POSTリクエストの特定のフィールドだけアクセスできるようにもできる
      • フィールドレベル暗号化を利用
    • キャッシュの制御もできる
      • TTLを設定できる
      • Invalidationでキャッシュの削除もできる
    • コンテンツやヘッダーの加工もできる
      • ビューワーリクエスト→オリジンリクエスト→オリジンレスポンス→ビューワーレスポンスという4つの区間に分けて加工できる
      • ヘッダーを追加したり上書きできる
      • エラーページを設定できる
      • Lambda@Edgeをトリガできる
        • Lambda@Edge内でコンテンツやヘッダを加工できる
          • Header、URL、クエリ文字列の読み書き等が可能
    • ここまでの設定をパス毎に設定できる(パス毎の単位をBehavierという)
    • セカンダリオリジンを設定して、フェイルオーバーの設定もできる
  • CloudWatchと連携して各種ログの確認ができる
mukiudo
mukiudo
Software Engineer