blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2020.03.06 DeNAインフラノウハウ発信プロジェクト

MultiCDN での設定管理について

by Takatoshi Moriya

#cdn #infrastructure #cost-optimization #stabilization #IaC #infra-quality #infra-cost

はじめに

こんにちは、IT 基盤部ネットワークグループの守屋です。
ネットワーク全般 (DataCenter / 本社や拠点及び子会社オフィス)の設計・構築・運用・保守、そして CDN (Content Delivery Network) を主に担当しています。

今回は、DeNA の CDN の設定管理についてお話しさせて頂きます。

DeNA での CDN の利用方法ついて


DeNAでは、複数のCDN業者を使用する、MultiCDN 構成を採用しています。 MultiCDNを採用する際のメリット、デメリットは以下となります。 メリットとデメリットを比較して、メリットの方が優ると判断したため、 DeNA では、MultiCDN 構成を採用しました。
  • メリット

    • 頑健性の向上
    • ボリュームディスカウントが効きやすくなる
  • デメリット

    • 設計の複雑化
    • 運用工数の増加

まずは、メリットについて説明させて頂きます。 ひとつ目のメリットして、頑健性の向上があります。 DeNA では、メインでの使用するCDN事業者と、バックアップ用途で使用するCDN事業者間で設定同期をしています。 仮にメインで使用しているCDN事業者に障害が発生した場合でも、 バックアップ用のCDN業者に切り替えることにより、障害を回避することができます。

もうひとつのメリットとして、ボリュームディスカウントが効きやすくなるというメリットがあります。 DeNAでは、CDNを採用する際にコストを重視しているので、 上記は、大きなメリットとなります。


次にデメリットについて説明させて頂きます。 デメリットとしては、CDN事業者を複数採用することによる設計の複雑化と運用工数の増加があります。 設計の複雑化については、以前に [こちら](https://engineer.dena.com/posts/2019.12/dena-cdn/)でご紹介させて頂いた通り、 CDN事業者間の差分を検証し、設定をテンプレート化することにより、シンプルにすることができました。

運用工数の増加については、CDN事業者間の設定を監視するCDN-CONFIG-MANAGERという仕組みを実装し、 CDN設定を管理しています。

CDN-CONFIG-MANAGER について

DeNAでは、Lambda などのAWSサービスを利用して、 CDN-CONFIG-MANAGERという仕組みを実装し、CDN設定を管理しています。 CDN-CONFIG-MANAGERで実現している機能は以下となります。

  • CDNの設定変更検知
  • CDN事業者間の設定同期漏れ検知

それぞれの機能を実装した目的と背景を後述させて頂きます。

CDNの設定変更検知について

DeNAでは、CDNの設定変更は基本的には、ネットワークグループで実施をしています。 しかし、一部のサービスに関しては、事業部にCDNの設定変更権限をアサインしているものがあり、 連絡なしに設定変更が行われることが稀にあります。 メインで使用している設定変更が行われた場合は、 バックアップ用途のCDN設定変更が行われていないケースが多いので、 設定変更を検知する必要があります。


この機能を実施したことにより、事業部で不要なCDN設定削除や、 設定変更を検知することが可能になりました。

CDN事業者間の設定同期漏れ検知

DeNA では、様々な事業部があり、それに伴いCDN設定も多々あり、現在進行形で設定数も増加しています。 仮に設定同期が漏れていた場合は、有事の際にCDN事業者を切り替えた際に通信影響が発生するので、 CDN事業者間で設定を同期する必要があります。


MultiCDN構成を採用した当初は、設定変更を基本的にネットワークグループで行なっていたこともあり、 CDN事業者間の設定同期の確認を担当者が手動で行っていましたが、 工数がかかる上に、設定の同期漏れが発生するケースもあったので、 同期漏れを検知する機能を実装しました。 ただし、CDN事業者間の設定を完全に比較することは難しいので、 現在は配信FQDNに差分のみを確認対象としています。
実際にこちらの機能を実装することにより、 それまで手動で管理していた工数を削減することができました。

設計概要

CDN-CONFIG-MANAGER設定概要

CDN-CONFIG-MANAGER設定概要

上記の図は、設定の概要となります。それぞれのCDN事業者から情報を取得して、 DBにデータを格納し、設定変更を検知した場合に担当者に通知するフローと、 CDN事業者間の配信FQDNを比較し、差分があった場合に担当者に通知するフローを表しています。

最後に

以上、「MultiCDN での設定管理について」を記載しました。
各企業によって、MultiCDN の管理方法は異なるかと思いますが、本内容が参考になれば幸いです。

最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。