ここ最近、インフラ寄りの話ばかりであるが、
GooglePlatformで使えるCloudCDNについて書いておく。
CloudCDNはawsのcloud frontなどとは違い、
ロードバランサーの一機能として利用できる。
特徴としては、
ロードバランサーと同一ドメインで利用できるところである。
イメージ的には以下のようになる(実際は違いますけど。。)
user <--> load balancer <--> cloud cdn <--> vm instance
この構成のよいところは、オリジンであるVMインスタンス(awsでいえばEC2)に置いてあるキャッシュさせたいコンテンツを、
ロードバランサーと同じドメインで取得できるところである。
そのため、VMインスタンスに画像等を丸々配備できるため、開発者がインフラを意識する必要がなくなるということだ。
これに対し、他CDNの場合、キャッシュさせたいコンテンツを他ドメインから取得させるよう、
HTMLをコーディングする必要がある。
しかし、CloudCDNなら、それを意識する必要はない。
これは開発者から見ると非常に大きな利点である。
(awsのcloud frontのL7機能でキャッシュの有無を調整することは可能だが、キャッシュさせないコンテンツでも瞬間的にはキャッシュされるので、
一意URLによるGETなどはあらかじめ注意して開発する必要がある)
ただし、HTTP/1.1の場合、同一ドメインから同時にアクセスできるURL数というのはブラウザで制御しているため、
実際には様々なドメインから取得させた方がユーザへの体感速度の向上が図れるのは周知の事実である。
(HTTP/2ではこの問題も多少はマシになるとは期待してますが、、)
ただ、CloudCDNの残念なところは、現状キャッシュされているものの情報や、ヒット率等の統計が取れないところである。
しかし、何度も書いたように、開発者(もっといえばコンテンツ開発者)にありがたいインフラ構成というのは、特筆すべき点かと思われる。
以上