
はじめに
こんにちは、愛知でWEBエンジニアをしているkokuboと申します。
今回はCloudFrontについて基本の部分や自分の知らなかったこと、他にどんなCDNがあるのかを簡単にまとめてみました。
CloudFrontとは
- AWSが提供するCDN
- 世界中のエッジロケーションからユーザーに近い位置で配信
- 世界中にCloudFrontのサーバーがあり近くのサーバーでキャッシュするイメージ
- 動的・静的・ストリーミング配信に対応
- HTTP/HTTPS両方に対応。SSL証明書はACMで無料発行
- キャッシュによる高速化 + オリジン負荷分散
CloudFrontのキャッシュの流れ
下記の図のようにキャッシュがCloudFrontにある場合はCloudFrontからユーザーにレスポンスを行います。
その結果、急激なEC2へのアクセス増加時にもサーバーダウンのリスクを抑えることができます。
CloudFrontの主な要素
- ディストリビューション
- CloudFrontの設定単位
- オリジン
- どこに配信をするか(S3,ALB,EC2,外部サイトなど)
- ビヘイビア
- パスごとのルール設定(オリジン、TTL、Header制御など)
- オリジングループ
- 複数オリジンのフェイルオーバー構成
- キャッシュポリシー
- TTLやCookie/Headerなどのキャッシュ制御定義
- レスポンスヘッダーポリシー
- セキュリティーヘッダーなどの追加設定
CloudFrontの料金(東京リージョン)
- CloudFrontで発生する料金は以下の2項目
- データ転送量
- リクエスト数
- 料金計算の具体例
- 月間17万PVあるワードプレスのサイトに実装した場合
- データ転送料金
- 17万PV × 2.5MB = 425GB/月
- 425GB × $0.114 = 約$48.45/月
- リクエスト料金
- 17万PV × 25リクエスト = 425万リクエスト/月
- 4,250,000リクエスト ÷ 1,000 × $0.009 = 約$38.25/月
- 合計料金
- データ転送料金
- 月間17万PVあるワードプレスのサイトに実装した場合
他のCDNとの比較
- CloudFront
- 従量課金
- 世界中に700以上のエッジロケーション、柔軟なキャッシュ設定
- すでにAWSを使用している、中規模〜大規模サイトに使用
- CloudFlare
- 階層型プラン
- 無料プランで試しやすい、DDosも標準で搭載(L3~L7)
- 転送量がかからない、小〜中規模のサイトに使用、とにかく安い
- Akamai
- 1年契約、一般的に最も高価
- 厳しいセキュリティーやパフォーマンスを最優先したい場合に使用、トヨタ自動車などのでかい会社で古くから使用されている
- 大規模なサイトに最適
まとめ
業務で使用しているCDNには改善の余地が多くあると感じ、今後少しづつ実装をしていきたいと思います
- 意外と料金がかかっている
- それぞれのCloudFrontの設定を確認し、他のCDNを使用した場合と比較してみる
- CloudFrontからCloudFlareに変更して料金を抑えた記事がいくつかあった
- WAFだけではなくCloudFrontの設定でセキュリティーを高めることができそう
- ビヘイビアの設定を再度確認する
- より効率的なキャッシュの設定を行う
- S3を使用してアクセスログの分析をできるようにする
Views: 3