Slide 1

Slide 1 text

Amazon Aurora の インフラコストを55%削減しました 2024年2月1日 第1回 AWSコスト削減 天下一武道会 1

Slide 2

Slide 2 text

今回の内容が活かせそうなケース 2 ● Amazon Auroraをつかっている ● Amazon Auroraでマスタデータ管理している ● マスタデータのレコード量が多い ● 高頻度で削除されている ● DBへの書き込み量が多い

Slide 3

Slide 3 text

自己紹介 ● 池田健虎 ● 2020年9月スタンバイ入社 ● バックエンドエンジニア ● スタンバイの求人データ管理の開発運用 ● ScalaMatsuriの運営をしています 3

Slide 4

Slide 4 text

アジェンダ ● Amazon Auroraを使用している背景 ○ 求人検索エンジン「スタンバイ」の求人数のマスタを管理している ● インフラコストがかかっている要因① ○ 定期的なOptimize tableの実施 ● インフラコストがかかっている要因② ○ 過度なSLOを変更し、求人の取り込み頻度を変更 ● コスト削減の結果 4

Slide 5

Slide 5 text

提供サービス スタンバイは全国の仕事情報からニーズにあった 最適な求人を探すことができる求人検索エンジンです。 職種やキーワードと希望の勤務地を入れれば、すぐに仕 事が探せます。さらに、正社員・派遣・アルバイト・ パートなどの働き方や、給与、応募条件などのこだわり 条件を絞り込んで求人を探すことができます。 より多くの仕事情報を、より早く、より便利に ユーザーにお届けできるよう開発に取り組んでおりま す。  求人検索エンジン 5 WEB アプリ iPhone Android https://jp.stanby.com/

Slide 6

Slide 6 text

求人マスタデータをAmazon Auroraで管理 ● 2021年3月から求人マスタをAmazon Aurora で管理 ● 1000万件以上の求人票を管理しており毎日平均800万の求人を更新 ○ 求人票は高頻度で追加、削除が行われる特徴があるため、求人データを管理する 一連の処理では日常的に大量の INSERT, DELETE が実行されます。 ● DBエンジンとして Aurora ( MySQL 5.7 ) を利用 ● ストレージエンジンとしてInnoDBを利用 6

Slide 7

Slide 7 text

課題 7 1つの線が1つのテーブルのテーブルサイズを示しています 求人票の増加や各種機能の追加等によって Aurora のデータ量は想定上の速さで増加し、 それに比例する形でインフラコストも増加し続けていました。

Slide 8

Slide 8 text

インフラコストがかかっている要因 8 ①定期的なOptimizeTable(ディスク領域の解放)ができていない ②DBへ対して書き込みが多い

Slide 9

Slide 9 text

インフラコストがかかっている要因① 9 selectに時間がかかるためCPU使用率が上がりやすい DBインスタンスの台数増、インスタンスタイプ上がる ストレージとインスタンスタイプのインフラコスト増 定期的なOptimizeTable(ディスク領域の解放)ができていない SQLのselect文(table scan、 index scan)が遅くなる

Slide 10

Slide 10 text

インフラコストがかかっている要因① 10 グラフはストレージと インスタンスタイプのインフラ料金 別途IOの料金があります

Slide 11

Slide 11 text

インフラコスト削減のための施策① 11 ①定期的なOptimizeTable(ディスク領域の解放)ができていない ● 定期的なOptimizeテーブルの実施 ○ ただし、OPTIMIZE TABLEを実行すると、実行時と終了時に該当の テーブルにメタデータロックがかかるので、サービスのアーキテク チャを変更して実施

Slide 12

Slide 12 text

インフラコスト削減のための施策① 12 M R Amazon Aurora R 求人詳細api 求人の情報 Optimize table × 定期的にOPTIMIZE TABLEを実行するためには、Aurora のメンテナンス時間を設け る必要があるが、 24時間稼働しているWebサービスでは原則として停止時間は設け られない アーキテクチャ変更前

Slide 13

Slide 13 text

インフラコスト削減のための施策① 13 M R R 求人詳細api 求人の情報 Optimize table 求人db DynamoDB feeder Amazon Aurora スタンバイのWebサービスへ提供する求人情報をAuroraからではなく DynamoDBを通して提供するアーキテクチャに変更 アーキテクチャ変更後

Slide 14

Slide 14 text

インフラコスト削減のための施策① Auroraに依存しないアーキテクチャにしたところで、Optimizeをテーブ ルを実行したところ、データ量が減少

Slide 15

Slide 15 text

インフラコストがかかっている要因② 15 ②DBへ対して書き込みが多いこと 求人票が高頻繁に追加、削除、更新が行われ、DBへの書き込みが多いた め、IOの料金が高い ● 求人票が更新された場合にすぐに取り込みが実施。 ● 更新頻度の制限を設けておらず、求人によっては1日に何度も更新さ れる。 ● 求人取り込みのシステムがDBに依存したアーキテクチャになってい るため、求人票に比例して書き込みが増える

Slide 16

Slide 16 text

インフラコストがかかっている要因② 16 多い時で秒間5万〜9万クエリの書き込みがおこなれていた

Slide 17

Slide 17 text

インフラコスト削減のための施策② 17 DB書き込み量を減らす 具体的にはSLOを見直し、求人の取り込み頻度を一日N回に制限する ※AWSには Aurora I/O-Optimizedという I/O 集約型アプリケーションの場合に料金の上昇を 抑制できる料金体系があります。

Slide 18

Slide 18 text

インフラコスト削減のための施策② 18 スタンバイの求人データの更新頻度を見直して1日の取り込み回数を制限 した結果、求人の書き込み数自体が約3分の1ほど削減

Slide 19

Slide 19 text

施策結果 19 Auroraのインフラコストは施策実施前と比較して約55%削減できました。 55%削減

Slide 20

Slide 20 text

おわりに 20 ● マスターデータの削除が多い場合は定期的にOptimizeを する ● 書き込み量を減らすために過度なSLOを見直す ● 今回やった施策は会社として優先度が一番高くしてもら い集中してコストを削減することができました。 ● スタンバイはコスト削減祭りを実施して、日頃からコス トカットを行っております。

Slide 21

Slide 21 text

No content