
Contents Delivery Network(以下、CDN)の運用と、みなさんが提供しているサービスを実現するシステムの運用を上手く関連づけていますか?
コンテンツが複雑化し、大容量化している現在において、CDNは想定通り配信を行っているのか?オリジン(バックエンドシステム)に過剰な負荷が発生していないか?フロントエンドからバックエンドに掛けて、想定外の遅延は発生していないか?といったサービス全体がどの様な状況となっているかを必要な時に迅速に把握できることは、サービスをより良くするために真剣に取り組まなければならない大きな課題です。
CDNの配信状況であったり、バックエンド側の特定のサーバーの状況といった様に、それぞれを切り出した運用管理は既に行われている方は非常に多いかと思います。それぞれを運用監視できていることはとても重要で、まだの方は是非、その運用監視を実現する様に進める必要はありますが、そこだけに留まらず、サービス全体としてどの様な状況になっているのかを把握できるようにすることを目指して頂きたいと思います。
例えば、CDNの配信設定を変更することで、皆様のサービスをご活用頂いているお客様の利用体験は一体どのように改善されたのか?バックエンド側には新たな問題は発生していないのか?(正しくキャッシュができているのか?アプリケーション内でエラーが新たに発生するようになっていないのか?などなど)といったことを即座に確認できる状況は構築できていますか?逆に、アプリケーション側を変更したことによる、CDN側の配信設定変更は行えていますか?新しいコンテンツが追加されているにも関わらず、正しくCDN上でキャッシュしていないために、バックエンド側の負荷が上がり、お客様に想定した通りのコンテンツを配信できていないといった状況は起きていませんか?
全ての課題を網羅的に抑えることは簡単ではありませんが、一旦ここで、挙がっている課題を整理してみましょう。
- CDNは想定通りに配信が行われているか?
- 配信しているサービスが想定通りのオフロード率(キャッシュヒット率)を達成しているか?
- オブジェクト単位でみた時に、適切なキャッシュヒット率を達成しているか?
- キャッシュしてはいけないオブジェクトをキャッシュしていないか?
- 新たなCDNの設定変更によりキャッシュヒット率を改善させているのか?
- バックエンドシステムの負荷を軽減できているか?
- バックエンドの負荷を下げるための適切なキャッシュ設定を行えているか?
- キャッシュヒット率を改善することでバックエンドの負荷が下がる因果関係を適切に把握しているか?
- フロントエンドからバックエンドに掛けて、適切な応答スピードを実現できているか?
- キャッシュヒット率を高めることで、サービス利用者への応答速度を改善しているか?
- ビジネスロジックを含んだ配信設定更新の結果、ユーザ体験を改善しているのか?
これらは、みなさんの技術スキルが足りていないといったことではまったくなく、純粋に現在行っている運用監視を、それぞれ別々に行っていることが原因です。実は、それぞれを適切に繋げることによって、容易に解決できる課題です。
New Relicは、これらの課題を解決するためのオブザーバビリティープラットフォーム(New Relic One)を提供しています。CDNと連携するには色々な手法がありますが、まずはCDNのログをNew Relic Oneに取り込むことからはじめて行きましょう。CDNのログを取り込むことで、解決すべき事象が発生した際に、即座に調査を行う環境を構築することができます。
具体的な連携方法については、以下のブログを参照してください。
- Fastlyとのログ連携方法について
- Amazon CloudFrontとのログ連携について
- Akamaiとのログ連携について(近日公開予定)
- Cloudflareとのログ連携について
- Azure CDNとのログ連携について
CDNを解析するために都度都度手動でログを集め、そのログの中から必要なログラインを抽出するという作業はもうやめましょう。必要な時に必要な情報にアクセスできる環境を平時から用意し、ログの抽出という手間で失っていた貴重な時間を、あなたの持っているスキルを生かすための時間に当てていきましょう。
この連携を通して、CDNの配信状況の可視化やシステムとの情報の繋ぎ込みを行っていくことができるようになります。
例えば、以下の計測データによるメリットを挙げることがことができます。
- CDNの画像のキャッシュヒット率とエンドユーザのページロードスピードを組み合わせる
- サービス利用者の利用体験を損なわずにどこまで高品質な画像を配信できているかを判断し、適切な品質の画像を用いることで、取り扱っている商品やサービスの強みを正しくサービス利用者に届けることができます。
- CDNのキャッシュヒット率とバックエンドの負荷状況を組み合わせる
- CDNのチューニングを進めることで変化するバックエンドの負荷状況を把握することで、どの様なCDN設定がより効果的で適切かを判断する。これにより、バックエンドの負荷を抑え、安定したシステムを実現することができます。
- CDNのレスポンスコード推移とバックエンドのエラー検知機能を組み合わせる
- 急激な50Xの発生を把握することで、サービス上の影響範囲を即座に判断したり、40Xの急激な上昇を把握することで不正なアクセスを即座に検知することができます。その変化をトリガーとして、バックエンドのエラー詳細を解析し、サービスを継続させるための適切な処置を決定することができます。
上記のメリットを実現する手法として、New Relicはダッシュボード機能を提供しております。これにより、様々なデータを関連づけて新たな気づきを得ることができるようになります。

New Relicは、より生産性の高いシステム構築をお手伝いし、みなさんがもっている貴重なスキルをより多くの機会で発揮できるようにする貢献をしていきたいと考えています。
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.