0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS SAA対策】Amazon CloudFront / Global Accelerator まとめ ― CDN vs ネットワーク高速化の使い分けを整理する

0
Posted at

はじめに

AWS Solutions Architect Associate (SAA) の学習中に整理した Amazon CloudFrontAWS Global Accelerator の知識をまとめました。
この2つは「グローバルにコンテンツを配信・高速化する」という点で似ていますが、用途は明確に異なります。試験ではその使い分けが頻繁に問われます。

本記事は個人の学習ノートをベースにしています。誤りがあればコメントでご指摘いただけると助かります。


Amazon CloudFront

主要機能

機能 説明
マルチオリジンルーティング コンテンツタイプ(パスパターン)に基づいて異なるオリジンに振り分け
Origin Group プライマリ + セカンダリオリジンでフェイルオーバー(HA)
Field Level Encryption POST リクエストの特定フィールドをエッジで暗号化(最大10フィールド)
Geo Restriction 地理的位置に基づくアクセス制限
Price Class エッジロケーションのコスト制御
WAF 統合 エッジロケーションで攻撃ブロック

CloudFront の重要ルール

  • ACM 証明書は us-east-1 のみ(S3 バケットのリージョンに関係なく)
  • ルーティング基準 = コンテンツタイプ(パスパターン)のみ(Price Class ではない)
  • HA / フェイルオーバー = Origin Group(Geo Restriction ではない)
  • 機密データ保護 = Field Level Encryption(KMS ではない)

OAI vs OAC

OAI(旧) OAC(新・推奨)
読み取り(GET)
書き込み(PUT/POST)
SSE-KMS

アップロード対応が必要なら OAC が必須です。


CloudFront に関連付けられるもの / できないもの

リソース CloudFront
WAF ACL
OAI / OAC
Security Group
NACL

AWS Global Accelerator

特徴

  • 2つの静的エニーキャスト IP アドレス
  • AWS グローバルネットワーク経由(パブリックインターネットより高速)
  • TCP / UDP サポート
  • 自動フェイルオーバー(数秒)
  • トラフィックダイヤルでリージョンごとのトラフィック割合を制御
  • エンドポイント: ALB、NLB、EC2、Elastic IP

Global Accelerator vs CloudFront

Global Accelerator CloudFront
主な用途 TCP/UDP アプリ高速化 + フェイルオーバー 静的/動的コンテンツ CDN
静的 IP ✅(2つ)
自動フェイルオーバー ✅ 数秒 △ オリジンフェイルオーバー
キャッシュ
プロトコル TCP/UDP HTTP/HTTPS

判断のポイントです。

  • 静的/キャッシュ可能コンテンツ → CloudFront
  • 動的 API / 非 HTTP(ゲーム、IoT、VoIP) → Global Accelerator
  • 静的 IP が必要 → Global Accelerator
  • UDP → Global Accelerator(CloudFront は HTTP/HTTPS のみ)

Global Accelerator を選ぶシグナル

  • マルチリージョン + 自動フェイルオーバー
  • グローバルユーザー + 低レイテンシー
  • 静的 IP が必要(ファイアウォール許可リスト等)
  • TCP / UDP アプリケーション
  • DNS キャッシュの影響を回避したい

試験で問われる設計パターン


CloudFront 系

CloudFront の機能: ルーティング、セキュリティ、HA

シナリオ: CloudFront の機能として正しいものを3つ選んでください。

正解:

  1. コンテンツタイプに基づいて複数オリジンにルーティング
  2. Origin Group でフェイルオーバー(HA)
  3. Field Level Encryption で機密フィールドを暗号化
  • ルーティング基準はコンテンツタイプ(Price Class ではない)
  • HA は Origin Group(Geo Restriction ではない)

静的サイト + サーバーレス + 高パフォーマンス → S3 + CloudFront + Route 53

シナリオ: 静的ウェブサイトをサーバーレスで高パフォーマンスに配信したいです。どの構成が最適でしょうか?

正解: S3(静的ホスティング)+ CloudFront(CDN)+ Route 53(エイリアス)

  • Lambda でウェブホスティングは不可
  • EC2 / オンプレはサーバーレスではない

S3 アウトバウンドデータ転送コスト削減 → CloudFront

シナリオ: S3 からインターネットへのデータ転送コストが高額です。コストを削減するにはどうすべきでしょうか?

正解: CloudFront を S3 の前に配置

  • S3 → CloudFront は無料
  • CloudFront → インターネットは S3 直接より安い
  • エッジキャッシュにより S3 へのリクエスト数自体が減る

動的コンテンツ + 10倍スパイク → ASG(CloudFront ではない)

シナリオ: 高度に動的で頻繁に変更されるコンテンツを配信しています。トラフィックが10倍にスパイクする場合、どの方法でスケールすべきでしょうか?

正解: Auto Scaling Group

  • 「高度に動的で頻繁に変更」→ CloudFront はキャッシュが効かない
  • 動的コンテンツのスケーリングは ASG

CloudFront + S3 アップロード + カスタムドメイン HTTPS → OAC + ACM(us-east-1)

シナリオ: CloudFront + S3 の構成でファイルアップロードに対応し、カスタムドメインで HTTPS を使いたいです。必要な設定は?(2つ選択)

正解:

  1. OAC を有効化(PUT/POST に必要)
  2. ACM 証明書を us-east-1 で作成
  • CloudFront の ACM 証明書は us-east-1 のみ
  • S3 静的ウェブサイトエンドポイントは GET/HEAD のみ

CloudFront 経由のみで S3 アクセス → OAI/OAC + バケットポリシー

シナリオ: S3 バケットへの直接アクセスを禁止し、CloudFront 経由のみでアクセスさせたいです。

正解: OAI(または OAC)を作成 + S3 バケットポリシーを更新

  • S3 にセキュリティグループは存在しない
  • CloudFront に IAM ロールは付けられない

CloudFront + S3 で IP 制限 → OAI/OAC + WAF IP Match

シナリオ: CloudFront + S3 構成で、特定の IP アドレスからのアクセスのみ許可したいです。(2つ選択)

正解:

  1. OAI + S3 バケットポリシーで OAI のみ許可
  2. WAF ACL で IP Match 条件を作成 + CloudFront に関連付け
  • CloudFront には SG / NACL を関連付けできない

SQLインジェクション + XSS 対策 → WAF + CloudFront

シナリオ: アプリケーションを SQL インジェクションや XSS 攻撃から保護したいです。

正解: AWS WAF + CloudFront

  • WAF = SQLi / XSS フィルタリング
  • Shield = DDoS 保護(SQLi / XSS ではない)

Global Accelerator 系

複数リージョンの ALB + ファイアウォール IP 許可 → Global Accelerator

シナリオ: 複数リージョンの ALB を使っていますが、クライアントのファイアウォールに固定 IP を登録する必要があります。設定変更を最小にする方法は?

正解: Global Accelerator → 2つの静的 IP でファイアウォール設定

  • ALB は EIP 不可(IP が変動する)

単一リージョン API のグローバルレイテンシー改善(移行なし)→ Global Accelerator

シナリオ: 単一リージョンにデプロイした動的 API に対して、グローバルユーザーのレイテンシーを改善したいです。アプリの移行は行いたくないです。

正解: Global Accelerator を既存 API の前に配置

  • 動的 API → CloudFront はキャッシュが効かない
  • アプリ複製はコスト高
  • マルチリージョン API Gateway は複雑

Blue/Green + DNS キャッシュ問題 → Global Accelerator

シナリオ: Blue/Green デプロイで DNS キャッシュにより切り替えが遅延しています。即座に切り替える方法は?

正解: Global Accelerator

  • 静的 IP → DNS キャッシュの影響なし
  • Route 53 は TTL キャッシュの影響あり

UDP + 低レイテンシー + グローバル配信 → Global Accelerator

シナリオ: UDP ベースのゲームアプリをグローバルに低レイテンシーで配信したいです。

正解: AWS Global Accelerator

  • CloudFront は HTTP/HTTPS のみ(UDP 不可)

TCP + UDP + グローバル → Global Accelerator + NLB

シナリオ: TCP と UDP の両方を使うアプリケーションをグローバルに展開したいです。

正解:

  1. Global Accelerator + LB 配下の EC2 を登録
  2. 各リージョンに NLB(TCP + UDP)
  • UDP → NLB(ALB は HTTP/HTTPS のみ)
  • PrivateLink は TCP のみ

マルチリージョン + 低レイテンシー + 自動フェイルオーバー → Global Accelerator

シナリオ: マルチリージョンのアプリケーションで低レイテンシーと自動フェイルオーバーを実現したいです。

正解: AWS Global Accelerator

  • Direct Connect はエンドユーザー向けではない
  • Route 53 Geoproximity は TTL 依存で切り替えが遅い

おわりに

CloudFront と Global Accelerator は「グローバル配信」という点で似ていますが、使い分けは明確です。「キャッシュが効く静的/準静的コンテンツ → CloudFront」「動的 API / TCP/UDP / 静的 IP が必要 → Global Accelerator」という判断ができれば、試験で迷うことはなくなります。

間違いや補足があればぜひコメントで教えてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?