5年前、Cloudflareは「あのCDN会社」だった。
今は?Workers、R2、D1、Durable Objects、AI Gateway。完全なクラウドプラットフォームだ。あまりにも静かにやったので、ほとんどの開発者はまだCDNだと思っている。
AWSのアプローチ:
us-east-1にデプロイ
シンガポールのユーザー: 200msのレイテンシ
Cloudflareのアプローチ:
一度デプロイ
300+のデータセンターで実行
シンガポールのユーザー: 20msのレイテンシ
AWS:リージョンを選んで、デプロイして、ユーザーが地球の裏側にいないことを祈る。
Cloudflare:一度デプロイすれば、どこでも同時に動く。リージョン選択なし。気になるほどのコールドスタートなし。
エッジがコンピュータだ。 根本的に異なるアーキテクチャ。
ストレージ: AWSにはS3、CloudflareにはR2。違いは?R2はエグレス料金がゼロ、AWSは$0.09/GBチャージ。
コンピュート: Lambda vs Workers。Lambdaのコールドスタートは100-500ms、Workersは0-5ms。
CDN: CloudFrontは別サービス、Cloudflareは組み込み。
R2はエグレス料金ゼロ。 AWSは自分のデータを取り出すのにお金を取る。
月に10TBの画像を配信するスタートアップの場合:
これはリアルマネーだ。
同じコード、異なるデプロイモデル。Workersはユーザーに近い場所で動く。
Cloudflareが勝つ:
AWSがまだ勝つ:
トリッキーな部分:
「マイグレーションすべきか?」ではなく:「AWSを使っているのは必要だからか、それともデフォルトだからか?」
スタートアップの現実チェック:実際に使っているAWSサービスは?約5%。支払っているサービスは?100%。IAMポリシーに費やした時間は?数週間。リージョン選択の恩恵を受けるユーザーは?ゼロ。
ほとんどのスタートアップはEC2、S3、Lambdaを使う。グローバルプロダクトにリージョンベースの料金を払う。誰も理解できないIAMポリシーに何週間も費やす。
アプリがどこでも速くなければならないAPIなら—まずCloudflareを見ろ。
最高のインフラは、考えるのをやめられるインフラだ。
— blanho
Pod、Deployment、Service、Ingress — どれもランダムじゃない。すべては前のレイヤーの障害モードへのパッチだ。
Netflixの問題なんか抱えてない。3人の開発者と1つのPostgresデータベースがあるだけだ。
みんな箱と矢印を描いている。誰もコードをリリースしていない。システム設計は重要だ、でもTwitterが思うほどじゃない。
# AWS Lambda(リージョン固定)
def handler(event, context):
# コールドスタート: 100-500ms
# us-east-1でのみ実行
return {"statusCode": 200}
# Cloudflare Worker(エッジネイティブ)
export default {
async fetch(request) {
// コールドスタート: ~0ms
// 300+の場所で実行
return new Response("Hello")
}
}