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
Amazon Aurora のインフラコストを55%削減した話
Search
スタンバイ
February 01, 2024
0
4.3k
Amazon Aurora のインフラコストを55%削減した話
スタンバイ
February 01, 2024
Tweet
Share
More Decks by スタンバイ
See All by スタンバイ
スタンバイ会社紹介資料
stanby_inc
0
9.1k
スタンバイQAのテスト自動化導入
stanby_inc
0
490
検索エンジンをVespaへ移行しています
stanby_inc
0
790
どうするLeSS - スクラムフェス三河2023.9.16
stanby_inc
1
1.3k
スタンバイにおけるSLOの、これまでとこれから
stanby_inc
0
730
スタンバイにおける自然言語処理の利用
stanby_inc
0
1k
マイクロサービスアーキテクチャな組織_システムにSLOを導入している話.pdf
stanby_inc
3
1.8k
スタンバイにおけるECS on Fargateから EKS on Fargateへ移行した話
stanby_inc
1
1.3k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Scaling GitHub
holman
458
140k
The Cult of Friendly URLs
andyhume
78
6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
GraphQLとの向き合い方2022年版
quramy
43
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Navigating Team Friction
lara
183
14k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Making Projects Easy
brettharned
115
5.9k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Facilitating Awesome Meetings
lara
50
6.1k
Transcript
Amazon Aurora の インフラコストを55%削減しました 2024年2月1日 第1回 AWSコスト削減 天下一武道会 1
今回の内容が活かせそうなケース 2 • Amazon Auroraをつかっている • Amazon Auroraでマスタデータ管理している • マスタデータのレコード量が多い
• 高頻度で削除されている • DBへの書き込み量が多い
自己紹介 • 池田健虎 • 2020年9月スタンバイ入社 • バックエンドエンジニア • スタンバイの求人データ管理の開発運用 •
ScalaMatsuriの運営をしています 3
アジェンダ • Amazon Auroraを使用している背景 ◦ 求人検索エンジン「スタンバイ」の求人数のマスタを管理している • インフラコストがかかっている要因① ◦ 定期的なOptimize
tableの実施 • インフラコストがかかっている要因② ◦ 過度なSLOを変更し、求人の取り込み頻度を変更 • コスト削減の結果 4
提供サービス スタンバイは全国の仕事情報からニーズにあった 最適な求人を探すことができる求人検索エンジンです。 職種やキーワードと希望の勤務地を入れれば、すぐに仕 事が探せます。さらに、正社員・派遣・アルバイト・ パートなどの働き方や、給与、応募条件などのこだわり 条件を絞り込んで求人を探すことができます。 より多くの仕事情報を、より早く、より便利に ユーザーにお届けできるよう開発に取り組んでおりま す。
求人検索エンジン 5 WEB アプリ iPhone Android https://jp.stanby.com/
求人マスタデータをAmazon Auroraで管理 • 2021年3月から求人マスタをAmazon Aurora で管理 • 1000万件以上の求人票を管理しており毎日平均800万の求人を更新 ◦ 求人票は高頻度で追加、削除が行われる特徴があるため、求人データを管理する
一連の処理では日常的に大量の INSERT, DELETE が実行されます。 • DBエンジンとして Aurora ( MySQL 5.7 ) を利用 • ストレージエンジンとしてInnoDBを利用 6
課題 7 1つの線が1つのテーブルのテーブルサイズを示しています 求人票の増加や各種機能の追加等によって Aurora のデータ量は想定上の速さで増加し、 それに比例する形でインフラコストも増加し続けていました。
インフラコストがかかっている要因 8 ①定期的なOptimizeTable(ディスク領域の解放)ができていない ②DBへ対して書き込みが多い
インフラコストがかかっている要因① 9 selectに時間がかかるためCPU使用率が上がりやすい DBインスタンスの台数増、インスタンスタイプ上がる ストレージとインスタンスタイプのインフラコスト増 定期的なOptimizeTable(ディスク領域の解放)ができていない SQLのselect文(table scan、 index scan)が遅くなる
インフラコストがかかっている要因① 10 グラフはストレージと インスタンスタイプのインフラ料金 別途IOの料金があります
インフラコスト削減のための施策① 11 ①定期的なOptimizeTable(ディスク領域の解放)ができていない • 定期的なOptimizeテーブルの実施 ◦ ただし、OPTIMIZE TABLEを実行すると、実行時と終了時に該当の テーブルにメタデータロックがかかるので、サービスのアーキテク チャを変更して実施
インフラコスト削減のための施策① 12 M R Amazon Aurora R 求人詳細api 求人の情報 Optimize
table × 定期的にOPTIMIZE TABLEを実行するためには、Aurora のメンテナンス時間を設け る必要があるが、 24時間稼働しているWebサービスでは原則として停止時間は設け られない アーキテクチャ変更前
インフラコスト削減のための施策① 13 M R R 求人詳細api 求人の情報 Optimize table 求人db
DynamoDB feeder Amazon Aurora スタンバイのWebサービスへ提供する求人情報をAuroraからではなく DynamoDBを通して提供するアーキテクチャに変更 アーキテクチャ変更後
インフラコスト削減のための施策① Auroraに依存しないアーキテクチャにしたところで、Optimizeをテーブ ルを実行したところ、データ量が減少
インフラコストがかかっている要因② 15 ②DBへ対して書き込みが多いこと 求人票が高頻繁に追加、削除、更新が行われ、DBへの書き込みが多いた め、IOの料金が高い • 求人票が更新された場合にすぐに取り込みが実施。 • 更新頻度の制限を設けておらず、求人によっては1日に何度も更新さ れる。
• 求人取り込みのシステムがDBに依存したアーキテクチャになってい るため、求人票に比例して書き込みが増える
インフラコストがかかっている要因② 16 多い時で秒間5万〜9万クエリの書き込みがおこなれていた
インフラコスト削減のための施策② 17 DB書き込み量を減らす 具体的にはSLOを見直し、求人の取り込み頻度を一日N回に制限する ※AWSには Aurora I/O-Optimizedという I/O 集約型アプリケーションの場合に料金の上昇を 抑制できる料金体系があります。
インフラコスト削減のための施策② 18 スタンバイの求人データの更新頻度を見直して1日の取り込み回数を制限 した結果、求人の書き込み数自体が約3分の1ほど削減
施策結果 19 Auroraのインフラコストは施策実施前と比較して約55%削減できました。 55%削減
おわりに 20 • マスターデータの削除が多い場合は定期的にOptimizeを する • 書き込み量を減らすために過度なSLOを見直す • 今回やった施策は会社として優先度が一番高くしてもら い集中してコストを削減することができました。
• スタンバイはコスト削減祭りを実施して、日頃からコス トカットを行っております。
None