Upgrade to Pro — share decks privately, control downloads, hide ads and more …

長期運用を支えるみてねの継続的なコスト最適化の取り組み

kimuson13
October 18, 2024
560

 長期運用を支えるみてねの継続的なコスト最適化の取り組み

kimuson13

October 18, 2024
Tweet

Transcript

  1. ©MIXI ⻑期運⽤を⽀えるみてねの継続的な コスト最適化の取り組み 2024/10/18 - AWS 秋の Cost Optimization 祭り

    2024 株式会社MIXI Vantageスタジオ みてねプロダクト開発部 プラットフォームグループ SREチーム ⽊村有希
  2. 2 ©MIXI ⾃⼰紹介 名前 ⽊村 有希 (@kimuson_13) 所属 株式会社MIXI Vantageスタジオ

    みてねプロダクト開発部 プラットフォームグループ SREチーム ⽊村 有希 (@kimuson_13) 経歴 • 2024/04に株式会社MIXIに新卒⼊社。みてねSREチームへの配属は2024/05中旬から • ⼊社前はMIXIのモンストの解析グループで内定者アルバイトをしていた • データ基盤のCD実装やデータマートのテスト実装などSREっぽいことをしていた • 他にもいろいろな企業でエンジニアとしてインターンを経験
  3. 4 ©MIXI 2015.4 20,000,000 15,000,000 10,000,000 5,000,000 0 2016 2017

    2018 2019 2020 2021 2022 国内 海外 ※ iOS・Android™ アプリ登録者数、ブラウザ版登録者数の合計 2023.11 2,000万人 突破 家族アルバム みてねの利用者数推移 2015年にリリース。7⾔語‧175の国と地域で2,000万⼈以上の⽅にご利⽤いただいています。
  4. 7 ©MIXI コスト削減施策 これまでやってきたこと これまでに多くのコスト削減施策を⾏い、アウトプットにもしてきた • MIXIにおけるクラウドコスト最適化術 〜 10年選⼿の現SREマネージャー 2名に訊く

    〜 • 『家族アルバム みてね』に学ぶ、AWSのReserved InstancesとSavings Plansの勘所 • みてねの動画再⽣にHLSを導⼊した話 • 「無料‧容量無制限でアップロード」を ⽀える みてねのコスト削減術 • DBのコストを半額に!〜Amazon Aurora I/O-Optimizedの活⽤〜
  5. 8 ©MIXI コスト最適化は以下のような流れになっている 1. まずは計測 2. 最適化する対象を決めて、試算を⾏う 3. 対象の利⽤量や仕組みを最適化する 4.

    結果としてコスト削減につながる 計測⾃体にも、コストの計測とリソースの利⽤量に関する計測がある ただ闇雲にコスト削減だけを⼀⽅的に⾏って、その結果ユーザー体験に悪影響がでてはいけない はじめに計測があることで、適切なリソース利⽤量にしたりインスタンスタイプを選ぶなどの具体的な施策が⾏える コスト最適化はコスト削減だけではない コスト最適化とは?
  6. 11 ©MIXI リソースの利⽤量などもGrafanaで⼤きな変化がないか、サービスとして何か異常が起きていないか確認している これがRI/SPの購⼊時にも役⽴つ →特定のサービスがどれくらい使われているかを調べやすいし、共有もしやすい モニタリング リソースの利⽤量の計測について 1. RI/SPの現在の使⽤率が適切か確認 •

    AWSの Cost ExplorerでRI/SPの使⽤率やそれぞれのリソースの利⽤量を確認 2. 契約年数の範囲で対象のサービスの利⽤状況が変化する可能性がないか確認 • Grafanaで直近のトレンドを⾒る • 各チームにも今後の開発の⾒通しを確認 3. レビューなどを経て購⼊ RI/SPの購⼊(継続購⼊の場合)
  7. 15 ©MIXI 各Workerを実⾏するPodは⼀時的にメディアを保存するのみで永続性は不要 → instance storeが使⽤できるのでは? instance storeの利⽤ 効果がありそうな事例 instance

    storeはEC2のインスタンス用のブロックレベルの一時ストレージ ホストコンピュータに物理的にアタッチされたディスク上にあるので、構造的に早い 利用料金もインスタンスの利用料金に含まれており、使用できるのはインスタンスタイプの末尾に ‘d’がつくもの(m7gd.mediumな ど) Workerの処理が早くなり、結果としてEC2インスタンスの利⽤時間が減少することが期待できる instance storeとは みてねのEKSのnode groupでは性能(vCPU, メモリ)が同じインスタンスタイプを複数同列に扱っている そのため、instance storeが利⽤できるようになるもののみになるとSpotの選択肢の幅が1/2になってしまう。。。 よって⼀旦⾒送りに。。。 導⼊するかどうか
  8. 16 ©MIXI 効果がありそうな事例 〜もし導⼊するなら?〜 メディアを扱うWorkerは複数ある その中でWorkerの実⾏頻度やユーザー影響などを考慮して1つ対象を選び、開発版で置き換えて何度か実⾏してみる 現状の実⾏時間もGrafana等で確認する →どの程度実⾏時間が削減されそうかを計測する まずは検証 instance

    storeを利⽤した場合のWorkerと現状の実⾏時間を元に同性能のEC2 instanceタイプを決めて、試算をする ボリューム料⾦もinstance storeの場合インスタンス料⾦に含まれるため、現状の⽅はEBSの料⾦も加算する 検証を元に試算 試算を元に、どの程度コスト削減が⾒込めるか?などを総合的に判断する 実装にどれくらい⼿間がかかるか、複雑になりすぎないかにも注意する 試算から判断