Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ABEMAの本番環境負荷試験への挑戦
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Miyazaki Taiga
July 12, 2025
Technology
3.1k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ABEMAの本番環境負荷試験への挑戦
SRE NEXT 2025 で発表した資料です。
Miyazaki Taiga
July 12, 2025
More Decks by Miyazaki Taiga
See All by Miyazaki Taiga
SRE チームの再出発 / ゆるSRE #16
mk2taiga
2
660
30時間限界突破フェスに向 けた SRE の取り組み
mk2taiga
0
46
ABEMAの安定稼働を支えたOpenTelemetryの導入事例
mk2taiga
0
10
Other Decks in Technology
See All in Technology
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
250
新しいVibe Codingと”自走”について
watany
6
330
入門!AWS Blocks
ysuzuki
1
130
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
480
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
1.1k
AIはどのように 組織のアジリティを変えるのか?
junki
3
890
20260619 私の日常業務での生成 AI 活用
masaruogura
1
210
フィジカル版Github Onshapeの紹介
shiba_8ro
0
260
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
670
【NRUG vol.18】なぜ多くのオブザーバビリティ導入は失敗するのか
nrug_member
0
140
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
21
7k
気軽に使える"情報のハブ"としてのNotion活用 〜フロー情報の集積点 と、 Claude Code × Notion AI〜
syucream
1
130
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
820
How to make the Groovebox
asonas
2
2.2k
Utilizing Notion as your number one productivity tool
mfonobong
4
320
Code Review Best Practice
trishagee
74
20k
A Tale of Four Properties
chriscoyier
163
24k
Become a Pro
speakerdeck
PRO
31
6k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Transcript
AbemaTV, Inc. All Rights Reserved AbemaTV, Inc. All Rights Reserved
1 ABEMA の 本番環境負荷試験への挑 戦 2025 July 12th 宮﨑 大芽
AbemaTV, Inc. All Rights Reserved 宮﨑 大芽 2022年にサイバーエージェントに中途入社。 入社後はABEMAにてバックエンドエンジニアとしてサービス開発に従事。 2024年よりABEMAのSREとしてサービスの信頼性向上を目指し、特に本番環境を用い
た負荷試験や障害試験の領域を中心に活動しています。 2 Profile
AbemaTV, Inc. All Rights Reserved 3 1. ABEMAについて 2. 「本番」で試験するに至った背景
3. 設計 4. 導入計画 5. 組織の合意形成 6. 得られた成果 7. 今後の展望 INDEX
AbemaTV, Inc. All Rights Reserved ABEMAについて 4
AbemaTV, Inc. All Rights Reserved ABEMAについて 登録不要で、いつでも無料で楽しめる 24時間365日編成されているリニア配信と 見逃した作品を好きなタイミングでオンデマンドでも楽しむこともできます。 国内最大級のオリジナルエピソード数
オリジナルエピソード数は国内発の動画サービスで日本No.1(※)を誇り、 注目の新作映画、国内外の人気ドラマ、話題のアニメなど豊富なラインナップの作品や、 様々な音楽や舞台のオンラインライブも展開。 ※2024年8月時点、自社調べ 100%プロコンテンツ サイバーエージェントとテレビ朝日 それぞれの強みを活かした制作体制で高品質なコンテンツを配信しています。 多彩なラインナップ 24時間編成のニュース専門チャンネルをはじめ、 オリジナルのドラマや恋愛番組、アニメ、スポーツなど、 多彩なジャンルの約25チャンネルを24時間365日放送しています。 5
AbemaTV, Inc. All Rights Reserved ABEMA 紹介 複数デバイス対応・多彩なチャンネルラインナップ 6
AbemaTV, Inc. All Rights Reserved 2025 年 4 月 2,892
万 WAU 3,408 2,892
AbemaTV, Inc. All Rights Reserved ABEMA: High Level Cloud Architecture
8
AbemaTV, Inc. All Rights Reserved 「本番」で試験するに至った背景 9
AbemaTV, Inc. All Rights Reserved 人気番組やニュース速報による突発的なトラフィック急増が 度々発生する。 突発的なトラフィック 「本番」で試験するに至った背景: ABEMAの状況
10 ABEMA はイベント配信の時だけでなく、平常時においても 多くの同時接続が可能であることが要件となってる。 事業要件
AbemaTV, Inc. All Rights Reserved 「本番」で試験するに至った背景: ABEMAの状況 11 • サービスの成長に伴い、システムの複雑性も増加
• 試験を行うために本番と同等の環境を構築し、またそれを運用していくのは時間的・金銭的コストが指数的に増加する ため非現実的 • 気軽に試験できる状況ではない サービスの成長に伴い、システムは複雑に
AbemaTV, Inc. All Rights Reserved 我々の決断 「本番」で試験するに至った背景 12 • 課題
◦ 事業要件や突発的なトラフィックに対応できる必要がある ◦ システムの複雑性やコストから気軽に試験できる状況ではない ◦ 負荷試験環境は仮想環境であって、本番特有の問題を再現できないことも • 結論 ◦ 本番に近づけた検証環境を使うのではなく、本番環境そのものを使う
AbemaTV, Inc. All Rights Reserved 設計 13 「安全」を担保しながら実現するために
AbemaTV, Inc. All Rights Reserved 設計の基本方針は「ユーザーの体験を損なわない」こと 設計 14 • 試験の影響範囲を限定的にする
• 危険を察知したら即座に手動/自動で停止できる機構を持つ
AbemaTV, Inc. All Rights Reserved 設計 15 全体アーキテクチャ図
AbemaTV, Inc. All Rights Reserved 設計 16 • 本番環境の同じクラスター内に構築された、もう一つのアプリケーション群 •
PodとNodeを完全に分離し、 ABEMA利用者のリクエストを捌く Podのリソースを食い潰さない • データソースは共有している ◦ ABEMAは様々な種類の DBを利用していることから DBまで複製するのは厳しい コア技術 : マルチテナント化
AbemaTV, Inc. All Rights Reserved 設計 17 • Uber, Mercariさんの取り組みをヒントにさせていただきました
コア技術 : マルチテナント化 https://www.uber.com/en-JP/blog/multitenancy-microserv ice-architecture/ https://engineering.mercari.com/blog/entry/20220218-dy namic-service-routing-using-istio/
AbemaTV, Inc. All Rights Reserved 設計 18 • Kubernetesの自作カスタムコントローラーによる Tenant構築
• 開発者はカスタムリソースを定義するだけで、迅速に Tenantを構築可能 • レプリカ数, CPU, Memoryなどの変更をしたい場合に、カスタムリソース 経由で変更が可能 Operatorによる宣言的なテナント構築
AbemaTV, Inc. All Rights Reserved 設計 19 1. オリジナルのリソースを取得し、 nameなどのフィールドを書き換えて作成
a. カスタムリースでは CPU, Memoryなどを個別に定義できるので、それらも含めて全て書き換え 2. Tenantアプリケーションへトラフィックが流れるように、 VirtualServiceにヘッダーベースルーティングを追加 Operatorの内部動作 : 自動的なマニフェスト書き換えとデプロイ
AbemaTV, Inc. All Rights Reserved 設計 20 • Tenantアプリケーションを構築しただけでは、トラフィックの制御はできない •
VirtualServiceのヘッダーベースルーティングを動的に追加することで Tenantアプリケーション間の通信を実現 ◦ 大元のVirtualServiceを更新したくなかったので、 Delegate機能を利用 Istioによるトラフィック制御
AbemaTV, Inc. All Rights Reserved 設計 21 • 試験対象のAPI一覧をもとに、必要な Tenantアプリケーションを構築するための
Custom Resourceを自動生成でき るようにした カスタムリソースの作成を簡単にするアプローチ
AbemaTV, Inc. All Rights Reserved 設計 22 • 負荷シナリオ ◦
メトリクスの時系列データから k6シナリオを自動生成 • 負荷試験に利用するリクエストパラメータ ◦ 課題 ▪ システムの変化に追従していくのが難しい ▪ 番組など時間的な制約があり、一度作った試験用のリクエ ストパラメータを使い回せない ◦ 直近のアクセスログからリクエストパラメータを自動生成 負荷トラフィックの自動生成
AbemaTV, Inc. All Rights Reserved 設計 23 • モニタリングは既存のモニタリングツールをそのまま利用 •
DBは共有リソースとなっているため、より注意が必要 ◦ 利用している DBの中でアラートが未設定のものを調査し、アラートの追加を行った • Tenantと(試験)Versionで対象の試験のメトリクスのみを表示できるように対応 ◦ 例: Tenant = loadtest, Version = Latest で最新の試験のメトリクスのみを表示 モニタリングとアラート
AbemaTV, Inc. All Rights Reserved 設計 24 • k6のThresholds機能を利用して、性能を下回ったタイミングで負荷試験を停止 ◦
本来のSLOと同じ値でthresholdsを設定すると、負荷があまりかかっていない段階で停止することもあった ため、少し緩めた閾値で設定 自動緊急停止トリガー
AbemaTV, Inc. All Rights Reserved その他 設計 25 • DBリソースを共有していることから、主にGET
APIを負荷試験の対象としている ◦ ABEMAのサービス特性上、Readが多いためことから、GET APIの試験だけでも高い効果が得られる • POST系のAPIについては、データ汚染を防止するために特定のダミーフラグを付与し、試験後にデータをク リーンアップできる仕組みを導入 ◦ 優先度が高いPOST系APIのみ試験対象としている • アクセスログ・アクションログなど調査や分析等に利用されるデータへの書き込みはノイズになることから省く ような対応を入れた • 負荷試験によってWAFが誤作動しないように、OperatorでTenantのBackendConfigの設定を修正
AbemaTV, Inc. All Rights Reserved 設計 26 全体アーキテクチャ図(再掲)
AbemaTV, Inc. All Rights Reserved 導入計画 27 どのように「段階的」に進めたか
AbemaTV, Inc. All Rights Reserved 導入計画 28 • 導入フェーズ ◦
Dev環境で手動による Tenantの構築、負荷試験を実施し実現可能性を検証 ▪ トラフィックが意図した挙動をするか ▪ 意図しない書き込みなどの副作用がないか ◦ Prd環境で手動による Tenantの構築、高トラフィックの負荷試験を実施 ▪ Istioによるルーティングがボトルネックとならないか懸念があり、大きく動き出す前に検証を行った ◦ 仕組みをスケールさせるための基盤構築 ▪ Custom Operator ▪ 負荷トラフィックの自動生成ツール ◦ 最初は単一エンドポイントで試験を実施し、徐々に対象範囲を広げる • 運用フェーズ ◦ 継続的な実施 段階的な導入
AbemaTV, Inc. All Rights Reserved 組織の合意形成 29
AbemaTV, Inc. All Rights Reserved 組織の合意形成 30 • 前提として、定期的に最大同時接続数の負荷に耐えられるか チェックしたいという、
経営側の課題感もあった • 現状の共有 ◦ 複雑性の増加により、通常の手法での解決は難しい ◦ 既存の方法ではコスト(リソース・お金)がかかる • 意思決定のための判断材料を渡し合意を得た ◦ コスト削減メリット ◦ 大規模かつ日本国内であれば事例もないので技術的価 値も大きい 本番で試験することへの説得と理解獲得
AbemaTV, Inc. All Rights Reserved 組織の合意形成 31 • プロダクト開発チーム ◦
試験対象コンポーネントの特性や懸念点のヒアリング • Developer Productivityチーム ◦ 可観測ツールのコストについての懸念ヒアリング • Cloud Platformチーム ◦ インフラ設計、コストについての共有と合意 ◦ 負荷試験によるトラフィック増加に関して Google への共有 • データマネジメントチーム ◦ データ汚染に関するリスク箇所の整理と対策 チーム間のコラボレーション
AbemaTV, Inc. All Rights Reserved 組織の合意形成 32 • 負荷試験を実施して良いボーダーラインを決定 ◦
同時接続数など • 負荷試験の実施前に開発者に対して必ず周知 ◦ 万が一障害が発生した場合に、迅速に連携を取れるように その他
AbemaTV, Inc. All Rights Reserved 得られた成果 33
AbemaTV, Inc. All Rights Reserved • 事業要件として掲げられている最大同時接続数まで スケールできるかのテスト • 最大同時接続数まで徐々に負荷を増やしながら試
験実施 スケールテスト 実践した2種類の負荷試験 34 • 人気番組やニュース速報による突発的なトラフィック を想定したテスト • 仮装待機室によってジョインレートを定めており、そ の最大の閾値で試験実施 スパイクテスト
AbemaTV, Inc. All Rights Reserved Contextual Bandit を用いたレコメンドシステムのリリース前負荷試験 35 •
新しいアルゴリズム (Contextual Bandit)を用いたレコメンドシステムのリリース前負荷試験に利用 • レコメンドシステムはデータ次第で負荷が変わる可能性があったため、本番環境で実際のデータを利用して負荷試 験を実施した • 実際のデータかつ本番で負荷試験を行った事によるエンジニアの安心感 性能試験 https://developers.cyberagent.co.jp/blog/archives/57070/
AbemaTV, Inc. All Rights Reserved • 人的・金銭的に多額のコストがかかる • 環境の二重管理が不要 に
• 毎年の負荷試験環境への予算を 85%削減 • 大規模イベント時のコストを考慮すると 99%削減見込み 試験環境の運用にかかるコスト コスト削減 36 • 負荷試験環境としてシステム全体の構築に数ヶ月か かっていた • 環境構築にかかる時間を 99%削減(数十分に短縮) 環境構築にかかる時間的コスト
AbemaTV, Inc. All Rights Reserved 今後の展望 37
AbemaTV, Inc. All Rights Reserved 継続的な負荷試験 今後の展望 38 • ABEMAの最大キャパシティを把握するための大規模な負荷試験を定常的に
行う運用体制の構築 • リリースプロセスへの統合 ◦ リリースが性能に与える影響をリリース前に評価
AbemaTV, Inc. All Rights Reserved 今後の展望 39 • これまでも Chaos
Mesh を用いたカオスエンジニアリングは度々行ってきた ◦ 開発環境のみでしか実施できない ◦ 開発中のエンジニアや QAの手を止める必要があった • Tenantアプリケーションを利用し、 ABEMA利用者や開発者に影響を与えずに、開発環境・本番環境でカオスエンジニアリン グが可能だと考えている ◦ 定常的に実施される自動カオスエンジニアリングも視野 カオスエンジニアリングへの応用
AbemaTV, Inc. All Rights Reserved 今後の展望 40 • マイクロサービスアーキテクチャを採用しているが、複雑さからローカルでサーバー起動による動作確認は難しい •
アプリケーションやサービス間の連携に起因する問題は、 mainブランチへのマージと開発環境へのデプロイを経なければ 確認できない • Tenantアプリケーションを利用した DarkCanaryリリースを導入 ◦ PRからTenantアプリケーションを立ち上げられるフローを検討中 DarkCanaryリリースへの応用
AbemaTV, Inc. All Rights Reserved 今後の展望 41 • Ingress ではヘッダーベースルーティングができないため、テナント用に
Ingress を別途作成している • Gateway API を利用することで、ヘッダーベースルーティングやミラーリングが可能に GatewayAPIを利用したマルチテナント基盤のブラッシュアップ
AbemaTV, Inc. All Rights Reserved まとめ 42
AbemaTV, Inc. All Rights Reserved まとめ 43 • 事業要件と突発的なトラフィックへの対応、システム複雑化、既存手法のコストが課 題
• 「本番」環境での負荷試験を安全に実施するため、マルチテナント化を提案 • 段階的な導入と組織間の合意形成を経て、負荷試験・コスト削減での成果 • 今後は継続的な負荷試験、カオスエンジニアリング、DarkCanaryへの応用を目指 す
AbemaTV, Inc. All Rights Reserved