TVerでバックエンドとデータシステムを担当しております黒瀬です。
先日こちらのブログでご紹介しておりました通り、10月8日に開催されたJAWS DAYS 2022にTVerはスポンサー協賛しました!!
そして当日は、目黒会場で登壇枠をいただき、そして大阪・札幌サテライトで現地参加してきました。
会場
目黒会場はAWSさんのオフィスでした!
トラックごとにセッション会場が分かれていましたが、休憩時間にはセッション会場外でも盛り上がりを見せていました。
ノベルティコーナーもありました。弊社もコースターとステッカーを今回配布しました!
コミュニティ
全国各地にサテライト会場が置かれていたということもあり、コミュニティの強固なネットワークを感じることができました。
また、AWSのVPであるJeff Barr氏も参加されていて、AWSの組織文化について話されていました。
登壇にあたっては、運営の方々に事前打ち合わせ・当日対応などなど多岐にわたってお世話になりました。ありがとうございました。
登壇
ここでは、登壇内容について改めて簡単にご紹介します。
資料はこちらからご覧ください。
背景と目的
TVerは4月にリニューアルしましたが、そこでは今後のサービス成長にあわせたバックエンドの拡張性をどのように担保するか、をテーマの一つとしていました。
特に検索機能に関しては、TVerで公開しているコンテンツを管理するCMSのDB(MySQL)と検索APIが密結合になっており、また検索としてもそれ専用のミドルウェアを利用していたわけではありませんでした。
そこで、インフラを疎結合にすること・検索に特化したミドルウェアを導入することで、検索機能を専門で担う検索基盤を新たに構築することを、開発の目的の一つとしていました。
方針
バックエンドはAWSで構築していたため、その既存構成と親和性の高いAmazon OpenSearch Service(以下OpenSearch)を採用しました。
採用にあたっては、下記3点を実現する仕組みを実装することで、運用負荷を抑えつつ検索基盤として実現しています。
- CMSのDBから都度コンテンツ情報をOpenSearchのIndexへ投入するバッチと、Indexが最新のコンテンツ情報に追従するためのAPIパスの2つにより、OpenSearchでデータのバックアップを不要としつつも検索対象のコンテンツが適切に検索できるようにしました。
- TVerでは見逃し配信の期間を過ぎたコンテンツ情報は検索に出ないようにするが、愚直にIndexへ投入し続けると不要なコンテンツ情報がIndexへ溜まり続けるため、Indexを定期的に作り替えて検索対象のコンテンツ情報のみを入れ直すバッチを実装しました。
- Indexを作り替えると、OpenSearchに検索リクエストを投げる検索APIの参照を毎回変える必要があるため、検索APIにはAliasを見せておきその裏でIndexを作り替えるようにしました。
全体を通しての感想
私はJAWS DAYSへのイベント参加は初でしたが、コロナ禍においてもAWSについて語れるコミュニティがあるということは、心強いということでもあり、今後もAWSでいいシステム作っていくぞ!という刺激にもなりました。
まだまだお話ししきれなかったことはたくさんありましたが、今後弊社としてもコミュニティに何かしら貢献できればと考えています。
We're hiring!
TVerのサービス開発にご興味のある方、ぜひお話しさせてください!
こちらのページに募集要項もございます。
カジュアル面談も大歓迎です!ご連絡お待ちしております。