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
Azureコストは水道代/The_47th_Tokyo_Jazug
Search
AEON
March 24, 2024
Technology
6.4k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Azureコストは水道代/The_47th_Tokyo_Jazug
AEON
March 24, 2024
More Decks by AEON
See All by AEON
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
270
イオンスマートテクノロジーの「SRE×AI」実践録 -インシデントからIaC、可観測性まで-/Aeon Smart Technology’s SRE × AI in Practice
aeonpeople
0
91
AI時代から振り返るTerraform drift運用の歴史 / AI Age Reflections on the History of Terraform Drift Operations
aeonpeople
2
700
New Relic MCPを活用した能動的オブザーバビリティユーザの拡大 / Scaling Active Observability with New Relic MCP
aeonpeople
0
190
Copilot CLI・IDE・Web・スマホで途切れない開発フローを目指して / One Copilot flow - CLI IDE Web Mobile
aeonpeople
1
1.4k
1人目SREが開発組織のトポロジーを変えるまでの実践知/the-first-sre-changed-team-topology
aeonpeople
0
660
AzureのIaC管理からログ調査まで、随所に役立つSkillsとCustom-Instructions / Boosting IaC and Log Analysis with Skills
aeonpeople
0
550
ASTのGitHub CopilotとCopilot CLIの現在地をお話しします/How AST Operates GitHub Copilot and Copilot CLI
aeonpeople
1
400
遊びで始めたNew Relic MCP、気づいたらChatOpsなオブザーバビリティボットができてました/From New Relic MCP to a ChatOps Observability Bot
aeonpeople
1
650
Other Decks in Technology
See All in Technology
背中から、背中へ /paying forward to community
naitosatoshi
0
200
Fabricをフル活用する AI Agent Hub -製造業特化AIエージェントの設計
iotcomjpadmin
0
180
WebGIS AI Agentの紹介
_shimizu
0
610
秘密度ラベル初心者が第1歩でつまづかないための「設計・運用」ポイント
seafay
PRO
1
550
Terraform 101 (初心者向け) 資料
shuadachi
0
150
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
210
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
200
攻撃者がいなくてもAIエージェントはインシデントを起こす
nomizone
0
180
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.6k
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
200
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
240
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
240
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
230
Designing for Timeless Needs
cassininazir
1
270
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
We Are The Robots
honzajavorek
0
260
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
250
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
How STYLIGHT went responsive
nonsquared
100
6.2k
Abbi's Birthday
coloredviolet
3
8.4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
210
How GitHub (no longer) Works
holman
316
150k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Transcript
Azureコストは水道代 イオンスマートテクノロジー株式会社 第47回 Tokyo Jazug Night 2024年3月21日
Agenda • 自己紹介 • 会社紹介 • イオンスマートテクノロジーとAzureの歴史 • Azureコストとの闘い •
なぜAzureコストは水道代なのか • まとめ
自己紹介
自己紹介 CTO室SREチーム所属 岩崎 隆至 プログラマーを経てインフラエンジニアで キャリアを重ねる Azureを本格的に使い始めたのは3年前から Azureマネーは好きではないがマネーは好き だ。Azureマネーは難しい
会社紹介
会社紹介
会社紹介
iAEONアプリについて 膨大なIDと購買データを集約したアプリ「iAEON」 iAEONはイオングループが提供する決済機能やポイントプログラムを1つにまとめたアプリです。 イオングループ内の多数の事業会社がもつ顧客IDを一つのアプリに統合しています。 提供開始から約3年で、iAEONは500万人以上の会員を抱え、独自のコード決済サービス「イオンペイ」は836万人(23年5月時点)が利用しています。
イオンスマートテクノロジーとAzureの歴史
イオンスマートテクノロジーとAzureの歴史 2020/10 設立 2021/2 Azure利用開 始 2021/9 iAEONアプリ ローンチ 2022/5
システム追加 2023/8 システム追加 NOW 月のコストは 1年後は2倍 2年後は5倍 3年後は8倍 驚異の天井知らず! コストの推移
Azureの環境 サブスクリプション数 43 システム数 9 環境 4
Azureコストとの闘い
闘う前(構築期間中) • 構築中はコスト削減まで手がまわらない • 余裕なリソースでコストが高くても、すぐ障害は避けたい為、そのままリリースをする • 毎月の合計コストは経理に報告する必要があり、サブスク毎のコストはエクセルで管理 していたので、システムと環境毎のコストは見れる状況になっている コストの仕組みはわからないのでなぜこんだけかかってい るかもよくわからず
闘いの始まり(リリース直前、そしてリリース後) えらい人 • どのシステムが高いの? • システムの何が高いの? • なんでコスト増えたの? コストマネジメント画面でどのサービスが高いのか どのシステムが高いのか手探りでしらべてみる
Advisorという便利な機能 • Advisorの意見を聞いてみる • その中でシステムに影響出さずに、手っ取り早くコストを削減できる方法を模索する ワタシは「Advisor」 色々コスト削減できそう ・予約を購入 ・節約プランを購入 ・ライトサイジング(リソース最適化)
本番運用に影響のでない施策を実 施しようかな
予約の購入 • リソース最適化は後回しで予約を購入する →3年で◦◦千万のコスト削減 参考ですが最初は「共有」にして無駄なく予約を使用するようにしましたが、共有だと 色々なサブスクに使用されコスト変動が起き管理しずらいので「単一のサブスクリプ ション」に落ち着く • LogAnalyticsの1日のログ量の事前購入をする。100G/日から事前購入あり ◦◦千万の買い物はドキドキするな
失敗は許されません 3年買って良いのか、このシステム3年使うよな ※返金の上限が年間 5万ドルとなっているから買いすぎ注意
ログ量の削減 • アプリの不要な出力ログの停止 • 最初はなんでもかんでもとりあえずLogAnalyticsに保存から、必要なログを保存するよ うに修正 → ◦百万/月の削減 最初はとりあえず、全部保存しちゃえ(雑な設計) 少ないより多い方がよいだろ
なんでもとっておけば、問題ないだろ
停止運用 • 検証環境の夜間休日のリソースの停止 →◦万/月削減 • 実施するにあたり開発チームには夜間土日も使いたい時は柔軟に対応しますと伝えて、 停止運用の同意を得やすいように始める • 気を付けた方が良いのは依頼をもとに停止運用を中断した後、再開せずにそのままと なってしまう事があるので、定期的に再開してよいかの確認が必要
コストとの闘いの歴史 2020/10 会社設立 2021/2 Azure利用 開始 2021/8 予約購入 2021/9 iAEONアプ
リローンチ 2021/10 ログ削減 2022/3 停止運用 開始 2023/3 予約購入 2023/4 価格改定 2023/11 予約購入 2024/1 ログ削減 NOW 色々実施してきましたが、リソースの最適化は実施する事はできませんでした 着手して進めているとリソース不足による本番障害が発生し、最適化の話は保留になる 忙しい時期はコスト削減は後回しになりがち(2022年3月~2023年3月空白の1年間)
なぜAzureコストは水道代なのか
Azureコストは水道代 • 一通りコストとの闘いが終わると次の闘いの始まり • それはコストの変化に気づく闘い • Azureコストの請求金額を毎月見てコストの変化に気づくのは、毎月の水道料金の請求 書の金額をみて変化に気づく水道代に似ている ※タイトル回収 •
知らないところでコストが変化している状況はまるで水漏れのよう
変更に気づかない理由 • 開発優先でコストは優先度が低いので気にせず開発している • 本番影響回避の為に一時的にリソース増強して、そのままとなっている • コストが増える事の連絡はわざわざしない
変更を知る方法 • 変更したら、連絡するようにお願いする • Azureポータルのコスト管理画面を毎日チェックする 等が考えられるが • 連絡をお願いしても、忘れそうなのでこの案は却下 • SREチームが毎日確認するのは大変(地獄の所業)なので各システム担当者が自分達で
チェックするようにお願いする
システム担当者にチェックしてもらえない課題 • Azureコスト管理画面はサブスク名を指定するフィルタリングなのでサブスクの命名規 則が浸透していないと担当するシステムのサブスクを見つけづらい • Azureコスト管理画面でフィルター機能や表示機能を上手く使いこなせず確認したい情 報まで辿りつけない
各システム担当者にチェックしてもらう施策 • 分かり易いようにシステム毎のview名のviewを作成 • 対象のサブスクでフィルタリング • 日々のコスト変化を確認しやすくする為に細分性を日単位 • グループ化はService nameにして、DBやVM単位で表示
• Reservation(予約)を表示しないように工夫(値なしを選択) ※次ページでイメージ • 下段の円グラフは必要な情報を表示 • 各システム毎のコスト担当者をアサインしてもらい、担当者に見方をレクチャー • Slackのスケジュールで毎週火曜に見てねと自動チャット、見たらリアクションしてね
VIEWの参考例 VIEW名 金額 金額 金額 金額 スコープ名 スコープ名 VIEW名 Reservationを表示しないようにフィルタ
サービス毎のコストの変化が比較的分か り易いやすい ※実際のコストの金額は予約を抜いた金 額なので注意 Reservationを表示すると 毎月払いで予約(Reservation)を購入した 日でコストが積み上がり、全体的に縮小さ れてコストの変化が見づらい
その結果 • 反応が薄い・・・ • コストより開発が優先 (勝手な想像) • コストは暇な人がみてくれ (勝手な想像)
次なる施策 • 毎週Slackの自動通知でわすれないようにしても、毎日チェックするのは大変 • コスト変化がなければ、チェックした時間は無駄になる • そこでAzureの自動検知を活用して、コストの変化あった時のみチェックする • リソースのメトリクスの定点観測会でコストViewの確認を実施
コスト変動(異常アラート)を検知 • サブスク毎に異常アラートを作成する • 異常アラートを受け取り、viewで変化した箇所を確認 Cost Alert Subscription メールより頻繁にみるSlackを活用 スラックのチャネルにメールを持たせて、
CostAlertを受け取れるようにする 通知方法はメー ル送付のみ https://learn.microsoft.com/ja-jp/azure/cost-management-billing/understand/analyze-unexpected-charges#create-an-anomaly-alert
コストアラートとSlackチャネル • 1システムの全環境のコストアラートを1システムアラートチャネル Cost Alert Subscription Aシステムコストアラートチャネル Aシステムコストアラートチャネル 本番Aシステム 本番Aシステム
Cost Alert Subscription STG Aシステム STG Aシステム Cost Alert Subscription 検証 Aシステム 検証 Aシステム Cost Alert Subscription Bシステムコストアラートチャネル Bシステムコストアラートチャネル 本番Bシステム 本番Bシステム Cost Alert Subscription STG Bシステム STG Bシステム Cost Alert Subscription 検証 Bシステム 検証 Bシステム Cost Alert Subscription Cシステムコストアラートチャネル Cシステムコストアラートチャネル 本番Cシステム 本番Cシステム Cost Alert Subscription STG Cシステム STG Cシステム Cost Alert Subscription 検証 Cシステム 検証 Cシステム
半年の異常アラートの件数 • 半年で開発環境のサブスクスクリプションで最も多い10件の異常アラート サブスク名 サブスク名 リソースグループ名 リソースグループ名 どのリソースがいくら変化したか はわからないのでリソース探しに はノウハウの蓄積が必要
何時、サブスク名のコストに変化 があったか確認できる
Azureポータルで作成したviewで1/4の変化を確認 • 1/4で水色のグラフが増えている事が確認できる • 1/4にリソースの作成作業をした グループ化(Group by):Service name 細分性(Granularity):日単位(Daily) 列(グループ化)(Column(grouped))
Azureポータルで作成したviewで1/4の変化を確認 おまけ • 1/4で水色のグラフが増えている事が確認できる • 1/4にリソースの作成作業をした グループ化(Group by):Service name 細分性(Granularity):日単位(Daily)
列(積み上げ)(Column(stacked))
予算のオーバーを検知 • システム毎に予算アラートを作成 • 予算超過に対応できる時間を確保する為、閾値を低め(70%)に設定 Subscription Aシステムコストアラートチャネル Aシステムコストアラートチャネル 本番Aシステム 本番Aシステム
Subscription STG Aシステム STG Aシステム Subscription 検証 Aシステム 検証 Aシステム Budgets alert Subscription Bシステムコストアラートチャネル Bシステムコストアラートチャネル 本番Bシステム 本番Bシステム Subscription STG Bシステム STG Bシステム Subscription 検証 Bシステム 検証 Bシステム Budgets alert https://learn.microsoft.com/ja-jp/azure/cost-management-billing/costs/cost-mgt-alerts-monitor-usage-spending#budget-alerts
予約が使用されていないか検知 • 予約使用率アラートを作成 • 予約適用率は高めに設定して、早目に検知 Reserved Utilization Alert インフラシステムコストアラートチャネル インフラシステムコストアラートチャネル
https://learn.microsoft.com/ja-jp/azure/cost-management-billing/costs/reservation-utilization-alerts
参考 予約アラートの通知内容 予約名 予約名 予約ID 予約ID 2件発生した例ですが、予約名や使 用率が表示されるので分かり易い
まとめ
まとめ • 予約購入、ログの削減、検証環境の停止運用等一通り実施 • 見えていないコストの変化に気づける事も大事 • 異常コストアラート、予算アラート、予約使用率アラートを活用して時間を有効活用 • Azureのコストを見れるだけでSREチームが確認していたがviewを活用しシステム担当 側で確認できるようにした
告知
告知 https://aeon.connpass.com/event/308120/
告知 https://aeon.connpass.com/event/310105/
募集しています!