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 Serverless のパフォーマンスとコストを 最適化
Search
Tatsuro Shibamura
PRO
April 20, 2024
Technology
2
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Azure Serverless のパフォーマンスとコストを 最適化
Tatsuro Shibamura
PRO
April 20, 2024
More Decks by Tatsuro Shibamura
See All by Tatsuro Shibamura
AI Agent を本番環境へ―― Microsoft Foundry × Azure Serverless で作る Enterprise-Ready な基盤
shibayan
PRO
0
140
Azure Cosmos DB パフォーマンス最適化入門 - 設計・開発・運用の実践テクニック
shibayan
PRO
0
560
Microsoft Azure で実現する最新クラウドアーキテクチャ
shibayan
PRO
0
3
Hack Azure! #5 - Geek of Azure Serverless
shibayan
PRO
0
130
.NET Conf 2020 Online - .NET 5 リリース記念パーティートーク
shibayan
PRO
0
9.9k
Terraform Provider for Azure に貢献してみた話
shibayan
PRO
0
660
Azure Functions と SendGrid の良い関係
shibayan
PRO
0
1.3k
Azure Serverless を活用したリアルタイム Web のすべて
shibayan
PRO
1
3k
祝 東日本リージョン一般提供! Azure Application Insights 基礎と実践
shibayan
PRO
1
42k
Other Decks in Technology
See All in Technology
『モデル + ハーネス』で読み解く AIエージェント入門
oracle4engineer
PRO
2
180
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
380
MCPをつなげて作る組織横断のAIエージェント基盤
tsubakimoto_s
0
140
データと地図で読む 大井町の「かわるもの、かわらないもの」
yoshiyama_hana
0
170
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
170
どこまでAIに任せるか 〜確率論と決定論の境界決定〜
shukob
0
500
AI工学特論: MLOps・継続的評価
asei
8
1.9k
Vポイント分析基盤におけるデータモデリング20年史
taromatsui_cccmkhd
4
750
Power Automateアップデート情報
miyakemito
0
180
AI_Dev_Day_製造業領域でのAI活用から見た活用の罠と成功に導く実践知.pdf
kintotechdev
0
190
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
440
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
2
1.1k
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
The untapped power of vector embeddings
frankvandijk
2
1.8k
We Have a Design System, Now What?
morganepeng
55
8.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
What's in a price? How to price your products and services
michaelherold
247
13k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
380
Ethics towards AI in product and experience design
skipperchong
2
330
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Transcript
Azure Serverless のパフォーマンスとコストを 最適化 Global Azure 2024 in Fukuoka Tatsuro
Shibamura @shibayan
私について 芝村 達郎 @shibayan ZEN Architects Distinguished Engineer Microsoft MVP
for Microsoft Azure Microsoft Top Partner Engineer Award Blog : https://blog.shibayan.jp GitHub : https://github.com/shibayan
Azure が 2024 年 4 月から約 20% 値上げ
None
20% 値上げの衝撃は思ったより大きい 個人で使ってる Microsoft 365 Personal も値上げされてた
None
コストは下げたい、しかし節約はしたくな い 必要な場面ではちゃんとコストをかけるのが重要
どのような手順でコストを最適化するとよ いのか 失敗例:いきなりアプリケーションの構成を変える
コスト最適化には正しい手順がある 使われていない、不要なリソースを特定し削除する リソースの設定を変更し、パフォーマンスを改善する 過剰に割り当てられているリソースを適切なサイズに変更、集約する アプリケーションを改善する コンピューティングのリザーブドインスタンスを購入する アーキテクチャレベルから再設計する
Azure Serverless のリソース単価は割高な設定 素の VM と比べると機能が多く、付加価値が乗っている 内部では複数のサービスが使われているのでその分のコストが乗る 例: App Service
は VMSS x 2 / SQL DB / Storage / File Server など 上手く利用すると管理・運用コストは劇的に下がる 一番高額な人間のコストを下げられる 単価が高いからと言って PaaS / Serverless を避けるのは間違っている
不要なリソースの特定と削除 意外に検証用のリソースが大量に残っているケースが多い 各々が作りっぱなしで放置されたリソースグループ オーナーや作成した経緯が不明なリソースも多い 孤立してしまった App Service Plan などが代表例 環境ごとにサブスクリプションを分けると把握しやすい
Cost Analysis を利用すると特定が簡単
サブスクリプションを環境ごとに分けて運用 検証・開発・本番の環境向けにサブスクリプションを用意する RBAC を使ったアクセス制限、コストの把握がしやすい 開発向けでは Dev / Test サブスクリプションを使うことも検討したい コンピューティング系リソースのコストが大幅に割り引かれる
EA 契約の場合はやりやすい、はず
リソースの定期的な棚卸は重要、運用変更 も検討 不要なリソースの削除だけで 20% 削減を達成することも
リソースの設定変更でパフォーマンスを改善 App Service / Azure Functions Session Affinity を無効化する HTTP/2
の有効化を検討する 可能な場合は Linux の App Service Plan を利用する Cosmos DB Burst Capacity を有効化する Dynamic Scaling Per Region and Per Partition の有効化を検討する Front Door キャッシュを有効化する HTTP 圧縮を有効化する
PaaS / Serverless は設定が多い 提供する機能が多いので、その分だけ設定値も多くなっている 適切な設定になっていないことも多々ある 設定値が多いので IaC の導入が必須 アップデートで随時パフォーマンス、コスト最適化に役立つ機能が追加
キャッチアップが重要になってくる 公式のアナウンス、ブログ(ブチザッキなど)を参照する
設定の変更だけで改善するものは確実に利 用する 特に Cosmos DB については忘れずに有効化しておきたい
リソースの適切なサイジングを行う 漠然とした不安から過剰なリソースを割り当ててしまうケースが多い 1 つの App Service Plan に 1 つだけ
Web App / Azure Functions を載せる Cosmos DB の RU 設定を多めにプロビジョニングする インスタンス数、サイズを過剰に割り当ててしまう。など Azure Monitor を利用して、過剰にリソースを割り当てていないか確認 PaaS / Serverless はスケーリングが自由 オートスケールを活用する
Azure でやってしまいがちな構成 App Service / Azure Functions App Service Plan
を数多く作ってしまっている 古い SKU を利用し続けている スケールアップとスケールアウトのどちらが適切かを見誤る Cosmos DB Database Provisioned Throughput を使っていない Provisioned Throughput で大きな RU を割り当てている Front Door (Standard / Premium) Endpoint を使わずに Front Door をたくさん作っている
Azure でやってしまいがちな構成(改善策) App Service / Azure Functions スケールによっては App Service
Plan の集約を検討する 本番では Premium V3 (P0v3)、開発・検証では Basic の利用を検討する コア数を増やすより、インスタンス数を増やした方が良いケースもある Cosmos DB 25 コンテナーまでは RU を共有できる 一定のリクエストがある場合以外はオートスケールの利用を検討する Front Door (Standard / Premium) Endpoint は複数作っても課金されないためお得
Azure の特徴を生かして柔軟なリソース割 り当て デプロイの早いサービスを使っていれば間違いない
アプリケーションのコードを改善する 最新のランタイム、フレームワークを利用するように書き換える 特に .NET へのアップデートは効果的 コンピューティング系のコア数を大きく減らせる可能性 Azure SDK も最新バージョンを使うようにする 信頼性とパフォーマンス改善のアップデートが継続的に行われている
最新の PaaS / Serverless 機能を使うために必須なことも
APM を使ってパフォーマンスを継続的に改善する アプリケーション実装に問題があれば Azure のコストは上がる アプリケーションのパフォーマンス改善はコスト削減とイコール Application Insights を有効化して、コード内のボトルネックを特定し改善する 本番環境では確実に有効化しておきたい
非効率なクエリ実行や、過剰な外部依存関係の呼び出しが発生していることも Application Insights を使うと可視化される
アプリケーション側のチューニングから逃 げない ランタイム、フレームワークのアップデートは特に逃げないように する
リザーブドインスタンスを購入する(最終段階) 適切なリソースが確定しないとリザーブドインスタンスを買いにくい 余計な分まで購入するのは無駄になる(返金は出来るが…) 常に使われるリソース分だけを購入して、超える分はオートスケールで対応 一通りの最適化をやり切った後に購入するのを推奨 手っ取り早いのでコストカットの観点では選び勝ち Azure Storage のような容量に対しては早めに購入する価値がある
リザーブドインスタンスの対象となるリソース App Service (Web Apps / Azure Functions) Premium V3
/ Isolated V2 (ASE) のみ対象 Cosmos DB Provisioned Throughtput が対象 ストレージサイズは対象外 Azure Storage ストレージ容量が対象
早いリザーブドインスタンス購入は問題の 先送り コストを正確に把握して最適化した後に購入する
アーキテクチャレベルから再設計する 現在のアーキテクチャでは最適化の限界にぶつかることがある RDB や偽 PaaS と言っても良いサービスを多用した構成 Azure に最適化されておらず、オンプレのような構成と言える Azure のサービスに最適化しないとコスト効率が下がる
要件をまとめて、アーキテクチャから再設計する オンプレと同じ使い方をすると高くなるのは当然
Lift and Shift は幻想、Azure に特化した設 計を 仮想マシンを売りたい、使いたい人のセールストークに騙されては いけない
再掲 : コスト最適化には正しい手順がある 使われていない、不要なリソースを特定し削除する リソースの設定を変更し、パフォーマンスを改善する 過剰に割り当てられているリソースを適切なサイズに変更、集約する アプリケーションコードを改善する コンピューティングのリザーブドインスタンスを購入する アーキテクチャレベルから再設計する
ご清聴ありがとうございました