Upgrade to Pro — share decks privately, control downloads, hide ads and more …

QA チームのテストを活用した SLI を ECS on EC2 で動かした話/SLI on ...

sugitak
February 27, 2025

QA チームのテストを活用した SLI を ECS on EC2 で動かした話/SLI on ECS on EC2 using QA Playwright E2E test

ゆるSRE勉強会#9 の発表資料です。
さいきん始めた取り組みとして、 E2E Browser Test を用いた SLI を ECS on EC2 で動かした話を紹介しています。

https://yuru-sre.connpass.com/event/342085/

sugitak

February 27, 2025
Tweet

More Decks by sugitak

Other Decks in Technology

Transcript

  1. © 2025 estie Inc. QA チームのテストを活用した SLI を ECS on

    EC2 で動かした話 株式会社estie 杉田毅博 (GitHub:sugitak, X:@sugitak06)
  2. © 2025 estie Inc. 杉田 毅博 github:sugitak, x:@sugitak06 • 2022~

    株式会社 estie 「1人目SRE」兼 EM • 2017~ 株式会社Preferred Networksコーポレートエンジニ ア。勝手にEmbedded SREも兼務 • 2015~ freee株式会社にてSREを名乗り始める。デプロイを 60分→7分に短縮・安定化。CSIRT立ち上げリーダー、セ キュリティ開発なども担当。自称デプロイ屋さんになる • 2011~ IIJ にて Ruby PaaS 開発。ユーザコードのデプロイ 部分を一人で担当。自称bundlerの専門家になる 講演等 2017-07 Schoo にて Prometheus 講師 2018-02 Software Design 誌にて9ページ記事執筆
  3. © 2025 estie Inc. きょう話すこと • SLO は必要があって定めるものだよ • estie

    では QA と SRE との協働の結果として CUJ/SLI を作ってるよ • Playwright を走らせるなら Lambda より ECS on EC2 の方がいい ……かも!?(検証中)
  4. © 2025 estie Inc. SRE と SLO - (1) 「SRE

    にとって SLO はコア。 SRE なら Error Budget の運用のために SLO は当然やっているよね」 5
  5. © 2025 estie Inc. SRE と SLO - (2) •

    とはいえ、なかなか難しいよね • 我々はビジネスをしている。 SRE の活動もそれに沿っている必要がある • Error Budget や SLO は SRE として実施したいが、ビジネス観点で本 当に「今」「一番」必要なのか? 6
  6. © 2025 estie Inc. SLO が解決している問題 • SLO はたくさんの要素で構成された総合的なベストプラクティス •

    「プロダクトが動いている」状態の定義 • 死活監視の e2e 化 • 開発チームとの共通言語 • SRE の評価を経営陣と握るためのもの • ビジネスインパクトを測るためのもの • 稼働率や安定性の約束をするためのもの • Error budget で運用を経営の範囲でできるようにするもの 7
  7. © 2025 estie Inc. 「SLO が活用されている」状態: 8 • CUJ が適切に定められ、

    CUJ ベース のテストが SLI として稼働している • その SLI がサービス稼働基準として 社内で合意され、広く活用されている • Error Budget が Manager を通じ て経営陣と握られている
  8. © 2025 estie Inc. 「SLO が活用されている」状態: 9 • CUJ が適切に定められ、

    CUJ ベース のテストが SLI として稼働している • その SLI がサービス稼働基準として 社内で合意され、広く活用されている • Error Budget が Manager を通じ て経営陣と握られている 「適切」? 「広く活用」? 「合意」? 「握る」?
  9. © 2025 estie Inc. SLO はむずかしい • SLO は複数の関心事を解決している総合的なベストプラクティス •

    運用に載せるまでには、やることいっぱいある • 逆に言うと、「全部出来ている」ことが必須なわけではない • 今やるべきこと、来年ほしい状態などを考えつつ、ビジネス判断として投 資をしていくもの 10
  10. © 2025 estie Inc. ここで話すこと • プロダクトの挙動確認に E2E テストが必要 •

    QA チームの E2E テストがすごくいい • CUJ を動かす環境の話 13
  11. © 2025 estie Inc. ここで話すこと • プロダクトの挙動確認に E2E テストが必要 •

    QA チームの E2E テストがすごくいい • CUJ を動かす環境の話 14
  12. © 2025 estie Inc. Confidential © 2022 estie Inc. Our

    purpose 産業の真価を、さらに拓く。
  13. © 2025 estie Inc. estieの事業領域 16 数ある産業の中で、estieが最初に挑む領域は不動産 不動産の中でも商業用不動産領域に注力。オフィスを中心に様々なアセット情報を提供 資産 タイプ

    Office オフィス Retail 商業施設・アウトレット等 Industrial 物流施設・データセンター等 Hotel ホテル Residential 住宅 投資 目的資産 自己使用 目的資産 商業用不動産市場 賃貸住宅市場 分譲住宅市場
  14. © 2025 estie Inc. Whole Product構想 17 estie独自の不動産基盤データ 分析 認証

    権限管理 API セキュリティ ワークフロー 検索 売買事例データ 賃貸事例データ マクロデータ 売買物件 探索 売買物件 管理 物件価値 評価 顧客管理 募集管理 募集情報 提供 売買マーケットプレイス 賃貸マーケットプレイス ポートフォリオマネジメント IR・資金調達 ERP Marketplace SaaS Data as a Service (DaaS) Middleware Data Platform 売買 賃貸 ファイナンス 商業用不動産市場全体を支えるWhole Productを構築し、産業の真価を拓く
  15. © 2025 estie Inc. プロダクトラインナップ(一部抜粋) 18 賃 貸 市 場

    DaaS ( デ ー タ ) 売 買 市 場 SaaS 日本最大級のオフィスビルデータベース 日本最大級の所有者/売物件探索サービス 不動産取引の案件管理サービス + J-REIT/行政関連オープンデータ 売 買 市 場 SaaS 日本最大級の物流施設データベース 日本最大級の住宅賃料データベース
  16. © 2025 estie Inc. estie 会社説明まとめ • 商業用不動産のデータを用いて商業用不動産市場全体を支え、「産業の真価を、 さらに拓く。」ことを目指している •

    「コンパウンド」戦略を推進。現時点でもプロダクト数が10程度あり、まだま だ増える予定 • 各プロダクトチームを支えるプラットフォームとして、品質管理の QA チームと SRE の所属するプラットフォームチームがある • プロダクトの一つである「マーケット調査」はデータ提供・分析を中心とした総 合プロダクト。検索体験が特に重要 21
  17. © 2025 estie Inc. SLI 改善の機運 22 元々、初期 SLI として各サービスの

    health check endpoint の応答を利用し ていた 死活監視として運用。いったん十分だった SLI/SLO 高度化よりもプロダクトのス ペック情報整理の方を先に実施 安定稼働時間, RTO/RPO, デプロイ停止可能時 間, …… その後、提供サービス数の増加にともな い、信頼性が以前に増して重要に 「サービス提供できているとはどういうこと か?」について本気出して考えてみた
  18. © 2025 estie Inc. estie のプロダクトが「動いている」とは? • SLI では、「プロダクトが "正しく"

    動いている」ことを測りたい • estie はデータのプロダクトが中心 o データプロダクトとしては「検索して妥当な結果が返ってくる」こと こそが Critical な User Journey o データの解釈も含めてプロダクト価値。監視が必要 => E2E test でデータも含めて監視 23
  19. © 2025 estie Inc. ここで話すこと • プロダクトの挙動確認に E2E テストが必要 •

    QA チームの E2E テストがすごくいい • CUJ を動かす環境の話 24
  20. © 2025 estie Inc. Playwright 25 https://ray.run/blog/playwright-logo • Microsoft 開発の

    OSS ブラウザテストフレームワーク • Chromium, Firefox 等でのテストが実行可能
  21. © 2025 estie Inc. QA チームによる E2E テスト構築 • E2E

    Test Framework として Playwright を活用 • E2E Test の目的 o コード変更時にデグレが起きていないことを保証するためのリグレッションテスト o Staging deploy 後に staging 環境に対して実施する o チームが「このシナリオが重要」と判断した、20個以内程度の厳選したシナリオを E2E テスト化して実行している 26
  22. © 2025 estie Inc. QA チームによる E2E テスト構築 • E2E

    Test Framework として Playwright を活用 • E2E Test の目的 o コード変更時にデグレが起きていないことを保証するためのリグレッションテスト o Staging deploy 後に staging 環境に対して実施する o チームが「このシナリオが重要」と判断した、20個以内程度の厳選したシナリオを E2E テスト化して実行している 27
  23. © 2025 estie Inc. SRE が利用したい CUJ そのもの • SRE

    が利用する CUJ に必要なものがすべて揃っている! o 「プロダクトが動いている」ことを保証するテストである o シナリオの重要性について、開発チームと認識共有済みである o QA プロセスとして活用され、運用されている • これほど価値のあるものは、使わない方が失礼 28
  24. © 2025 estie Inc. おまけ: QA E2E と SRE CUJ

    との違い QA E2E テスト SRE CUJ 目的 サービスのデプロイに際して、プロ ダクトの主要な機能が利用できてい ることを保証する。 リグレッションテスト サービスが「正常に」動いているこ とを確認する。 監視 実施タイミング Staging デプロイ後 数分ごと テストの種類 E2E Browser Test E2E Browser Test 実行環境 Staging Production 29
  25. © 2025 estie Inc. ここで話すこと • プロダクトの挙動確認に E2E テストが必要 •

    QA チームの E2E テストがすごくいい • CUJ を動かす環境の話 31
  26. © 2025 estie Inc. CUJ を動かす = ブラウザテストを動かす環境 Datadog Synthetics

    Browser Test で できる 回数課金。小さな テストを多数走ら せると高額 GitHub Actions Playwright で できる Actions 実行結果が 散らかってしまう 定期実行の時間ズレ 、実行環境の安定性 に不安 Lambda Playwright で できそう パラメータ 取れそう ECS (Fargate) Playwright で できる 起動まで2分ほどか かるので監視に向 かない 32
  27. © 2025 estie Inc. Lambda に挑戦したが…… • あえなく敗退…… o 元々が

    `playwright` コマンドを実行する形なので、基本的にはそれを残したい。だが残 そうとすると制限が大きい o Chromium が Amazon Linux 2023 に対応しておらず、何らかの工夫が必要 ▪ Playwright 公式ディスクイメージに aws-lambda-ric を入れる方針でやったが…… o ブラウザを入れる関係で、ディスクイメージが肥大化しやすい ▪ ビルド含めて普通に4GBとか行く ▪ Multi stage build しても、ビルド時間や途中の容量は大きい o Readonly File System の取り扱いが厄介 ▪ Playwright, Chrome ともに落ちるポイントあり • 複雑さが大きいと、社内展開の際の障害になりやすい。作り込みたくない 33
  28. © 2025 estie Inc. ECS on EC2 で実行、という光明 • SREスタッフエンジニア氏「ECS

    on EC2 でどう?」 o 自分「めっちゃいい」 o 自分「動かせた」 o 自分「最高」 34
  29. © 2025 estie Inc. ECS on EC2 で実行……できた! • ECS

    on EC2 の利点 o Playwright の起動が楽!!普通にディスクイメージ作れば普通に起動する o イメージがホストにキャッシュされるので、起動が十分早い。未チューニングでも 30秒。監視環境に耐える o 監視を大量に走らせても、コストがほどほどに抑えられる • ECS on EC2 の弱点 o 実行時間やコマンド成否は自分で取得して送信しないといけない ▪ ChatGPT が一瞬で wrapper script 作ってくれたので問題なし 35
  30. © 2025 estie Inc. Playwright 動作環境の星取表 Datadog Synthetics GitHub Actions

    Lambda ECS on EC2 定期実行 〇 △ 〇 〇 起動時間 ◎ △ 〇 〇 自由度 △ 〇 〇 〇 他E2Eテストとのイ ンテグレーション × 〇 × 〇 コスト × △ 〇 〇 ツールの目的に合う ◎ × 〇 〇 メトリクス取得 ◎ ×(自前計測) 〇 ×(自前計測) 36
  31. © 2025 estie Inc. • Browser test は作りやすいが、小さなテスト を頻度高く実行すると高額 •

    API test は比較的安価だが、認証フローを通す のが難しく断念 • 「全プロダクトで小さなテストを頻度高く実行 する」という目的には向かなかった 37 おまけ: Managed E2E テストのコスト問題 Datadog on- demand pricing 5分に1回 15分に1回 60分に1回 Synthetics APITest $7.8/month $2.6/month $0.65/month Synthetics Browser Test $194/month $65/momth $16/month
  32. © 2025 estie Inc. 環境構築まとめ • ブラウザテストを定期実行するのはコストがかかる。自前環境を検討 • Lambda +

    Playwright は現時点では相性があまり良くない o 作り込みの回避を優先し、断念 • ECS on EC2 であれば速度・コスト・コード自由度のすべてを満たせる o SLI test の作り込みが少なくて済む = 展開・メンテナンスも容易 38
  33. © 2025 estie Inc. まとめ 39 • SLO はベストプラクティスの塊。いきなり全部達成しなくていい •

    QA 観点と SRE 観点は似ている。協力してやっていけるとグッド! • ブラウザテストには ECS on EC2 が最適なのでは!?