Cloudflareに移行したら99%コスト削減できた話
どういうこと?/TL;DR
AWS → Cloudflareに移行したら費用が99%削減できました。
対象読者
- 今CloudFront + S3で構築しているけど転送量に困っている人
- Cloudflare R2を検討している人
- (CloudFrontとCloudflareをよく間違える人)
はじめに
元々、動画CDNの構築はCloudFront + S3で構築していました。
この構成の場合、課金ポイントは主に三つあります。
- CloudFrontのアクセス数に対する課金: そこそこ(多量ではない)
- S3の保管に対する課金: 200GB程度
- CloudFrontの転送量(Egress)に対しての課金: 数TB
そのため、毎回イベントごとにかなり費用がかかる状態でした。
動画の数もアクセス数もそこそこではあったのですが、動画特有の転送量が非常に多い…
そういった状態でした。
導入前夜
この時はちょうど入社して半年ぐらいで、そこそこ業務の内容が入ってきたタイミングでこのアラート・構成を知った感じです。
自分は何年か前からCloudflareをちびちび使ってました。
なので、R2の存在も前々から知っており、見てすぐに「R2に移植したい」とぼやいたところ、「検討の価値あるよ」とのこと。
そこからもう30分ほどでザクザクと検討したところ、
うちの構成だとほぼほぼ全てのコストが吹っ飛ぶことが判明しました。
なんてこった。
このタイミングに計算し、全体の見通しとコスト削減効果が直ぐに確認できたことで、
この移行を進めることになります。
やったこと
バケットの転送
ドメイン自体はCloudflareを使用していたので、そちらのアカウントにR2も追加。
Migrationについては R2 Super Slurperに一連おまかせしました。
R2 Super Slurperの注意点はいくつかあります。
- Migration出来るサイズは1回あたり50GBでした(作業当時)。そのため50GBを超える場合は何回か回す必要がありました(Skip Modeがありますので二回目以降はそれで回す形になります)
- Migrationするために内容取得にかかる費用が掛かります(S3転送量)
- S3削除については実施しません。この際は終了後、問題ないか確認し別途実施しました。
今ですとContinuous Migration(Sippy)があるのでそれを検討してもいいかもしれないです。こちらはこちらでMigrationまでに何回かアクセスしないといけないなどあるため、本番ではまだ使えなさそうですが…
リダイレクトの整備
以前のデータに関してはドメイン単位のリダイレクトで対応しました。CloudflareのドメインについてApexドメインしか持てない制限があるため、リダイレクトをかけることで対応しています。
利用ユーザへの周知
その後S3に元々上げていた社内ユーザに対し手順を用意。
「旧CDNはこれ以降使えなくなるよ、新CDNに移行してね」と連絡し、各自アクセスキーを発行しました。
Cloudflareのアカウントを使わない理由
Cloudflareのアカウント招待がありますよね?なぜそれを使わないの?
と聞かれると思いましたのでこちらに。
Cloudflareはメールアドレス、つまりアカウントでの招待は仕組み上可能です。ですが、ことR2については難しく、「バケット単位」の招待が出来ません。
つまり、もしアカウントでの招待にした場合はR2を増やしていったときに全バケットに対し書き換えの許可を与える必要があります。
流石にこの運用は難しいとなり、現状ではアクセスキーで付与することとしました。
(ただ、こののち緊急時には一部ユーザには権限を与える方向としています)
アップロード方法について
以前のこの記事を読んでいただければと思います。この時は非エンジニア向けの文章で整備し周知しました。
そして迎えた冬
当社のイベントは夏の冬の二回あります。
夏はえらい額かかっていました。
今回も同等のアクセスが来ると考えられCloudflareを確認した結果…Cloudflareの費用は試算の通りでした。
こんな人でも払えるレベルです。
なお、アクセス数取得の関係でAWSからCloudflareにトラフィックをリダイレクトしている関係上、CloudFrontにも若干は乗りました。ただ、諸々の費用を夏と冬で比較した結果…
🎉「99パーセント減を達成しました」🎉
なんてこったい。
まとめ
- Cloudflare R2は転送が安いよ
- 特にエグレス費用0は効果絶大だよ
- なので通信量が大きいCDNなら効果が高いよ
おまけ
社内で報告したところ
社長から褒められました。
今度焼き肉を奢ってもらいます。
Discussion
typoでしょうか?
バゲット => バケット
ご指摘ありがとうございます。typo/記憶違いですね…訂正しました。
egress無料ってワケワカメ
これ、インフラ系SREとしてしびれる話ですね。
いつか自分もこんな提案したいですね。