cloudflareを調べてみる
Cloudflare is 何?
CDN(コンテンツ配信ネットワーク)サービスを提供する会社。さまざまなサービスを提供している。
- Webアプリケーションのホスティングサービス(Pages)
- サーバーレス環境を提供するサービス(Workers)
- サーバーレスSQLデータベース(D1)
- オブジェクトストレージサービス(R2)
- サーバーレスKey-Valueストレージ(KV)
- インターネットセキュリティサービス、DDoS防御、分散型ドメイン名サーバシステム等多くのサービスを提供している
CDN とは何か
AWS,GCPの場合サービスを載せるサーバーのリージョンを選択する必要がある。
日本のクライアントからアメリカのサーバーにアクセスしようとすると、距離がある為レイテンシが生じる。
これを解決する方法として、CDN があげられる。
地理的な制約による遅延軽減だけでなくサーバーへの負荷分散を同時に実現できる。
CDN では、コンテンツが入っている元の Web サーバーへのアクセス集中を防ぎ、世界中に設置されているエッジサーバーの中から地理的に近いエッジサーバーに誘導する。
エッジロケーションはユーザーからのアクセスがあると、オリジンサーバを参照して次回以降のアクセスのためにコンテンツをキャッシュしておき、次回以降のアクセスでは、キャッシュしたコンテンツをユーザーに配信する。
これにより、オリジンサーバーにアクセスするはずだったリクエストをエッジロケーションが代理して担当することで、負荷分散と地理的な高速配信を実現できる。
AWSなら CloudFront, GCPなら Cloud CDNがあるが、Cloudflare を使用する場合、特に設定することなくデフォルトでついてくる。
Cloudflare でデプロイする際に、デプロイ先のサーバーを指定することがなく、世界中のエッジサーバーにデプロイされる。
Cloudflare Pages
Webアプリケーションのホスティングサービス。
HTML, CSS, JavaScript だけの静的ページから、Cloudflare Functionsと組み合わせることでNext.jsやRemixといったSSRを使用するフルスタックアプリケーションもホスティング可能。
とにかく簡単にデプロイできる。
- GitHubリポジトリと連携すると...
- PRごとにpreview環境を作成
- 指定したbranchに変更が加わるとデプロイ
- wragler CLI からも deploy コマンドでデプロイ可能
Cloudflare Workers
サーバーレスアプリケーションを構築できるサービス。
Cloudflare D1
サーバーレスリレーショナルデータベース。
SQLでクエリをかける。
Cloudflare R2
グローバルネットワークで提供されるオブジェクトストレージ。