Slide 1

Slide 1 text

© 2025 estie Inc. QA チームのテストを活用した SLI を ECS on EC2 で動かした話 株式会社estie 杉田毅博 (GitHub:sugitak, X:@sugitak06)

Slide 2

Slide 2 text

© 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ページ記事執筆

Slide 3

Slide 3 text

© 2025 estie Inc. きょう話すこと • SLO は必要があって定めるものだよ • estie では QA と SRE との協働の結果として CUJ/SLI を作ってるよ • Playwright を走らせるなら Lambda より ECS on EC2 の方がいい ……かも!?(検証中)

Slide 4

Slide 4 text

© 2025 estie Inc. SLO ってむずかしいよね話 1 3 E2E SLI を作っている話 2

Slide 5

Slide 5 text

© 2025 estie Inc. みなさん SLO やっていますか? 4

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

© 2025 estie Inc. SRE と SLO - (2) • とはいえ、なかなか難しいよね • 我々はビジネスをしている。 SRE の活動もそれに沿っている必要がある • Error Budget や SLO は SRE として実施したいが、ビジネス観点で本 当に「今」「一番」必要なのか? 6

Slide 8

Slide 8 text

© 2025 estie Inc. SLO が解決している問題 • SLO はたくさんの要素で構成された総合的なベストプラクティス • 「プロダクトが動いている」状態の定義 • 死活監視の e2e 化 • 開発チームとの共通言語 • SRE の評価を経営陣と握るためのもの • ビジネスインパクトを測るためのもの • 稼働率や安定性の約束をするためのもの • Error budget で運用を経営の範囲でできるようにするもの 7

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

© 2025 estie Inc. SLO はむずかしい • SLO は複数の関心事を解決している総合的なベストプラクティス • 運用に載せるまでには、やることいっぱいある • 逆に言うと、「全部出来ている」ことが必須なわけではない • 今やるべきこと、来年ほしい状態などを考えつつ、ビジネス判断として投 資をしていくもの 10

Slide 12

Slide 12 text

© 2025 estie Inc. ここまでのまとめ • SLO は高度な総合ベストプラクティス。分解して必要なところを登って いくのが良さそう • このあと estie での実例を説明していきます 11

Slide 13

Slide 13 text

© 2025 estie Inc. SLO ってむずかしいよね話 1 12 E2E で SLI を作っている話 2

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

© 2025 estie Inc. Confidential © 2022 estie Inc. Our purpose 産業の真価を、さらに拓く。

Slide 17

Slide 17 text

© 2025 estie Inc. estieの事業領域 16 数ある産業の中で、estieが最初に挑む領域は不動産 不動産の中でも商業用不動産領域に注力。オフィスを中心に様々なアセット情報を提供 資産 タイプ Office オフィス Retail 商業施設・アウトレット等 Industrial 物流施設・データセンター等 Hotel ホテル Residential 住宅 投資 目的資産 自己使用 目的資産 商業用不動産市場 賃貸住宅市場 分譲住宅市場

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

© 2025 estie Inc. プロダクトラインナップ(一部抜粋) 18 賃 貸 市 場 DaaS ( デ ー タ ) 売 買 市 場 SaaS 日本最大級のオフィスビルデータベース 日本最大級の所有者/売物件探索サービス 不動産取引の案件管理サービス + J-REIT/行政関連オープンデータ 売 買 市 場 SaaS 日本最大級の物流施設データベース 日本最大級の住宅賃料データベース

Slide 20

Slide 20 text

© 2025 estie Inc. 組織体制について:事業部制により経営スピードを最速に プロダクト群で事業部制を引き、1事業部≒1companyの形をとる それぞれの事業部が1つのスタートアップであるかのように意思決定を行う

Slide 21

Slide 21 text

© 2025 estie Inc. 使用している技術・ツール ユーザに価値を早く届けるための開発環境を整えています フロントエンド バックエンド インフラ デザイン データ基盤 テスト その他開発支援ツール

Slide 22

Slide 22 text

© 2025 estie Inc. estie 会社説明まとめ • 商業用不動産のデータを用いて商業用不動産市場全体を支え、「産業の真価を、 さらに拓く。」ことを目指している • 「コンパウンド」戦略を推進。現時点でもプロダクト数が10程度あり、まだま だ増える予定 • 各プロダクトチームを支えるプラットフォームとして、品質管理の QA チームと SRE の所属するプラットフォームチームがある • プロダクトの一つである「マーケット調査」はデータ提供・分析を中心とした総 合プロダクト。検索体験が特に重要 21

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

© 2025 estie Inc. Playwright 25 https://ray.run/blog/playwright-logo • Microsoft 開発の OSS ブラウザテストフレームワーク • Chromium, Firefox 等でのテストが実行可能

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

© 2025 estie Inc. E2E テストから CUJ をピックアップする 30

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

© 2025 estie Inc. CUJ を動かす = ブラウザテストを動かす環境 Datadog Synthetics Browser Test で できる 回数課金。小さな テストを多数走ら せると高額 GitHub Actions Playwright で できる Actions 実行結果が 散らかってしまう 定期実行の時間ズレ 、実行環境の安定性 に不安 Lambda Playwright で できそう パラメータ 取れそう ECS (Fargate) Playwright で できる 起動まで2分ほどか かるので監視に向 かない 32

Slide 34

Slide 34 text

© 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

Slide 35

Slide 35 text

© 2025 estie Inc. ECS on EC2 で実行、という光明 • SREスタッフエンジニア氏「ECS on EC2 でどう?」 o 自分「めっちゃいい」 o 自分「動かせた」 o 自分「最高」 34

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

© 2025 estie Inc. Playwright 動作環境の星取表 Datadog Synthetics GitHub Actions Lambda ECS on EC2 定期実行 〇 △ 〇 〇 起動時間 ◎ △ 〇 〇 自由度 △ 〇 〇 〇 他E2Eテストとのイ ンテグレーション × 〇 × 〇 コスト × △ 〇 〇 ツールの目的に合う ◎ × 〇 〇 メトリクス取得 ◎ ×(自前計測) 〇 ×(自前計測) 36

Slide 38

Slide 38 text

© 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

Slide 39

Slide 39 text

© 2025 estie Inc. 環境構築まとめ • ブラウザテストを定期実行するのはコストがかかる。自前環境を検討 • Lambda + Playwright は現時点では相性があまり良くない o 作り込みの回避を優先し、断念 • ECS on EC2 であれば速度・コスト・コード自由度のすべてを満たせる o SLI test の作り込みが少なくて済む = 展開・メンテナンスも容易 38

Slide 40

Slide 40 text

© 2025 estie Inc. まとめ 39 • SLO はベストプラクティスの塊。いきなり全部達成しなくていい • QA 観点と SRE 観点は似ている。協力してやっていけるとグッド! • ブラウザテストには ECS on EC2 が最適なのでは!?

Slide 41

Slide 41 text

© 2025 estie Inc. We are hiring! 40 https://hrmos.co/pages/estie/jobs?category=17562936478271 65184