CloudFront×WAF×ShieldでEC2を守る設計図 グローバル配信の定番パターンを整理

AWS

なぜEC2を直接公開しないのか

EC2にWebサーバーを立てて、セキュリティグループで80/443を開ければ、ひとまず公開はできます。ですが、グローバル向けのサービスになるほど「公開のしかた」がボトルネックになります。SAA-C03の学習でも、ここを“機能の暗記”ではなく“設計の理由”として押さえておくと、問題文の条件から自然に選べるようになります。

まず、EC2直公開がつらくなる代表例は次の3つです。

  • 世界中からのアクセスで遅くなる
    ユーザーが遠いと往復遅延が増えます。アプリが重くなくても体感は落ちます。
  • 攻撃トラフィックの受け皿が小さい
    レイヤ3/4の大量トラフィックや、レイヤ7のHTTPフラッドが来ると、EC2やALBが先に疲弊します。
  • 入口がバラけて運用が難しくなる
    TLS設定、ヘッダー付与、アクセス制御、ログ、制限、緩和策が各所に散ると、変更が怖くなります。

ここで登場するのが CloudFrontを入口に集約し、WAFとShieldを“入口側”で効かせる考え方です。CloudFrontはCDNとしてだけでなく、エッジの分散基盤として「近い場所から配信」「キャッシュでオリジン負荷を下げる」「入口を一本化する」をまとめて実現します。さらに、CloudFrontはAWS WAFを関連付けてリクエストを事前に弾けます。


SAA-C03対策で評価の高いUdemy講座をまとめて確認できます。👇

CloudFrontを前段に置く基本アーキテクチャ

ここでは、SAA-C03でよく出てくる“定番の置き方”を、実務でもそのまま使える形で整理します。

代表的な構成はこうです。

  • ユーザー → CloudFront → ALB → EC2
    いちばん汎用的。ALBでパス分岐やターゲット管理ができ、EC2の増減にも強いです。
  • ユーザー → CloudFront → EC2
    小規模や単一ホスト構成。あとでALBに差し替えやすいように、最初からCloudFrontを入口にしておくのがコツです。
  • ユーザー → CloudFront → オリジンをプライベート化
    最近は、オリジンをVPC内のリソースとして扱い、外部から直接叩かれないように寄せる選択肢もあります。

重要ポイントは「オリジン直叩きを減らす」

CloudFrontを置いても、オリジンがインターネットから直接叩けるままだと、攻撃者はCloudFrontを迂回できます。つまり「入口はCloudFrontに集約したいのに、裏口が開いている」状態です。

AWS公式ドキュメントでは、ALBをオリジンにする場合の対策として、次の組み合わせが案内されています。

  • CloudFrontからALBへのリクエストに カスタムヘッダー を付ける
  • ALB側は、そのヘッダーを満たすものだけを転送し、それ以外は403で返す
  • 可能ならCloudFront→ALB間もHTTPSにして、ヘッダー漏えいリスクを下げる

さらにネットワーク層でも絞るなら、CloudFrontのマネージドプレフィックスリストをセキュリティグループに使って、CloudFrontのオリジン向けIP帯だけを許可する方法があります。CloudFrontのオリジン向けプレフィックスリストは名前も明示されています。

この「ヘッダーでのアプリ層ガード」と「プレフィックスリストでのネットワーク層ガード」を合わせると、裏口をかなり塞ぎやすくなります。


AWS WAFでアプリ層の攻撃を止める考え方

AWS WAFは、HTTP(S)リクエストを見て“通す・止める”を決める仕組みです。重要なのは、WAFを「とりあえず付ける防具」ではなく、アプリの入口に置くルールエンジンとして設計することです。

CloudFrontと組み合わせると、リクエストがオリジンへ届く前にエッジ側で弾けます。これはオリジン保護の観点で効きます。

WAFの設計で迷いがちなポイント

どこに関連付けるか

SAA-C03では「CloudFrontに関連付けるのか、ALBなどリージョナルに関連付けるのか」で混乱しやすいです。CloudFrontを入口にするなら、まず CloudFrontにWeb ACLを関連付けるのが基本です。CloudFrontは関連付けの手順や、CloudFrontの場合の扱いも明確に区別されています。

何を守りたいかを先に決める

WAFのルールは「SQLiを止めたい」「不要な国からのアクセスを抑えたい」「ログイン試行を抑制したい」など、目的とセットで強くなります。たとえばECサイトなら、次のような“狙われ方”を想定すると設計が進みます。

  • ログイン画面に対する総当たり
  • 検索窓やパラメータに対するインジェクション系
  • 注文APIに対する高頻度リクエスト
  • ボットによる在庫監視や価格スクレイピング

レート制限と段階導入

WAFではレートベースの制御などで、短時間の大量リクエストを抑えられます。とはいえ、いきなり厳しくすると正規ユーザーまで巻き込みます。AWS公式のベストプラクティスでも、通常時のトラフィックを前提にした調整や、段階的な導入の考え方が示されています。

SAA-C03目線のコツ

試験対策としては「WAF=L7の入口制御」「CloudFrontに付けるとオリジンに届く前に弾ける」という因果を押さえるのが近道です。問題文で「世界中から」「急なアクセス増」「EC2の負荷を下げたい」「攻撃対策」などが混ざっているとき、CloudFront+WAFが自然に浮かびます。


AWS ShieldでDDoSに備える基本とAdvancedの位置づけ

ShieldはDDoS対策のサービスで、StandardAdvancedがあります。ここも暗記で分けるより、まず「どの層の攻撃に何が効くか」で整理すると混乱しません。

AWS公式では、Shieldがレイヤ3/4だけでなくレイヤ7も含むDDoSに対応すること、Standardが自動で提供されること、より高い保護としてAdvancedがあることが説明されています。

Shield Standardは前提として“付いている”

Standardは追加料金なしで自動的に提供され、特にCloudFrontやRoute 53、Global Acceleratorでメリットが大きいとされています。つまり、CloudFrontを入口にするだけで「DDoS緩和の土台」に乗りやすくなります。

Shield Advancedは何が違うのか

Advancedは、より高いレベルの保護を必要とするケースの選択肢です。保護対象リソースの種類や、どの層まで保護が及ぶかが整理されています。

設計の感覚としては、こんな線引きが実務ではよくあります。

  • Standardでまず土台を作る
    CloudFrontを前段に置く。裏口を塞ぐ。キャッシュ戦略でオリジン負荷を落とす。
  • Advancedを検討するのは“事業影響”が大きいとき
    たとえば売上直結のECで、攻撃時の運用体制や復旧コスト、機会損失まで含めて考える段階。

また、AWS公式ではShield Advancedを他サービスと組み合わせるユースケースも整理されています。CloudFrontやALBとセットで守る考え方は、試験でも実務でも筋が通ります。


組み合わせ設計のチェックリストとよくある落とし穴

最後に「CloudFront+WAF+Shield」でEC2を守るときの、設計チェックポイントをまとめます。SAA-C03の設問でも、ここが抜けると選択肢で迷いやすいところです。

入口をCloudFrontに集約できているか

  • 可能なら CloudFront→ALB→EC2 の一本化
  • どうしても直アクセスが必要なAPIは、用途ごとに入口を分ける判断もあり得ます(全部を無理に一つにしない)

オリジン直叩き対策ができているか

  • カスタムヘッダー+ALBのルールで403返し
  • CloudFrontマネージドプレフィックスリストでネットワーク層も絞る
  • さらに踏み込むなら、VPC内オリジンとして“直接届かない”構成も検討

WAFの運用設計があるか

  • 最初はログ中心、段階的にブロックへ
  • 何を守るか(ログイン、注文API、検索)を先に決める
  • 通常時トラフィックの把握と調整の前提を作る

Shieldは“CloudFrontを前に置くこと”がまず効く

  • Standardが前提として効く場所を理解しておく
  • Advancedは事業要件と運用体制まで含めて検討

よくある落とし穴

  • CloudFrontを置いたのに、ALBやEC2がインターネットから誰でも叩けるまま
  • WAFを強くしすぎて、正規ユーザーまで落とす
  • キャッシュ設計が弱く、CloudFrontを置いたのにオリジン負荷が下がらない
  • 証明書やHTTPS区間の整理が曖昧で、通信の前提が崩れる

まとめ

EC2をグローバルに公開するときは、サーバーそのものを強化する前に「入口をどう設計するか」で難易度が大きく変わります。CloudFrontを前段に置くと、世界中に近い場所から配信でき、キャッシュでオリジン負荷を下げられます。その上でAWS WAFを関連付ければ、悪意あるHTTPリクエストをオリジンに届く前に止めやすくなります。

DDoS対策はShieldが土台です。Shield Standardは自動的に提供され、CloudFrontを入口にするだけでもメリットが得られます。より強い保護や体制が必要な場合にShield Advancedを検討する、という順番で考えると整理しやすいです。

そして忘れがちなのが、オリジン直叩き対策です。CloudFrontからのカスタムヘッダーを使った制御や、CloudFrontマネージドプレフィックスリストでのセキュリティグループ制限など、入口を一本化するための“裏口対策”まで含めて完成形になります。

SAA-C03の学習では、WAFとShieldを別々の暗記事項にせず、CloudFrontを入口に置いたときに「どの層のリスクを、どこで落とすか」という設計ストーリーとしてつなげておくのが効果的です。もし体系的に復習したいなら、SAA-C03対策のUdemy講座で、CloudFrontとWAFとShieldを“構成として”扱っている教材を一つ決めて、図を描きながら追いかけるのがおすすめです。

SAA-C03対策で評価の高いUdemy講座をまとめて確認できます。👇

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