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

Azure Serverless のパフォーマンスとコストを 最適化

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

Azure Serverless のパフォーマンスとコストを 最適化

Avatar for Tatsuro Shibamura

Tatsuro Shibamura PRO

April 20, 2024

More Decks by Tatsuro Shibamura

Other Decks in Technology

Transcript

  1. 私について 芝村 達郎 @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
  2. Azure Serverless のリソース単価は割高な設定 素の VM と比べると機能が多く、付加価値が乗っている 内部では複数のサービスが使われているのでその分のコストが乗る 例: App Service

    は VMSS x 2 / SQL DB / Storage / File Server など 上手く利用すると管理・運用コストは劇的に下がる 一番高額な人間のコストを下げられる 単価が高いからと言って PaaS / Serverless を避けるのは間違っている
  3. リソースの設定変更でパフォーマンスを改善 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 圧縮を有効化する
  4. リソースの適切なサイジングを行う 漠然とした不安から過剰なリソースを割り当ててしまうケースが多い 1 つの App Service Plan に 1 つだけ

    Web App / Azure Functions を載せる Cosmos DB の RU 設定を多めにプロビジョニングする インスタンス数、サイズを過剰に割り当ててしまう。など Azure Monitor を利用して、過剰にリソースを割り当てていないか確認 PaaS / Serverless はスケーリングが自由 オートスケールを活用する
  5. Azure でやってしまいがちな構成 App Service / Azure Functions App Service Plan

    を数多く作ってしまっている 古い SKU を利用し続けている スケールアップとスケールアウトのどちらが適切かを見誤る Cosmos DB Database Provisioned Throughput を使っていない Provisioned Throughput で大きな RU を割り当てている Front Door (Standard / Premium) Endpoint を使わずに Front Door をたくさん作っている
  6. Azure でやってしまいがちな構成(改善策) App Service / Azure Functions スケールによっては App Service

    Plan の集約を検討する 本番では Premium V3 (P0v3)、開発・検証では Basic の利用を検討する コア数を増やすより、インスタンス数を増やした方が良いケースもある Cosmos DB 25 コンテナーまでは RU を共有できる 一定のリクエストがある場合以外はオートスケールの利用を検討する Front Door (Standard / Premium) Endpoint は複数作っても課金されないためお得
  7. リザーブドインスタンスの対象となるリソース App Service (Web Apps / Azure Functions) Premium V3

    / Isolated V2 (ASE) のみ対象 Cosmos DB Provisioned Throughtput が対象 ストレージサイズは対象外 Azure Storage ストレージ容量が対象