Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Azureコストは水道代/The_47th_Tokyo_Jazug
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
AEON
March 24, 2024
Technology
6.6k
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
520
イオンスマートテクノロジーの「SRE×AI」実践録 -インシデントからIaC、可観測性まで-/Aeon Smart Technology’s SRE × AI in Practice
aeonpeople
0
350
AI時代から振り返るTerraform drift運用の歴史 / AI Age Reflections on the History of Terraform Drift Operations
aeonpeople
2
830
New Relic MCPを活用した能動的オブザーバビリティユーザの拡大 / Scaling Active Observability with New Relic MCP
aeonpeople
0
510
Copilot CLI・IDE・Web・スマホで途切れない開発フローを目指して / One Copilot flow - CLI IDE Web Mobile
aeonpeople
1
1.6k
1人目SREが開発組織のトポロジーを変えるまでの実践知/the-first-sre-changed-team-topology
aeonpeople
0
1k
AzureのIaC管理からログ調査まで、随所に役立つSkillsとCustom-Instructions / Boosting IaC and Log Analysis with Skills
aeonpeople
0
670
ASTのGitHub CopilotとCopilot CLIの現在地をお話しします/How AST Operates GitHub Copilot and Copilot CLI
aeonpeople
1
630
遊びで始めたNew Relic MCP、気づいたらChatOpsなオブザーバビリティボットができてました/From New Relic MCP to a ChatOps Observability Bot
aeonpeople
1
820
Other Decks in Technology
See All in Technology
Getting Started with Google Antigravity
glaforge
0
310
AI × アーキテクト 第1・2章|生成AIの課題とアーキテクトの素養
daidaidai
0
170
Metadata - Section 1: HTML Basics
mohab1
0
120
継続的なAIコスト最適化
bgpat
1
350
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
200
WasmをRustにする
sansantech
PRO
0
250
PHPカンファレンス関西の招待状 / Invitation to PHP Conference Kansai
ykanoh
0
140
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
930
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
980
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
5
1.1k
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
790
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
It's Worth the Effort
3n
188
29k
Practical Orchestrator
shlominoach
192
12k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
750
Un-Boring Meetings
codingconduct
0
460
The SEO Collaboration Effect
kristinabergwall1
1
590
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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/
募集しています!