Open15

cloudflareを調べてみる

uretanouretano

Cloudflare is 何?

https://www.cloudflare.com/

uretanouretano

CDN(コンテンツ配信ネットワーク)サービスを提供する会社。さまざまなサービスを提供している。

  • Webアプリケーションのホスティングサービス(Pages)
  • サーバーレス環境を提供するサービス(Workers)
  • サーバーレスSQLデータベース(D1)
  • オブジェクトストレージサービス(R2)
  • サーバーレスKey-Valueストレージ(KV)
  • インターネットセキュリティサービス、DDoS防御、分散型ドメイン名サーバシステム等多くのサービスを提供している
uretanouretano

CDN とは何か

AWS,GCPの場合サービスを載せるサーバーのリージョンを選択する必要がある。
日本のクライアントからアメリカのサーバーにアクセスしようとすると、距離がある為レイテンシが生じる。
これを解決する方法として、CDN があげられる。
地理的な制約による遅延軽減だけでなくサーバーへの負荷分散を同時に実現できる。

uretanouretano

CDN では、コンテンツが入っている元の Web サーバーへのアクセス集中を防ぎ、世界中に設置されているエッジサーバーの中から地理的に近いエッジサーバーに誘導する。
エッジロケーションはユーザーからのアクセスがあると、オリジンサーバを参照して次回以降のアクセスのためにコンテンツをキャッシュしておき、次回以降のアクセスでは、キャッシュしたコンテンツをユーザーに配信する。

これにより、オリジンサーバーにアクセスするはずだったリクエストをエッジロケーションが代理して担当することで、負荷分散と地理的な高速配信を実現できる。

uretanouretano

Cloudflare でデプロイする際に、デプロイ先のサーバーを指定することがなく、世界中のエッジサーバーにデプロイされる。

uretanouretano

Cloudflare Pages

https://developers.cloudflare.com/pages

Webアプリケーションのホスティングサービス。
HTML, CSS, JavaScript だけの静的ページから、Cloudflare Functionsと組み合わせることでNext.jsやRemixといったSSRを使用するフルスタックアプリケーションもホスティング可能。

uretanouretano

とにかく簡単にデプロイできる。

  • GitHubリポジトリと連携すると...
    • PRごとにpreview環境を作成
    • 指定したbranchに変更が加わるとデプロイ
  • wragler CLI からも deploy コマンドでデプロイ可能
uretanouretano

Cloudflare KV

https://www.cloudflare.com/ja-jp/developer-platform/workers-kv/

サーバーレスストレージ。
KV とは Key-Value のこと。

uretanouretano

何ができるのか

  • 認証
    • セッショントークンやその他のユーザー情報を保存して適切なユーザーに適切なコンテンツをすばやく配信することで、認証脆弱性による脅威を軽減しながらもパフォーマンスを向上する
  • 攻撃者を記録する
    • 不正行為者、スパマー、荒らし、その他攻撃者を、IPやユーザーID、関連データをCloudflare Workers KVに保存しておくことで防止する
  • キャッシュ管理
    • 保存した値をHTTPレスポンスとして扱うことができ、キャッシュとして使用することも可能