Fastly

Fastlyについて

いつもお世話になっております。 Podman です 😁

米国株村で人気の Fastly。

ようやく、各 CDN 企業の 2020 年次決算が出揃いました。

決算資料や公開プロダクトから、各社 2021 年以降の方向性が見えてきました。

このタイミングで、Fastly の現在市場での優位性、及び 2021 年以降の投資妙味を考えてみたいと思います。

当方エンジニア(Fastly ユーザー)のため、技術用語が時々出てきてしまうと思いますが、できるだけ平易な文章を心がけます。

分かり辛い表現などがございましたら、ぜひ Twitter でご質問下さい!

Fastly とは

結論: インターネットを速くするための企業です。

Artur Bergman

Artur Bergman(前 CEO・現チーフアーキテクト)の言葉を用いると ↓

I literally make your internet faster.
(ガチでインターネット高速にしてやるぜ!!)

とにかくインターネットの高速化に特化した企業です。

よく競合企業として取り上げられる、Cloudflare の企業理念

make your internet better.
(インターネットをより良くする。)

と比べると、各企業間の方向性の違いが良くわかります。

そして Fastly の企業目標でもある「インターネットを速くする」を実現させるツールが、

CDN・エッジコンピューティングです。

CDN とは

CDN とは、コンテンツ配信ネットワークの略称で、ウェブコンテンツ(画像・動画等)を効率的に配信するためのネットワークを指します。

ウェブコンテンツ? を効率的に配信するネットワーク? と聞くとムムっと思う方もいるかもしれませんが、

Youtube を例にしてみると分かりやすいと思います。(Youtube は Fastly ではなく、独自の CDN を使っています)

CDN

A. Fastly(CDN)のない世界では、東京に住んでいるユーザーは Youtube 動画を見る際に、1-2 のやりとりを東京-カリフォルニア間(8800km)で行う必要があります。

  1. ユーザーは Youtube サーバーへ「この動画がみたい」という要求を送る
  2. Youtube サーバーからユーザーへ動画を返却する

行き帰りで合計、17600kmの長旅。😓 (飛行機だと 24 時間くらいでしょうか)

B. 一方、Fastly(CDN)のある世界では、Fastly(東京)に Youtube コンテンツが保存されているため、ユーザーはカリフォルニアにある Youtube サーバーにアクセスすることなく、見たい動画を Fastly(東京)から受け取ることが出来ます。

Fastly のキャッシュを利用した場合、データの移動距離はわずか200kmに抑えることが出来ます。

Fastlyなし(17600km) > Fastlyあり(200km)

CDN(Fastly)のある・なしでこれだけデータの移動距離を抑えることが出来ます。

エッジコンピューティングは、このFastly サーバーがコンテンツの保存だけでなく、計算処理も行ってくれるというものです。

Fastly の優位性

ユーザーとサーバーの間に入り、コンテンツをキャッシュ(一時保存)するという CDN サービスは、一見シンプルかつコモディティなサービスに見えます。

実際に競合を挙げてみると、

Akamai・Amazon・Cloudflare・Limelight・Varnish・CDN77・Sucuri

等多数の競合企業が挙げられます。

上記の競合企業から Fastly はどのような差別化を図っているのか、3 つほど例をあげてみたいと思います。

1. キャッシュヒット率

CDN において、重要な要素の一つがキャッシュヒット率です。

キャッシュヒット率とは、CDN に対する総リクエストに対して、どれだけ CDN サーバーがキャッシュを返せたかという指標です。

たとえ CDN を使用していたとしても、このキャッシュヒット率が低ければ、

CDN はキャッシュを返すことができず、そのリクエストはサーバー(本体)に送られてしまいます。

Cache

運用では、ユーザーから送られてくるリクエストをいかに Cache Hit (Cache が CDN 上に存在する) にさせるかが重要です。

いくら CDN を導入していたとしても、リクエストが Cache Miss になっていると、CDN を導入している意味がありません。

(厳密には、Cache Miss になっても CDN を導入していた方がレスポンスが速い場合が多いですが。)

Fastly は後発の CDN 企業ということもあり、このキャッシュヒット率を極限まで引き上げることを意識したシステム構成をとっています。

↓ のグラフは、各社(名前は伏字・CDN7 = Fastly)の CDN 性能を表したグラフになります。

TTFB

左側の青い棒グラフは、各社似通っている(250ms 以内)ものの、右側(オレンジ・緑)のグラフになるにつれて Fastly(CDN7)の速さが際立っていることが良く分かります。

これは、Fastly が他社よりも多くのコンテンツをキャッシュし、サーバー(本体)にアクセスさせることなく Fastly の CDN からコンテンツを返していることを示しています。

CDN の評価基準として、レスポンスタイムを取り上げる記事も散見されますが、実運用においては、このキャッシュヒット率をいかに上げるかということが重要になってきます。

そのため、初めからキャッシュヒット率を稼ぐよう設計された Fastly の CDN サービスは、より実運用に適したものになっていると言えます。

2. キャッシュ削除

POP

Fastly は世界中に配置しているキャッシュサーバー(POP)から全てのキャッシュデータを 0.15 秒以内で削除することが出来ます。

0.15 秒?と言われてもその凄さがパッと頭に浮かばないかもしれませんが、 老舗 CDN の Akamai は設計を 2 回もやり直しようやく 5 秒以内に到達しました。

このことからも、0.15 秒の凄まじさが良く分かると思います。

もう少し詳しい話をすると、キャッシュ削除の仕組みにゴシップアルゴリズムが使われています。

原理は、フェイクニュースがリツイートで急速に拡散される仕組みと似ています。

Algo

この仕組みを利用することで、今後サーバー台数がいくら増えても 0.15 秒以内のキャッシュ削除は保証されるようです。

Fastly もすごいけど、リツイートもすごい拡散力ですね。。

3. エッジコンピューティング

Fastly が今最も力を入れている分野がエッジコンピューティングです。

そして、コンテンツを配信するだけの CDN よりもエッジコンピューティングが今後より主流になっていくでしょう。

そのエッジコンピューティングにおいて、重要な要素の一つが「コールドスタート」の問題です。

コールドスタートとは、特定のエッジサーバーでアプリケーションを実行する際に、 通常とは余計にレスポンスに時間がかかってしまう現象のことを指します。

エッジコンピューティングを行う各エッジサーバー内には、専門の職人さん達がいます。 (サーバー内におじさんが常駐していることを想像してください。)

彼らは、常に準備万端というわけではなく、担当するサーバーにアクセスがしばらく来ないと職人さん達は居眠りを始めます。(主にコスト面が理由)

ColdStart

↑ 日本サーバーの職人は起きているけど、カリフォルニアサーバーの職人は寝ている時の図

この時、アクセスが運よく日本サーバーに当たれば、既に起きている職人が高速なレスポンスを返してくれますが、

運悪く、職人さんが眠っているカリフォルニアサーバーにアクセスしてしまうと、眠っている職人さんを起こす作業が必要になります。

この眠ってしまっている職人さんに運悪く当たってしまう現象をコールドスタートと言います。

この一貫性のないコールドスタートに起因する遅延(職人が起きているかどうか事前に分からない)が、 エッジコンピューティング採用の妨げの一つの原因ともなっていました。

そのコールドスタートの問題を解決するために、Fastly は独自の職人(Lucet)を開発しました。

「ないなら、自分で作る」Fastly らしい行動ですね。

そしてその、Fastly の職人さん(Lucet)が起きるスピードは, 他のサービスと比較してダントツで早いです。

Serverless

コールドスタート
Amazon 3ms
Cloudflare 1ms
Fastly 50us

Fastly だけ桁が一つ違います ww

レイテンシー(遅延)に敏感なエッジコンピューティングにおいて、このコールドスタートの短さは大きな武器となります。

実際に、EC 大手の Shopify もエッジコンピューティングには、Fastly の開発した職人さん(Lucet)を採用しています。

懸念点

ここからは逆に懸念点を考えていきたいと思います。

この懸念点は、Fastly に限った話ではなく CDN 業界全体の話になってくると思います。

EdgeComputing の本流

まず、Fastly がエッジコンピューティングの本流に乗れるかどうかが一つの鍵になると思っています。

Fastly が提供している Compute@Edge は、現状は Web の文脈での話であって、自動運転や 5G に直結するものではないです。

5G・エッジコンピューティングの文脈で語られるエッジは、Fastly の存在する CDN 業界が指し示すエッジではなく、

Verizon・AT&T のテレコム企業が得意とする基地局レベルのエッジです。

基地局レベルのエッジに Faslty の技術が入っていけるかどうかが投資妙味の一つになってくると思います。

CDN の自前運用

今後 5G がより普及していく中で、データ使用量が急激に増加していくとこは明白です。

データ使用量が増加することは、従量課金を行う CDN プロバイダーにとって売上を伸ばすチャンスでもありますが、一方でマイナス部分もあります。

マイナス部分、それはCDN の自前運用です。

クラウド・リバースプロキシー技術が発達した昨今、CDN の自前運用は従来考えられていたものよりも、相当に迅速かつ簡単に行えるようになってきています。

5G 起因のデータ使用量の増加による従量課金額が、CDN 自前運用のコストを上回る日もそう遠くはないのかもしれません。

実際に、2020 年のCDN トレンドでも、CDN の自前運用が加速してることについて触れられています。

CDN の自前運用は、コスト面だけでなくフルカスタマイズな点や、帯域幅制限をある程度自由に設定できる点など運用者には多くのメリットがあります。

まとめ

本記事では、Fastly の解説記事を書かせて頂きました。

当方現時点ではノーポジションのため、割と中立な意見を発信できたのかなと思います。

エンジニア視点では、非常に素晴らしいサービスですので、Fastly の今後の動向を引き続き追っていきたいと思います。😃

参考文献

  1. https://www.fastly.com/blog/cache-hit-ratios-edge-performance-study
  2. https://www.fastly.com/network-map
  3. https://blog.cloudflare.com/cloudflare-workers-serverless-week
  4. https://info.varnish-software.com/blog/monetizing-a-5g-setup-varnish-edge-cloud
  5. https://info.varnish-software.com/blog/the-cdn-is-evolving-create-your-own-hybrid-cdn

ポチッと頂けると励みになります😄

にほんブログ村 株ブログ 米国株へ

Profile picture
エンジニアをやってます。