CloudFrontとWAF
🔥 Vibe プロンプト
「S3オリジン、WAFレート制限、ジオブロッキング、カスタムドメインSSL付きCloudFrontを設定。」
CloudFront
resource "aws_cloudfront_distribution" "cdn" {
enabled = true
price_class = "PriceClass_100"
origin {
domain_name = aws_s3_bucket_website_configuration.assets.website_endpoint
origin_id = "S3Assets"
custom_origin_config {
origin_protocol_policy = "https-only"
}
}
default_cache_behavior {
viewer_protocol_policy = "redirect-to-https"
compress = true
}
restrictions {
geo_restriction {
restriction_type = "whitelist"
locations = ["TW", "US", "JP"]
}
}
web_acl_id = aws_wafv2_web_acl.main.arn
}
WAFルール
resource "aws_wafv2_web_acl" "main" {
name = "app-waf"
scope = "CLOUDFRONT"
default_action { allow {} }
rule {
name = "RateLimit"
priority = 1
action { block {} }
statement {
rate_based_statement {
limit = 2000
aggregate_key_type = "IP"
}
}
}
}
セキュリティ
ユーザー → CloudFront (WAF) → S3/ALB
├── レート制限
├── AWS管理ルール (SQLi, XSS)
├── ジオブロッキング
└── HTTPS強制
ベストプラクティス
- Origin Shieldでオリジン負荷軽減
- 圧縮有効化(gzip/brotli)
- AWS管理WAFルールを使用
章のまとめ
- コアコンセプトと原理を理解
- 実装方法とテクニックを習得
- 一般的な問題と解決策に精通
- 実際のプロジェクトに適用可能
さらに読む
- 公式ドキュメントとAPIリファレンス
- GitHubのオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ
実装例
基本例
# 完全な実装例を提供します
手順
- セットアップ: 開発環境の設定
- データ: 必要なデータの準備
- 実装: コア機能の構築
- テスト: 動作確認
- 最適化: パフォーマンスの向上
よくあるエラー
| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |
コード例
import sys
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
参考資料
- 公式ドキュメント
- APIリファレンス
- オープンソース例
- コミュニティディスカッション