AKIBA.Saas で Cloudflare が CDN 以外も凄いと訴えてきた #AKIBASAAS

2022年3月9日の AKIBA.SaaS で Cloudflare について「CDN 以外も凄いんだよ」と話してきました。

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ウィスキー、シガー、パイプをこよなく愛する大栗です。

SaaS などのサービスの勉強会である、AKIBA.SaaS でCloudflare について話してきました。

ただの CDN だけじゃない! Cloudflare の凄い所ご紹介

「ただの CDN だけじゃない」とタイトルで言っていますが、初めは CDN についての話から始めます。

CDN とは

Cloudflare 社のサイトから引用すると、以下のようになります。インターネット経由のコンテンツを高速に配信する仕組みですね。

コンテンツ配信ネットワーク(CDN)とは、インターネットコンテンツを高速配信するために連携する地理的に分散されたサーバーのグループを指します。

What is a CDN? | How do CDNs work? | Cloudflare Cloudflare, Inc.

CDN は以下のような歴史を歩んでいます。

  • 1990年代:CDN の起源
    • Akamai の起業
    • ルーティングと近傍のキャッシュ
  • 2000年代:CDN の興隆
    • 多くの CDN ベンダーが起業
    • Cloudflare もこの時期
  • 2010年代:プライベートバックボーンの構築
    • BigTech が海底ケーブルの敷設を始める
    • CDN でもプライベートバックボーンの構築が始まる

では、次の 2020年代の次世代 CDN とはなにか?

サーバーレス エッジ コンピューティングの本格化

次世代 CDN の要件はエッジにおけるサーバーレス コンピューティングです。

現在 CDN でのサーバーレス エッジ コンピューティングには以下のようなものがあります。

  • AWS:CloudFront Functions, Lambda@Edge
  • Akamai:EdgeWorkers, EdgeKV
  • Fastly:Compute@Edge

Cloudflare には、Cloudflare Workersがあります。

Cloudflare Workers 以下のような特徴を備える高パフォーマンスなエッジ コンピューティング環境です。

  • 自動的なスケーリング
  • 数分でグローバルへデプロイ
  • コールドスタート無しで処理を実行可能
  • JavaScript, Rust, C, C++ で処理を記述

コンピューティングだけでなく、グローバルに分散する強力なデータベース/ストレージ環境も備えており総合的なエッジ開発プラットフォームとなっています。

  • Workers KV1:結果整合性の高速なキーバリューストア
  • Durable Objects2:強い整合性のデータベース
  • R2 Storage3:Amazon S3 互換の高速で信頼できるオブジェクトストレージ

Workers だけでなく多彩なデータベース/ストレージも備えているため、フォレスター・リサーチ社の調査によるとエッジ開発プラットフォームの分野で Cloudflare はリーダーに選出されています。strategy と current offerring で共に最も優れていると評価されています。

The Forrester New Wave for Edge Development Platforms, Q4 2021 Cloudflareは、「The Forrester New Wave for Edge Development Platforms, Q4 2021」で「リーダー」に選ばれました。

業界のリーダーという意味では CDN として重要機能の一つである DDoS 対策の分野でもリーダーに選出されています。最も右にポイントされておりstrategy が最も優れているという評価になっています。

The Forrester Wave™: DDoS Mitigation Solutions, Q1 2021 Cloudflareは、「The Forrester Wave™: DDoS Mitigation Solutions, Q1 2021」において「リーダー」に選出されました。

CDN 以外の話

Cloudflare の CDN が凄いということが十分に分かったと思いますので、ここからは Cloudflare の CDN 以外の話になります。

下図の左側がアクセス元、右側がアクセス先で、その間を埋めるのが Cloudflare という全体像です。

いわゆる一般的な CDN は左上の「正当なアクセス」から右上の「外部向けアプリ」へアクセスする場合に利用される機能です。しかし IT システムのネットワークはそれだけでなく、アクセス元には悪意あるアクセスだったり、内部関係者である従業員がアクセスする場合もあります。アクセス先も一般公開されているものだけでなく、社内限定のアプリや社内のオフィスネットワークやデータセンターだったり、外部の SaaS だったり様々なシステムへアクセスすることがあります。Cloudflare ではその全ての分野について対応しています。

図では Cloudflare が持っている機能の一部しか記載していませんが、DDoS 対策、WAF、Bot 対策、Zero Trust Network、Waiting Room といったセキュリティ関連機能や、WAN as a Service、ネットワークインターコネクトのようなコネクティビティも提供しています。

ここからは Cloudflare の特徴的な機能を紹介していきます。

Cloudflare Zero Trust

最近のネットワーク事情に詳しい方であれば Zero Trust Network Access(ZTNA)という言葉を聞いたことがあるかと思います。Cloudflare にも Zero Trust に対応した機能があります。Cloudflare Access へ接続するときに認証を行い、どこの誰がアクセスしているかを判別し、リクエストに JWT の署名を付加します。サーバーでは JWT の署名を検証することで、間違いなく正当なユーザーからのアクセスであることを確認できるためセキュアに通信を行えます。補足すると、原理主義的な Zero Trust Network の場合は VPN を使用しませんが、クライアントに Cloudflare WARP というアプリケーションをインストールして Cloudflare Access まで WireGuard による VPN を張っています。

最速 DNS リゾルバ 1.1.1.1

次は Cloudflare が誇る世界最速のパブリック DNS リゾルバ41.1.1.1です。DNS は問い合わせ内容を見るとどのサイトへアクセスしようとしているか分かってしまいますが、プライバシーを優先するためにアクセスログを取得していません。また、DoT(DNS over TLS)、DoH(DNS over HTTPS)といったセキュアな DNS プロトコルもサポートしています。

Waiting Room

突発的なスパイクアクセスでもサイトをダウンさせない機能として、Waiting Room があります。想定外のアクセスに対応させようとすると、クラウド環境であれば Auto Scaling を思い浮かべると思います。しかし Auto Scaling では起動してリクエストを受け入れるまでの時間が必要なので瞬間的なスパイクアクセスには対応できないという問題があります。Waiting Room ではあふれるユーザーに対してデジタル待合室を提供して、オリジンサーバーの余裕が出てきたらリクエストをオリジンサーバーへ流すことでサービスをダウンさせずユーザーの離脱を最小限に抑えます。Waiting Room は Clooudflare Workers と Durable Objects を組み合わせて実現されています。

Project Fair Shot

Cloudflare では新型コロナへの対応をを円滑にするために、ワクチン接種を推進する団体に向けて前述の Waiting Room を無償提供しています。日本ではクラスメソッドが連携して提供しています。

クラスメソッド、ワクチン接種を推進する自治体・医療機関・協力企業にデジタル待合室Cloudflare Waiting Roomを無償提供開始

ウクライナをサイバー攻撃から保護

現在ウクライナはロシアに侵攻されていますが、実はサイバー空間でも攻撃も受けています。Cloudflare ではウクライナ地域の 60 以上の組織を支援しており、Project Galileo というプログラムの下で DDoS 攻撃などから保護しています。

Steps we've taken around Cloudflare's services in Ukraine, Belarus, and Russia

まとめ

Cloudflare について、以下の3点だけ覚えていってください。

  • Cloudflare は次世代 CDN のリーダー
    • エッジ開発プラットフォームが強い!
  • クラウドとサーバーの間を全て担当する
    • ネットワークとセキュリティをクラウドで対応する
  • 活発な社会貢献
    • 新型コロナワクチンやウクライナのサイバー攻撃対策の支援

さいごに

エンジニアの方であれば Cloudflare を知ってはいても CDN の会社というイメージが強いと思います。当然 CDN は強いのですが、それだけではなくクライアントとサーバーの間全体を幅広くサポートします。CDN 以外でもネットワークに関連したことがあれば Cloudflare を調べて頂ければと思います。