はじめに
こんにちは。広告プロダクト本部の髙品です。私は、TVer広告の配信システムおよび広告周辺領域のシステム開発・保守を担うチームのSREです。先月、4月9日から4月11日の3日間にLas VegasのMandalay Bay Convention Centerにて開催されたGoogle Cloud Next '25に参加しました。TVer社としては3年連続の参加で、今回は2名が参加しました。すでに開催から1ヶ月以上が経過し、Google Cloud がGoogle Cloud Next '25 で行われた 229 の発表のまとめというブログ記事をポストしているため、新機能やアップデートの紹介は公式ブログに譲り、このブログではInfrastructureおよびDatabaseの分野にスポットを当てて、個人的に印象に残った情報と感想をお伝えします。インフラエンジニア、プラットフォームエンジニア、SREとしてGoogle Cloudを利用されている方の参考になれば幸いです。
Google Cloud Next '25に参加した目的
私は以下の目的でGoogle Cloud Next '25に参加しました。
広告プロダクト本部はTVer広告の配信システムを社内で運用しており、Google Cloudの様々なマネージドサービスを利用して広告配信を実現しています。それらのマネージドサービスを大規模に利用しているユーザーの事例や最新機能の情報を知って私たちの運用に取り入れる。さらに、私たちがGoogle Cloudを基盤として広告事業を運営していくうえで、ぜひ欲しい機能リクエストをプロダクトマネージャーに直接伝えてディスカッションする。これらによって、広告事業の成長を加速させるためにInfrastructureとSREの領域で中長期な戦略を立てることが参加の目的でした。
セッション
目的1を達成するために参加したセッションと得られた情報のなかでも、特に印象に残ったものをピックアップして簡単にご紹介します。 セッションはNext '25のWebサイトから視聴可能です。動画のURLはYoutubeの限定公開URLであるため、本ブログに埋め込むことは控えています。
『How Shopify runs their biggest business event of the year with GKE』
多国籍eコマース企業でECサイトの構築・運営に特化したプラットフォームを提供しているShopifyが、Black FridayやCyber Monday(BFCM)のようなピークイベントにおける予測不可能なトラフィックの急増にも柔軟に対応できる、堅牢でスケーラブルなインフラストラクチャを構築する方法を解説するセッションです。
Shopifyは2024年のBFCM期間中に過去最高の売上を達成し、期間中のピークリクエスト数は2億8640万/分に達しました。ShopifyのBFCM 2024の詳細な規模は公式のプレスをご参照ください。
BFCM期間中の膨大なトラフィックを処理するためのリソース需要増加に対して、GKEのCustom Computing Classを最大限に活用した、と話していました。GKE Custom Computing Class(CCC)は、GKEノードのconfigで、ノードのプロビジョニングと自動スケーリングを細かく制御する機能です。CCCには「フォールバックコンピューティングの優先度」という特徴があり、マシンファミリーやCPU/メモリの量を指定したノードの構成を複数作成して優先順位を付けることができます。これにより、優先度の高い構成でノードを起動できなかったら、次の優先度の構成でノードの起動を試みることが可能で、あるリージョン・ゾーンにおいて特定のマシンファミリー・タイプのキャパシティが減少して、自分たちのワークロードでコンピューティングの確保が難しくなった場合も次善の構成でコンピューティングを確保できます。Shopifyにとって可用性とパフォーマンスはどちらも重要ですが、BFCM期間中は可用性のほうがより重要で、可用性を確実なものにするためにCCCが非常に役立ったそうです。
GKEのCCCは、Shopifyほど巨大なワークロードでなくても有用だと感じました。広告配信のワークロードにおいて、アプリケーションコンテナを実行するノードのCPU性能は重要であるため、C4ファミリー1のVMを使用したいのですが、このブログ執筆時点では東京リージョンのasia-northeast1-aゾーンでC4ファミリーのVMを起動することができないため、全てのゾーンで起動可能なC2ファミリーを使用しています。2しかし、CCCを活用すればasia-northeast1-b,cではC4の構成でノードを起動し、asia-northeast1-aではC2の構成にフォールバックしてノードを起動することが可能だと思います。topologySpreadConstraints
を組み合わせれば特定のzoneにPodが偏って起動しないように制御できます。GKEの最適化のためにCCCを検証して、有用であることが分かり次第プロダクション環境に適用したいと考えています。
『Troubleshoot issues on Google Cloud with Gemini Cloud Assist Investigations』と『Transforming Day 2 ops on Google Cloud: What’s new』
Gemini Cloud Assistと周辺サービスによって、Google Cloud上のアプリケーションの運用を効率化する方法を紹介するセッションです。開発者向けのGemini Code Assitに加えて、Next '25で運用者向けにGemini Cloud Assistが発表されました。Gemini Cloud Assistによって運用における様々な場面でGeminiのサポートを受けられるようになります。特にありがたいと感じた機能は以下です。
- AIによるログの説明、分析、トラブルシューティング
- 費用と使用率の最適化/Cloud Hubインテグレーション
1はCloud Loggingのログエントリについて、Geminiが平易な言葉で要約し、エラーメッセージを説明して、エラーの原因について仮説と検証方法を提案してくれる機能です。例えば、Cloud Load Balancingの4xx, 5xxエラーログや、GKEのWARNING以上のseverityのログをGeminiに説明してもらい、トラブルシューティングを支援してもらうことが可能です。この機能がサポートしているGoogle Cloudプロダクトはこちらに記載されています。
2は、Google Cloudのコストとリソース使用率の最適化支援機能です。従来、コストや最適化のための推奨事項は支払いアカウントで確認する方法が一般的だったと思いますが、プロジェクトごとにCloud Hubの画面でコストとリソースの使用率を「コンポーネント単位で」確認可能になりました。プロジェクトで発生しているコストにおいて支配的なコンポーネントと使用率を一目で確認できるため、最適化のためのアクションを考えやすくなったと感じます。また、個人的にはCloud Hubにデプロイ、ワークロードの健全性、コスト最適化、クォータ、メンテナンスの情報が集約されることによって、とても実用的な運用ダッシュボードが提供されるようになって非常にありがたいと思いました。
本ブログ執筆時点で、弊社においては、上記の機能を含めGemini Cloud Assistと周辺プロダクトは試用フェーズですが、日々の運用やトラブルシューティングのワークフローに上手に組み込んで習熟することで、障害の予防やMTTR短縮に繋げたいと考えています。
Meet the Expert
Next '25のようなGoogle Cloudの旗艦イベントにおいて、プロダクトマネージャーやスペシャリストとディスカッションする機会にはMeet the Expertという名前が付いています。今回、Google Cloud Japanの皆さまにご尽力いただき、現地でMemoystoreとBigtableのプロダクトマネージャーとミーティングすることができました。
背景
TVer広告の配信システムでは、広告の配信量を制御するコア機能にMemoystore for Redis Cluster(MRC)を利用しています。MRCは高い可用性と極めて高い読み書き速度を両立する優れたプロダクトなので非常に満足していますが、Redisのライセンスとクラウド事業者が置かれた状況を考慮して、Memoystore for Valkeyへの移行パスを検討しています。ご存知のように、Redis7.4以降のバージョンのライセンス変更以降、クラウド事業者各社はValkeyベースのインメモリデータベースサービスを発表し、Google CloudもMemoystore for Valkeyをリリースすると共に、Valkeyへの支持を表明しています3。今後、MRCよりもMemoystore for Valkeyに積極的な投資がなされると思われるので、私たちもValkeyの勢いに乗って、より一層高いパフォーマンスを追求したいです。4
ディスカッション
上記の背景をお伝えし、MRCからMemoystore for Valkeyへのゼロダウンタイムマイグレーション手法について議論しました。議論の内容は非公開情報を含むため、本ブログでお話することはできませんが、Valkeyへの移行に向けて前向きな話ができました。ちなみに、日本からの参加者と現地で交流した際にValkeyへの移行が何度か話題に上がったので、日本のMRCのユーザーの間でも本件はホットなトピックであるという認識を持ちました。ビジネスクリティカルシステムにおいてMRCからValkeyへ安全に移行する方法が、日本のMRCユーザーの間で普及することを願っています。
おわりに
Next '25も例外ではありませんが、Google CloudのイベントのKey Noteやセッションはオンラインでも視聴可能ですし、現地参加しているGoogle Cloudのパートナー企業さんが速報ブログを書いてくれるので公開情報をいち早く知ることは日本に居ても可能です。しかし、Meet the Expertのようにオフラインでしか実現しないこともありますし、各セッションが参加者の間でどのくらい注目されているかは会場に行かないと分かりませんから、現地に出向く価値を強く感じた3日間でした。
私が所属している広告プロダクト本部では、本ブログで言及したGKEとMemorystoreだけでなく、様々なGoogle Cloudのプロダクトを利用して広告配信システムを開発・運用しています。広告事業の成長を支える信頼性の高い基盤を構築するために、Next '25で持ち帰ったアップデートの検証とプロダクション環境への導入だけでなく、オブザーバビリティの向上など、SREとして取り組みたい課題はたくさんあります。広告プロダクト本部では、一緒にプロダクトを開発するメンバーを募集中です。SREだけでなく、広告配信基盤を開発するバックエンドエンジニアなどの複数の職種をオープンしています。
ご興味のある方は、是非弊社採用サイトをご確認ください。
- Google Cloudは昨年にC4とC4Aを発表しています。↩
- 本ブログ執筆時点でC4/C4Aを起動可能なasia-northeast1のzoneは、GCEのドキュメントを読むとasia-northeast1-b,cの2つです。↩
- 2024年8月から9月にかけて、Memorystore for Valkey のプレビュー版がリリースされました。現在はValkey 7.2/8.0がGAされています。Google Cloud、100% オープンソースの Key-Value サービス Memorystore for Valkey をリリース↩
- Next'25の『What’s new with Memorystore for Valkey』というセッションにおいて、スピーカーが「Engine innovation is going to come to Valkey」と発言していたので、Google CloudがValkeyに注力するのは間違いないと思います。↩