WAF と Shield、DDoS 対策で本当に選ぶべきなのはどっち?
AWS の学習を進めていると、AWS WAF と AWS Shield の違いが曖昧なままになることがよくあります。
名前も近く、どちらも「攻撃を防ぐサービス」に見えるので、
- WAF があれば DDoS 対策は十分なのでは?
- Shield があるなら WAF は不要では?
と考えてしまいがちです。
結論から言うと、この2つは競合するサービスではありません。役割が異なるため、基本は組み合わせて使います。
この記事では、試験対策でも実務でも混同しやすい WAF と Shield の違いを、できるだけシンプルに整理します。
まず結論
- AWS WAF: HTTP/HTTPS レベルのリクエストをルールベースで制御する
- AWS Shield: DDoS 攻撃に対する保護基盤を提供する
ざっくり言うと、
- WAF は L7 の細かい制御
- Shield は DDoS 耐性の土台
です。
つまり、「どちらを選ぶか」ではなく、何をどのレイヤーで守りたいかで考えるのが正解です。
WAF と Shield の違いを表で整理
| 観点 | AWS WAF | AWS Shield |
|---|---|---|
| 主な対象 | HTTP/HTTPS リクエスト | DDoS 攻撃 |
| 主なレイヤー | L7 | 主に L3/L4 |
| 得意なこと | SQLi/XSS 対策、Geo 制限、Rate-based ルール | 大量トラフィック攻撃への耐性 |
| 運用の粒度 | ルール単位で細かく調整 | 基盤保護 + 上位プランで強化 |
| 典型ユースケース | Web アプリの防御 | 大規模な攻撃への備え |
この表だけでも、かなり整理しやすくなるはずです。
AWS WAF は何をしてくれるのか
AWS WAF は、アプリケーションに届く HTTP/HTTPS リクエストを評価し、条件に応じて許可・遮断します。
たとえば以下のようなケースに向いています。
- 特定の国からのアクセスを制限したい
-
/loginや/api/への過剰アクセスを抑えたい - SQL インジェクションや XSS のリスクを下げたい
- Bot 的な挙動をルールベースで制御したい
つまり WAF は、アプリの手前に置く関所です。
「どんなリクエストを通し、どんなリクエストを止めるか」を細かく決めるのが WAF の役目です。
AWS Shield は何をしてくれるのか
一方の AWS Shield は、DDoS 攻撃に対する耐性を提供するサービスです。
特に重要なのは、Shield は「アプリの中身を細かく見て判断する」というより、攻撃トラフィックそのものに対する防御基盤だという点です。
Shield Standard
主要な AWS サービスに対する基本的な DDoS 保護です。多くのケースでは、まずこの標準保護が前提になります。
Shield Advanced
より高い可視性や支援が必要な環境向けです。
- 大規模サービスを運用している
- DDoS による停止コストが大きい
- より強い運用体制が必要
といった場合に検討対象になります。
実務ではどう組み合わせるのか
実務では、次のような構成がよく使われます。
Internet
↓
CloudFront (+ Shield)
↓
AWS WAF
↓
ALB / API Gateway
↓
Application
この構成の考え方はシンプルです。
- Shield で DDoS 耐性を確保する
- WAF で L7 の細かい制御を行う
- CloudFront を前段に置いて吸収力と配信効率を上げる
つまり、1つのサービスで全部守ろうとするのではなく、レイヤーごとに役割分担するわけです。
試験で狙われやすいポイント
AWS 認定試験では、WAF と Shield の違いをそのまま問うというより、シナリオの中で使い分けを問う問題が出やすいです。
たとえば、
- Web アプリへの不正な HTTP リクエストを制御したい → WAF
- DDoS 攻撃に備えてサービス全体の耐性を高めたい → Shield
- その両方が必要 → 併用
この整理ができていれば、かなりブレにくくなります。
特に注意したいのは、WAF は DDoS 対策の一部ではあっても全部ではないという点です。
よくある誤解
1. WAF があれば DDoS 対策は十分
これは誤解です。
WAF は非常に重要ですが、主に L7 の制御が中心です。DDoS 全体を WAF だけで語るのは危険です。
2. Shield があるなら WAF は不要
これも誤解です。
Shield は DDoS 耐性の基盤ですが、アプリケーション層での細かな制御は WAF の領域です。
3. どちらか片方だけ選べばいい
実務では、この発想自体がズレていることが多いです。
守りたい対象が違う以上、併用前提で設計した方が自然です。
最初に導入するならここから
迷ったら、まずは次の最小セットから考えるのがおすすめです。
- CloudFront を前段に置く
- AWS WAF の Managed Rules を有効にする
- 重要なエンドポイントに Rate-based ルールを設定する
- ログを見ながらルールを調整���る
- ビジネス影響が大きい場合は Shield Advanced を検討する
いきなり完璧を目指すより、基本構成を押さえてから強化する方が運用しやすいです。
まとめ
WAF と Shield は似ているようで、守るレイヤーも役割も違います。
- WAF はアプリケーション層の制御
- Shield は DDoS に対する基盤防御
なので答えはシンプルです。
「どちらを選ぶか」ではなく、「どう組み合わせるか」を考える。
この視点を持っておくと、AWS の設計でも試験対策でも判断を間違えにくくなります。