Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
モダンとレガシーが混在するDMMブックスで培った SRE Practices
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ono-hiroshi1
May 24, 2022
Programming
6.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
モダンとレガシーが混在するDMMブックスで培った SRE Practices
ono-hiroshi1
May 24, 2022
More Decks by ono-hiroshi1
See All by ono-hiroshi1
ログ基盤をCloudWatchLogからNewRelic Logs + S3に変えたら 利便性も上がってコストも下がった話
onohiroshi1
1
4.6k
DMMブックスにNewRelicを導入した話
onohiroshi1
1
1.1k
60億円の損害を出した 「DMMブックス」 70%OFFキャンペーンでプラットフォームに何が起きていたか
onohiroshi1
8
49k
Other Decks in Programming
See All in Programming
The Rails Doctrine Decade
koic
2
340
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
560
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
500
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
250
Workers Cache を知る
syumai
0
210
Are APIs Still Relevant in the AI Era?
soyuka
0
300
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
180
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
120
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
160
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
200
App Intentsのビルドプロセスを支える技術
kntkymt
0
430
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
670
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Done Done
chrislema
186
17k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Google's AI Overviews - The New Search
badams
0
1.6k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
610
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
Navigating Weather and Climate Data
rabernat
0
530
Transcript
© DMM.com モダンとレガシーが混在する DMMブックスで培った SRE Practices 合同会社 DMM.com SRE部 小野
博志 2022/05/15
© DMM.com 自己紹介 2 小野 博志 / Ono Hiroshi 合同会社DMM.com
ITインフラ本部 SRE部 エンジニアリングマネージャー Facebook: https://www.facebook.com/onohiroshi2 2005年に新卒で中小独立系 Slerに入社。Javaを使ったWeb系開発に従事。 2008年よりMSP(マネージド・サービス・プロバイダ)の業務に従事。アカウント SEから始ま り、サービス企画やテクニカルディレクターを務める。 エンタープライズの領域 で大規模なコー ポレートサイト、WebCMSを中心として担当していた。 2020年にDMM.comに入社し、DMMブックスを中心に複数のサービスを SREとして担当しつ つ、NewRelicを社内に広める活動も合わせて実施している。
© DMM.com アジェンダ 3 • SLI/SLOにCore Web Vitalsも加えた話 • NewRelicへのログ出力をCloudWatch
Logsを経由しないようにしコストを下げた話 • 検証環境を自動構築できるようにした話
© DMM.com DMMのSRE体制 4
© DMM.com 横断組織としてのSRE部とSREチーム 5 事業部 動画 電子書籍 プラットフォーム Team A
Team B Team C Team A Team B SRE Team Team A Team B SRE Team SRE部 セキュリティ部など横断組織 コーポレート組織 コーポレート 人事・総務 など DMMブックスでは電子書籍事業部の SREチームとSRE部が 一体になって日々の活動に取り組んでいる
© DMM.com 話題のコミックや小説などを パソコンやスマホで 読めるプラットフォーム コミック、雑誌、小説、写真集等の電子書籍を配信しております。現在は 67万冊以上の作品を取り揃えており、 さまざまなジャンルの作品を提供しています。
© DMM.com 今だけ!お得な70%OFFクーポンがあります
© DMM.com SLI/SLOの拡充 8
© DMM.com 背景 9 • かねてからユーザから表示が遅いとのフィードバックがあった。 • そのため、速度改善も兼ねてモノリスからマイクロサービスへチャレンジすることになった。 • 一旦は、主要ページに留めてFE/BE分離、非同期通信による改善を行いページ表示速度は明らかに
改善されたが実際どれくらいのユーザが満足できているのかは分かっていなかった
© DMM.com 現状はどうなっていたか 10 シンセティック監視(いわゆる外形監視)で主要ペー ジのレスポンスタイムを測定しているだけだった。
© DMM.com SLI/SLOとは 11 • SLI • サービスレベル指標の略 • 提供しているサービスのレベルを測るための定量的な値
• SLO • サービスレベル目標の略 • 設定したSLIに基づいてサービスとして目標とする値 サービスが 正常でない 状態になったとき、それを正常に戻すためのトリガーとするため
© DMM.com Core Web Vitalsの導入 12 • Core Web Vitalsとは
• Googleが提唱するユーザ体験の満足度につながる指標のこと。以下の3つが定義されている。 • 読み込み時間(Largest Contentful Paint) • インタラクティブ性(First Input Delay) • ページコンテンツの視覚的な安定性(Cumulative Layout Shift) 引用:https://web.dev/vitals-business-impact/
© DMM.com データは既に貯めていた 13 • DMMブックスではNewRelicでモニタリングを行っており、データ自体はすでに溜め込んでいた。ただ し、NewRelicでは8日間のデータしかなかったため、Metric Aggregatorで長期トレンドへと変換した
© DMM.com 結果 14 • デバイス別、回線別(Wi-Fi/SIM)など多角的な分析が出来、改善すべきページが明らかになった。 • デプロイとCore Web Vitalsを紐付けることでCore
Web Vitalsに影響を与えるリリース内容が分析でき るようになった。 • そして、感覚的に持っていたユーザが不満を持っているページが明らかになった。
© DMM.com 結果(2) 15 • Core Web Vitalsの一部の指標は日々の朝会で確認し、悪化があれば原因を調査している
© DMM.com CloudWatch Logsから NewRelic Logsへ 16
© DMM.com 背景 17 • DMMブックスは多くの機能をAWS上で構築しているが、サービスが成長するにつれて全体コストに対 してCloudWach Logsの費用が大きくなっていった。 • 調べてみるとDataProcessing-Bytesが大きなコストを占めており、更に読み解くと、PutLogEvents
で ありログを登録する場合にかかる費用であることも分かった。
© DMM.com コストが掛かっていた理由 18 CloudWatch Logs アプリケーション newrelic-log-ingestion CloudWatch LogsへのPutEventに多くのコストが掛かっていた
ロググループ単位で集計するとアプリケーションが稼働しているアクセスログおよびアプリケーションロ グで多くのコストが掛かっており、更にログの保管ではなく登録に多くのコストが掛かっていた。元々ロ グ検索はNewRelicを使っておりログの保存でのみ使っていた
© DMM.com CloudWatch Logsの料金 19 収集(データの取り込み):0.76USD/GB 保存(アーカイブ):0.033USD 意外と割高な料金設定となっている
© DMM.com CloudWatch Logsを利用しない構成へ 20 アプリケーション FireLens Kinesis Data Streams
S3 CoudWatchを経由せずにKinesis Data Streams(+S3バックアップ)へ変更したところ、運用を変えず にコスト削減を実現できた
© DMM.com 結果 21 当初Kinesis FirehoseのVPCエンドポイントを作成してなかったため、NATGatewayのコストがかさみ、 コスト削減効果はほぼ無いと思われたが、VPCエンドポイントを作成したところ、約4割減のコスト削減 に繋がった。
© DMM.com ECS での検証環境の 自動構築 22
© DMM.com 背景 23 • DMMブックスでは拡大するチーム・プロジェクトに対してそれぞれステージング環境とは別に検証環境 が必要であり、その構築に一定のコストが掛かっていました。そのためブランチごとに検証環境が自動 構築される仕組みを用意する必要がありました
© DMM.com Stagingと 共通 作成した仕組み 24 push stg/**** CIの実行 CodePipline
CircleCI CodeBuild 自動構築範囲 アプリケーション FireLens アプリケーションのデプロイ TerraformによりAWSリソースの作成 検証環境として ALBを1つ用意 土日はタスクを止めて コスト削減
© DMM.com 考慮した点 25 • データストアはステージングと共通のものを利用する • 弊社のステージング環境はユーザ系のデータ以外、ほぼ本番と同等のデータが格納されており、 これはテストにおいて重要な意味を持ちます。このデータを利用したくデータストア系のものはス テージングと共通にすることにしました
• ALBは1つ作成し、すべての検証環境は同一のALBを利用してリスナーで振り分ける • 60環境ほど検証環境が必要であり、ALBまで作成してしまうとコストが嵩むため • EventBridge+Lambdaの組合せで土日はECS Serviceのタスクを0にし費用がかからない仕組みにし た
© DMM.com 今後取り組みたい点 26 • 現状は本番環境と同じECS Fargateで構築したが、やはり60環境(約240サーバ)もあると検証環境だ けでもかなりのコストが掛かる。この点はECS on EC2に変えることで、さらなる最適化を目指していき
たい • そう多くないが、データストアの変更が必要、かつ互換性が無い場合はこの仕組では検証することがで きないため、そのパターンでも自動構築にチャレンジしていきたい
© DMM.com まとめ 27
© DMM.com まとめ 28 • Core Web VitalsはSEOとしても評価されるため、この数字を追いかけることはビジネス的にもSRE的 にも双方わかりやすく、かつ定量的に図れるもののためメリットは大きかった。 •
ECSのログ出力先としてCloudWatch Logsは簡易に導入ができ、一定の利便性もあるが規模が大き くなるとどうしてもコストが嵩むため、規模が大きなサービスは使わない方がおすすめであることが分 かった。