Amazon CloudFrontは、AWSが提供するCDN(Content Delivery Network)サービスです。世界中のエッジロケーションからコンテンツを配信し、サイトの高速化・負荷分散・DDoS対策に効果を発揮します。本記事では、CloudFrontの基本と設定手順を解説します。
CloudFrontとは
CloudFrontはS3・EC2・ALB・外部オリジンなどのコンテンツを、世界数百か所のエッジロケーションにキャッシュ・配信します。ユーザーは地理的に近いPoPからレスポンスを受け取れるため、レイテンシが大幅短縮されます。
基本構成
- Distribution:CDN設定の単位
- Origin:オリジナルコンテンツの源(S3 / ALB / カスタムオリジン)
- Behavior:パスパターンごとのキャッシュ動作・許可メソッド・TTLなど
- Cache Policy / Origin Request Policy:キャッシュキーやリクエスト転送の制御
設定手順(コンソール)
- CloudFront コンソールで「Create distribution」
- Origin domain にS3バケットまたはALB DNS名を指定
- OAC(Origin Access Control)でS3への直接アクセスをブロック
- SSL証明書はACM(バージニア北部リージョン)で取得・関連付け
- 独自ドメインを設定(Route 53でAレコード/Aliasを作成)
キャッシュ戦略
- 静的アセット:長期キャッシュ(max-age=1年)
- HTML:短期キャッシュ(数分〜1時間)または都度revalidation
- API:必要に応じて短期キャッシュ(クエリパラメータをキャッシュキーに含める)
- 無効化(Invalidation)はデプロイ時のみ最小範囲で実行
Lambda@Edge / CloudFront Functions
- CloudFront Functions:軽量JS関数。リクエスト/レスポンスヘッダー書き換えに最適
- Lambda@Edge:より複雑な処理。Node.js/Pythonで実装、世界中のエッジで実行
A/Bテスト・ユーザー向けリダイレクト・JWT検証・画像変換などをエッジで完結できます。
セキュリティ
- AWS WAFと統合してXSS/SQLi対策
- AWS Shield(標準)でDDoS基本保護
- Signed URL / Signed Cookieで認可付き配信
- OAC でS3を非公開のまま安全に配信
料金
転送量とリクエスト数による従量課金。1TB / 月あたり数千円〜数万円程度。エッジでキャッシュされる分、オリジン(S3 / ALB)の転送費用も下がるトータルコストが下がるケースが多いです。
まとめ
CloudFrontは、AWSサイトを高速・安全にする標準パーツです。S3 + CloudFrontは静的サイトの王道構成。Lambda@EdgeやCloudFront Functionsを組み合わせれば、エッジコンピューティングまで拡張できます。Webサイト構築時にまず検討すべきサービスです。