Akamai と Fastly の事例を聞くために「CDN Study」に参加した

参加してからもう3週間も過ぎてしまったけど,4月に参加した「CDN Study」の感想をまとめておこうと思う.

http2study.connpass.com

オープニング

  • 最適化の原則
    • なるべく近く
    • なるべく少なく
    • なるべく小さく
  • CDN の存在感と世界観がどんどん広がっている

speakerdeck.com

Past, Present and Futures of CDN / Akamai Technologies

  • Akamai は 1700 を超えるエッジ(POP と呼ぶ)を持っている
    • 競合と比べても圧倒的に差がある
    • ただし「多ければ良い」という単純な話ではない
  • どうやって「最適なエッジ」に誘導するのか?
  • CDN は Contents Delivery Network ではなく Cloud Delivery Network と言える
  • EdgeWorkers : エッジで動作する JavaScript を開発している
  • 「キャッシュ」をチューニングの手法としてではなく,初期設計から検討する
    • TTL などは要件を整理しておく
    • ステートレスなアプリケーションを目指す
  • Cacheability
    • キャッシュの運用を前提とした,アプリケーションの記述手法があると良さそう
    • Swagger のような?

Akamai と言えばエンタープライズなイメージが勝手にあり,今回のようなカジュアルな勉強会で発表を聞くことがなかったけど,Contents Delivery Network(もしくは Cloud Delivery Network)企業として,非常に技術的なチャレンジをされているなと感じた.エッジの数がここまで多いのは知らなかったし,「最適なエッジ」に誘導するための特許を持っているのも知らなかった.このあたり,技術的に異常に深みがありそう.最後に話があった Cacheability モデリングの話は,今後に対する問題提起のような形になっていて良かった.キャッシュは用途を間違えると逆に制約になってしまうこともあり,ちゃんと設計して,活用する意識を改めて持つことができた.

speakerdeck.com

CDN Study in http2study / Akamai Technologies

  • 標準化
    • IETF (Internet Engineering Task Force) など,ワーキンググループにメンバーを派遣している
    • HTTP/2
    • QUIC
    • TLS 1.3
  • HTTP/2 はデフォルトで有効になっている
    • Server Push も使える
  • 2018年6月から QUIC でストリーミング配信をおこなえるようになる
    • 例えば,HLS 動画ファイルの取得が高速になったりする
  • TSL 1.3
    • Draft 21 / Draft 23 に対応した OpenSSL なら TSL 1.3 で接続できる

www.slideshare.net

Fastly のプログラマから見た CDN

  • Fastly の POP 一覧
  • CDN には2種類のモデルがある
    • コンビニモデル : Akamai
      • すぐ近くに POP がある
      • よって,レイテンシが下がる
    • スーパーマーケットモデル : Fastly
      • 巨大な POP がある
      • よって,キャッシュヒット率が高くなる
    • モデルの解説は以下のブログにある
  • ルータレス・ルーティング
    • 32台のキャッシュサーバが,それぞれルータも兼ねている
  • ステートレス・ロードバランス
    • LB を置かず,IP と PORT をハッシュ化して,キャッシュサーバを決定する仕組み
  • CDN 専用の独自ファイルシステムを開発している
  • Fastly を CDN ではなく「分散 KVS」として考えることができる
    • VCL : Varnish Configuration Language
    • インスタント・パージ
      • サロゲートキーを指定して,特定のキーが付いた複数のキャッシュを一括でパージできる
  • 日経新聞社の事例もある
  • CDN に関係するプロトコル拡張
    • DNS over HTTPS
      • DNS に問い合わせたことを記録させず,セキュアに通信ができる
    • Early Hints
    • Server Timing
    • Variants
  • QUIC を TCP/2 を言ってはダメ(ワーキンググループ的に)

コンビニモデルとスーパーマーケットモデルの話は知らなかった!面白すぎる.また,ルーティングとロードバランスの話など,ソフトウェアとして課題解決をされている印象があり,Akamai と違う規模,違う戦略なんだなという点も知れて良かった.最後にまとめたプロトコル拡張の話は詳しく理解できていないため,調べることを自分の宿題にしたいと思う.

speakerdeck.com

まとめ

  • 抽選倍率2倍の「CDN Study」に参加した
  • 今まで聞いたことがなかった Akamai と Fastly の発表を聞けて良かった
  • TLS 1.3 / QUIC など,プロトコルの話は理解が不足していることを痛感した
  • アプリケーションと Cacheability の話は今後の設計に活かしたいと思う