コンテンツに移動
データベース

Cloud SQL でファンとアーティストをひとつに

2020年12月9日
Google Cloud Japan Team

※この投稿は米国時間 2020 年 12 月 3 日に、Google Cloud blog に投稿されたものの抄訳です。

編集者注: 本日は、Warner Music Group 傘下で英国に拠点を持つコンサート紹介サービス会社の Songkick にお話を伺います。Songkick はモバイルアプリやウェブサイトを通じてお気に入りアーティストの最新情報、コンサート情報、ライブ配信情報を取得したり、オンラインで安全にチケットを購入したりできるサービスで、世界中で年間 1 億 7,500 万人の音楽ファンが利用しています。同社がデータを物理サーバーからクラウドに移すことでどのようにプロセスが合理化され、新たな可能性の扉が開いたのかをご紹介します。

2007 年のサービス開始以来、私たちは音楽ファンが簡単に、楽しく、そしてフェアな方法でお気に入りアーティストのライブに参加できるよう努めてきました。そのために、アーティスト、プロモーター、チケット販売業者が共有する情報を収集してイベント情報データベースに格納し、トラッキング データベースでユーザーがマーキングしたデータと相互参照させています。これにより、ユーザーは好きな施設のコンサート スケジュールや、売り出されたチケットをすぐに購入する方法を知ることができます。

これまでずっと、このシステムは物理的なサーバー スペースに依存してきました。Songkick ではオフサイトでラック 3 つのサーバーを管理していました。これは、ハードウェアの問題が発生した際には、たとえ真夜中であろうとサーバーの置かれている場所に担当者が物理的に移動して解決に当たらなければならないということでもあります。担当チームは時間のかかる不要な作業を強いられ、さらに、長期にわたるダウンタイムが発生してしまう危険性も小さくはありませんでした。Warner Music Group に買収されたとき、私たちはエンジニアリング チームとして何にフォーカスし、どのような価値を提供していきたいのかを改めて考えました。そして、物理的なマシン ハードウェアやデータベース サーバーの維持管理はそこに含まれないという結論に達しました。

グローバルな設備への移行

当然の帰結としてクラウドへの移行が検討され、調査の結果、私たちにとっては Google Cloud がベストであることがわかりました。Google Cloud のマネージド サービスを導入したことで、私たちはデータベース インフラストラクチャのあらゆる管理作業から解放されました。早朝 4 時にハードウェア不調の通知を受けて家を飛び出すようなことは必要なくなったのです。また、インフラストラクチャ管理作業の中でも特に頭痛の種となっていたソフトウェア アップデートの作業も、今では不要になりました。以前はオフサイトの物理サーバーのアップグレードに、テスティングから最終調整まで合わせて 1 か月以上かかっていました。率直に言って、その作業を Google に任せて自分たちはソフトウェアの開発に専念できるようになったことについては、嬉しいという一言しかありません。

ありがたいことに、Google Cloud への移行はきわめて容易でした。私たちは、外部レプリケーションを使用して、データベース インスタンスを 1 つずつ順番に移行しました。ダウンタイムは 1 インスタンスにつき 5 分程度で済みました。ダウンタイムをほぼゼロに抑えることも可能ではありましたが、私たちの場合、そこまでする必要はありませんでした。現在では、Songkick の 4 つのデータベースはすべて Cloud SQL for MySQL で実行されており、その中でも最大のもの(音楽イベント情報、およびアーティストのツアー / コンサートのトラッキング情報用)は専用のインスタンスでホストされています。これらのデータベースはきわめて大きく、データ使用量は、イベントデータ 400 GB とトラッキング データ 100 GB も含めて合計でおよそ 1.25 TB になります。サイズ上位 2 つのデータベースは 8 CPU で RAM 30 GB、残り 2 つは 4 CPU で RAM 15 GB のスペックで運用しています。そのデータをステージング環境に複製しているので、Cloud SQL に格納しているデータ量の総計はおよそ 2.5 TB です。

結果として、私たちは MySQL にわずらわされる時間が減り、直接ビジネスに影響する改良により多くの時間を使えるようになりました。

Cloud SQL でデータをクリーンに保つ

Songkick の強みの一つは、アーティスト、プロモーター、会場施設、チケット販売業者から直接データを受け取っていることです。これにより、共有されたらすぐに正確な情報を取得できます。しかし、このように情報源が多岐にわたることにはマイナス面もあります。個々のソースから送られてくる情報は形式がまちまちで、基本的にそのまま統合することはできません。また、複数のソースから同じ情報が重複して提供されることも多く、適切に処理しないとユーザーを混乱させてしまいます。

Cloud SQL は信頼できる情報源としてのデータストアとなっており、Songkick の全チームと、ビジネス ロジックが動く 30 のアプリケーションのすべてが同じ情報を共有しています。Songkick に入ってくるデータは、Cloud SQL に格納される前にまず重複排除と正規化のためのルールが適用されます。これにより、データの間違い、不整合、重複、不足を予防します。

これは、Songkick が Google Cloud に移行して改善しようとしていた内容のほんの一部でしかありません。今後はデータ処理オペレーションの拡張を計画しており、たとえば熱心なファンの分布を表示するサービスを展開してアーティストのツアー計画作成に役立ててもらおうと考えています。このプロセスは、BigQuery でクエリを集約し、結果の要約を Cloud SQL に格納して合理化するつもりでいます。こうして、私たちはファンとアーティスト両方により良いサービスを提供できるよう前進していきます。そしてそれを根幹で支えるのは、優れたクラウドのデータベースです。

SongkickGoogle Cloud データベースの詳細をご覧ください。

-Songkick.com システム サポートおよびインフラストラクチャ担当アーキテクト Sam Rudge

投稿先