⚠ 私自身まだ 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のセキュリティグループのアクセスを許可」にする必要あり
補足
たぶんだけど、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対策
コメント