NGINX(エンジンエックス)|日本公式サイト

NGINXはF5ファミリーの一員となりました。新体制の詳細はこちらを御覧ください。

導入事例:

マイクロサービスに移行するためオープンソース版からNGINX Plusへアップグレード

NGINX Plusを導入することで、Canal+の視聴者はパーソナライズされた動画をいつでも視聴可能に
本社
フランス、パリ
設立
1984年
事例
マイクロサービス
ソリューション
Webサーバー
会社概要

フランスの有料ケーブルテレビ局。オーディオビジュアルグループ企業として、テレビ番組の製作や、イベントチャンネルの有料放送をフランス国内で行っている。地上デジタルテレビ放送を含め、すべてのISPに衛星経由でチャンネルを配信している。

課題

ノンリニア型テレビへの対応開始後に利用者から求められたスピードと信頼性に対応。一部のテレビ番組を選択可能にする視聴者向けサービスの開始に伴って、新たなトラフィックをサポートするのに必要なデータ量が爆発的に増加し、システムが複雑化していた。

成果

ノンリニア型テレビへの対応開始後に利用者から求められたスピードと信頼性に対応。一部のテレビ番組を選択可能にする視聴者向けサービスの開始に伴って、新たなトラフィックをサポートするのに必要なデータ量が爆発的に増加し、システムが複雑化していた。

メトリクスに戻づいた見識を強化

拡張性の高いHTTPキャッシュ

概要

フランスのCanal+ Groupeは、1秒当たり最大5万件のリクエストを管理するために、ユーザビリティを重視しながら、AWSのコンテナやマイクロサービスを活用したシステムを新たに構築しました。Canal+のTactics Managerであるフレデリック・グエイ氏は、次のように述べています。「希望は、統一した堅牢で大規模なプラットフォームを構築することでした。それにより、利用者はこれまでよりも容易にすべてのWebサイトに接続してアクセスできるようになります。当社のサービスに対して動的に名前解決を行える機能は、NGINX Plusにしかありません」

課題

Canal+は、複雑なビジネスモデルを大規模に実行し、継続してサービスを提供しています。テストや商品ローンチはすべて、本番環境で行われていました。グエイ氏は「昨年は10億回以上のクリック数を管理しましたが、今年も引き続きあっという間もその回数を超えるでしょう」と述べています。Canal+では、HTTPキャッシュにおいて、1秒当たり約5万件のリクエストがピークであると判断しています。また、再生サービスのトラフィックの60%は、午後8時30分~9時15分の間に発生しています。

データのフローが生じる主なサービス領域は、以下の4つになります。

  • 多数のカタログ:各チャンネルに独自のカタログがあり、中には2万以上の動画を提供しているチャンネルもあります。「その目的は、著作権保持者によって課せられた法的制約に従い、またその制約の範囲内で、利用者の権限に応じて、適切な時間に適切なコンテンツを表示することです」とグエイ氏は説明します。
  • レコメンデーションサービス:利用者が膨大な量のカタログを閲覧することは実質不可能です。Canal+は、利用者の視聴状況に基づいて、コンテンツデータベース全体を検索し、「視聴履歴に基づくおすすめ」というような馴染みのある形式でレコメンデーションを表示します。
  • カスタマイズ:Canal+では、利用者ごとに情報をカスタマイズするサービスを提供しています。たとえば、利用者が現在どのコンテンツをどれぐらい視聴しているかを示します。
  • トランザクション指向の決済サービス:利用者のプロフィールに基づいて価格が計算され、Canal+のCRMに購入トランザクションが送信されるため、請求書を発行して決済されるまで購入を追跡できます。

3年前にノンリニア型テレビへの対応を開始した際、従来のインフラでは利用者が求める速度で膨大なデータ量に対応できないことが早期に明らかになったため、新たなインフラをゼロから構築する必要がありました。

ソリューション

グエイ氏のチームは、マイクロサービスを中心とする最先端のプラットフォームを設計し、リアルタイムでデータのパイプラインを処理するための「リアクティブストリーム」という技術を使用してデータを取得することにしました。NoSQLデータベースとして、Cassandra(一括書き込み操作用)、Redis(一括読み取り操作用)、Elasticsearch(インデックス作成やデータの相互参照に関連するすべての操作用)の3つが使用されています。これらはすべてAmazon Web Services(AWS)でホスティングされています。

Canal+では数年間、旧システムでオープンソース版のNGINXを使用していましたが、マイクロサービスへの移行に伴い、オープンソース版では対応できない新たなニーズが生じました。NGINXのマシンとルーターを設定しているときに、システムの処理内容を把握できないことに気付いたのです。オープンソース版では利用可能なメトリクスが十分ではないため、複雑な環境で問題を調査すること自体が深刻な問題となっていました。

NGINX Plus provides a single point of entry for MyCanal microservices
NGINX Plusで、MyCanalマイクロサービスの単一エントリーポイントを実現

Canal+では、レイヤー7リクエストルーターやHTTPキャッシュとして、またマイクロサービスの動的なディスカバリのために、NGINX Plusを使用しています。レイヤー7リクエストルーターとしてのNGINX Plusでは、すべてのリクエストを適切なマイクロサービスにルーティングします。マイクロサービスではIPアドレスやポートが頻繁に変更されるため、DNSを介した動的なディスカバリがNGINX Plusでサポートされることが非常に重視されました。

また、HTTPキャッシュとしてのNGINX Plusでは、Canal+のプラットフォームを保護する役割を果たしています。コンテンツなどのリソースに変更が加えられるごとにURLが生成される独自の「limitable URL」と呼ばれる機能を開発しました。たとえば、タイトルが変わるときにそのURLも変わります。つまり、コンテンツの変更に伴ってURLが変わることで、利用者にも変更されたことがすぐ分かるため、非常に効率的にキャッシュを利用できるようになりました。

「NGINX Plusの主な魅力は、次のような3点があげられます。」とグエイ氏は述べています。1つ目は、NGINXの堅牢かつ高速なパフォーマンスです。システムを通過する大量のトラフィックを速度を維持しながら安定して処理する性能は、コスト削減の大きな鍵となっています。

2つ目は、設定のシンプルさと実用性の高さです。グエイ氏は、「わずか数行のコードで複雑な処理をしなければならないこともあります。当社のサービスに対して動的に名前解決を適切に行える機能は、NGINX Plusにしかありませんでした」と述べています。

3つ目はメトリクスです。NGINX Plusにより、ルーターとキャッシュの可視化が実現しています。

「導入決定後、NGINXからNGINX Plusへの移行はわずか5分程で完了しました」それに対し、デプロイメントにはブルー/グリーン手法を使用しフルローンチするまでに、約1か月半を費やしました。

「標準のNGINXルーターの1つをブルー(パッシブ)モードの環境に、もう1つをグリーン(アクティブ)モードの環境に振り向けました。そしてNGINX Plusで問題の有無を確認し、何も問題がなければ、ブルーモードの環境を破棄します」そして、すべてのキャッシュが移行してから、ルーター、本番環境の順に移行しました。

チームは他の選択肢についても調査しましたが、有料のプロキシでもAmazonのELBでも、必要とされる機能を得ることができませんでした。有料プロキシは同社の業務モデルに適さず、またAmazonのELBを使用すると全面的にAmazon環境に戻ることになり、使用中のNGINXソリューションからの完全な移行が必要になります。

「Amazonはまだ多くの機能をロックしており、ログ形式の変更といった簡単な操作もELBではできません。いずれの場合も、当社で必要とされる処理はNGINX以外では実現できなかったと思います」とグエイ氏は続けます。こうした調査の結果、最終的にCanal+では、技術スタックの重要なコンポーネントとして、NGINX Plusが選定されました。

成果

コスト削減

「NGINX Plusを導入したことで、パフォーマンスが大幅に向上したことがすぐに分かりました」とグエイ氏は語ります。堅牢なソリューションのため、Canal+は以前より少ないサーバー数で、1秒当たり5万件のリクエストを処理できるようになりました。これにより、Canal+はAWSのフットプリントを大幅に減らし、コストを削減できました。

スピードアップ

「独自の“limitable URL”機能と拡張性の高いHTTPキャッシュ機能により、極めて効率的にキャッシュを利用できると同時に、コンテンツの変更が利用者にすぐ分かるようになりました」。

成功のためのメトリクス

グエイ氏は、NGINX Plusを試してすぐに、オープンソース版と比べ、利用可能なメトリクスに大きな違いがあることに気付きました。

動画に10億回のクリックがあったとしても、それは追跡対象データの氷山の一角に過ぎません。それだけでは操作の回数やページビュー数などは分かりません。こうしたデータをすべて監視し、追跡する必要があります。NGINX Plusは、必要なデータをすべて可視化してくれます
– Frédéric Guay, Tactics Manager at Canal+

グエイ氏のチームでは、キャッシュ機能を最大限に活用し、NGINX Plusから特定時点でのキャッシュの状態や、キャッシュの比率、エラー率などの情報を取得しています。

Plusで利用できるようになったメトリクスは、マイクロサービスへの移行中においても、また現在は継続的デリバリーモードになっている新しいテクノロジースタックの監視においても、非常に役立っています。

NGINX Plusは、今ではCanal+の提供するサービスの基盤となっていると言っても過言ではありません。「サーバーの状態を細かく、常に把握できていることは、我々のサービスにとって非常に大きな助けとなっています」とグエイ氏は述べています。

今後の予定

Canal+のサービスはその後も拡大し続けています。「わたしたちは、これからも負荷に応じてNGINX Plusを拡張していく予定です。トラフィックの増加に応じて、またサービスの増加にあわせて、柔軟に今後も追加していくことになるでしょう。それが、NGINXの拡張性の高いデリバリープラットフォームなら容易に可能だからです。」とグエイ氏は語っています。

また、同社は世界中のフランス語圏への進出を進めています。NGINX Plusは、現在の10億回のクリック数を大きく上回る規模にも対応可能です。海外の子会社は急速に成長しており、Réunion、カリブ諸島、ニューカレドニアのほか、アフリカのフランス語圏、ベトナムにも進出しています。

Canal+について

Canal+ グループは、フランスの大手有料放送テレビ局です。総合チャンネル「Canal+」とその関連チャンネルによる有料コンテンツネットワークと、テーマ別ネットワークの両方でトップシェアを獲得しています。また、有料テレビサービスの多チャンネルプラットフォーム事業者および配信業者としてフランス最大手です。アフリカ、ポーランド、ベトナムでも有料テレビ事業を展開しており、国際的にも高い知名度を誇っています。Canal+グループ全体で、加入者は世界で1,400万人以上に達しています。フランス第5位の視聴率を誇るチャンネルC8を含む3つの国営チャンネルを運営する無料放送テレビ放送局のほか、グループ内の広告営業部門であるCanal+ REGIEも有するCanal+ グループは、民放テレビ局のベンチマーク的な企業でもあります。子会社のStudioCanalを通じて、長編映画やテレビシリーズの製作・配給で欧州をリードしています。

Group Canal+は、メディア/コンテンツの世界的な製作/配信グループVivendiの100%子会社です。