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
12k
スタンバイQAのテスト自動化導入
stanby_inc
0
500
検索エンジンをVespaへ移行しています
stanby_inc
0
860
どうするLeSS - スクラムフェス三河2023.9.16
stanby_inc
1
1.4k
スタンバイにおけるSLOの、これまでとこれから
stanby_inc
0
750
スタンバイにおける自然言語処理の利用
stanby_inc
0
1.1k
マイクロサービスアーキテクチャな組織_システムにSLOを導入している話.pdf
stanby_inc
3
1.8k
スタンバイにおけるECS on Fargateから EKS on Fargateへ移行した話
stanby_inc
1
1.3k
Featured
See All Featured
Code Review Best Practice
trishagee
65
17k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
How STYLIGHT went responsive
nonsquared
95
5.2k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Thoughts on Productivity
jonyablonski
67
4.4k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
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