[AWS SAA対策 自分用メモ] CloudFront について

クラウド

私自身まだ SAA 合格していないので一応 SAA 合格しましたが、記載している情報の信頼性は全く保証できません。

SAA 対策のための自分用メモです。

主に教材として使用しているのは以下の2点です。

CloudFront

概要

  • CDN(= Contents Delivery Network) のこと
  • エッジロケーションでデータをキャッシュして運用できる
    • 応答の高速化
  • エッジロケーションで動作する
    • →グローバルサービス(リージョンフリー)

オリジン

元のコンテンツ保管場所(つまりバックエンド)をオリジンという。

オリジンは2種類ある。

① S3 バケット

  • グローバルに配布
  • OAI(Origin Access Identity)を S3 バケットに指定すると、S3 をパブリックにすることなく、CloudFront だけを公開できる
    • S3はアクセス不可状態にしておき、CloudFront側でディストリビューションをS3に指定した際、OAIの設定にてS3側のバケットポリシーをOAIのみ受け付けるように上書きできる
    • 結果、対象のS3バケットはCloudFrontからのみアクセス可能となる
    • 静的ホスティングに対しても有効
  • S3 へのアップロード入り口としても可能
    • → CloudFront より内側は AWS 専用線のため、アップロードも高速化される
補足

S3 のバケットを静的ホスティングで使用できるが、SSL をしたい場合は CloudFront を手前に置くことで SSL 化を実現できるらしい

② カスタムオリジン(HTTPなど)

以下の3パターンがある。

  • ALB(Application Load Balancer)←これ推奨
  • EC2 インスタンス
    • この場合、EC2インスタンスそのものを公開する必要あり
  • オンプレの公開 HTTP

ALB をオリジンにすると、EC2 インスタンスを公開しなくて良くなる。
→この場合、EC2インスタンスはプライベートサブネットに配置し、セキュリティグループの設定で「ALBのセキュリティグループのアクセスを許可」にする必要あり

VPCAmazon CloudfrontApplication Load BalancerAmazon EC2パブリックSubnetプライベート

補足

たぶんだけど、CloudFront に独自ドメイン名でアクセスできるようにするためには、Route53 などの DNS を CloudFront の手前に置かないといけないと思われる

料金について

料金は以下で決定する

  • CloudFront で受信したリクエストの数
  • データの転送量(CloudFront → オリジン)
    • リクエスト分
  • データの転送量(CloudFront → クライアント)
    • レスポンス分
    • レスポンスの場合は、クライアントの地域により価格が異なる

各種機能

Geo Restriction

  • アクセスする国を制限できる
    • →IPアドレスから場所を特定

CloudFront Signed URL / Signed Cookie

  • 期限付きURLで、特定のユーザーにだけ配信可能(例えば、プレミアムユーザー向け動画など)
    • IPアドレスでアクセスフィルター可能
    • URLだけでなく、Cookieでユーザーにすべて公開も可能
ポイント

Singed Cookie のほうはURLは変わらない(クッキーで判断するだけだから)が、Singed URL のほうは期限付きURLになるので注意。
要は、URLを変えずにプレミアム会員向けに配信したいなどのユースケースでは、Singed URL は使えないということ。

マルチプルオリジン

  • URL のパスや拡張子ごとに、オリジンを別々にルーティング可能
    • 例:*.jpeg はS3へ、 *.html はEC2へ、など

Origin Groups

  • プライマリとセカンダリのオリジンを設定し、プライマリがエラーコードを返すと自動でセカンダリーに切り替える
  • 自動フェイルオーバー
  • Route53 における フェイルオーバーのルーティングポリシーと似ている

Origin Sheild

  • 追加費用を払って、よりキャッシュ比率を高める
    • それによりオリジンの負荷をさらに軽減できる

キャッシュルール

  • URLのパスや拡張子毎に、キャッシュ期間などを設定可能

エッジロケーションでの暗号化

  • エッジロケーションで暗号化し、アプリ層で復号が可能

エッジロケーションでのファイル圧縮

  • オリジンからファイルを取得した際、エッジロケーションでファイルを圧縮した状態でキャッシュできる
    • これにより、料金が安くなる

その他特典

  • WAF、Shield と統合されている → DDos対策

コメント

タイトルとURLをコピーしました