CloudFront is a global CDN, WAF provides DDoS and web attack protection.
Go to AWS Console → WAF & Shield → Create web ACL
Configure:
lexi-wafAdd AWS Managed Rules:
AWSManagedRulesCommonRuleSet - Protects against common vulnerabilitiesAWSManagedRulesSQLiRuleSet - Prevents SQL injectionAWSManagedRulesKnownBadInputsRuleSet - Blocks malicious inputAdd Rate Limiting:
RateLimitRuleGo to AWS Console → CloudFront → Create distribution
Origin Settings:
Default Cache Behavior:
Settings:
Add Origin for API Gateway:
/api/* → API Gateway originCloudFront returns 403: Check origin security group
aws cloudfront get-distribution --id <DISTRIBUTION_ID>
WAF blocking legitimate traffic: Review WAF logs
aws wafv2 get-sampled-requests --web-acl-arn <WAF_ARN>
Cache not updating: Invalidate CloudFront cache
aws cloudfront create-invalidation --distribution-id <ID> --paths "/*"
Continue to Route53 to configure custom domain.