Azure Functions Flex Consumption の性能をAzure Load Testing を使って旧従量課金と比較する~ちょっとだけコストの話も~

793 Views

July 25, 24

スライド概要

2024/07/16(火)に開催した第49回 Tokyo Jazug Night の登壇資料です。

profile-image

Microsoft MVP for Microsoft Azure/ Azure, .NETのWebアプリケーションエンジニア / 技術情報発信・勉強会実況アカ /

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Azure Functions Flex Consumption の性能を Azure Load Testing を使って旧従量課金と比較する ~ちょっとだけコストの話も~ 2024年7月16日「第49回 Tokyo Jazug Night」 御成門プログラマー(Tomotaka Suzuki) X(Twitter): @onarimonprogram

2.

自己紹介 名前:御成門プログラマー(Tomotaka Suzuki) 受賞: Microsoft MVP(Microsoft Azure) 2023年6月~ 技術: Microsoft Azure(コスト,Azure PaaS周り多 め), .NET, Angular X(Twitter) : @onarimonprogram 技術ブログ : onarimon.jp グルメブログ: food.onarimon.jp

3.

Azure Functions Flex Consumption 今年のBuild 2024のタイミングでパブリックプレビューになった新しい Azure Functions 特徴は下記3点 インスタンスのスケールアウトが高速 従量課金プランで仮想ネットワーク統合によるプライベート接続が可能 常時使用可能インスタンスを設定可能 従量課金でプライベートエンドポイント接続ができなかった →Azure Functions の気になるポイントとして言われていたが、改善された点が注目さ れている

4.

Azure Functions Flex Consumption 今年のBuild 2024のタイミングでGAした新しい Azure Functions 特徴は下記3点 インスタンスのスケールアウトが高速 従量課金プランで仮想ネットワーク統合によるプライベート接続が可能 常時使用可能インスタンスを設定可能 今回は高速という性能に注目!! 従量課金でプライベートエンドポイント接続ができなかった →Azure Functions の気になるポイントとして言われていたが、改善された点が注目さ れている

5.

見せて貰おうか。 MSのFlex Consumption の性能とやらを!! Azure Load Testing で負荷テストをかけて 従来のAzure Functions との差異を確かめる。

6.

第46回 Tokyo Jazug Night「簡単に使えるようになった「Azure Load Testing」を改めて学びなおす」 資料より

7.

負荷テストの構成 Flex Consumption Azure Load Testing 同じ条件で負荷テストを実施 • エンジンインスタンス:1 • ロードパターン:線形 • エンジンごとの同時使用ユーザー数:50 • テスト期間(分):10 • 増加時間(分):1 • 各自一番安いプラン(SKU)を使用 • ソースコードは同一の内容をデプロイ ←ハローワールドレベルの簡単な内容 従量課金 プラン

8.

結果「Azure Flex Consumption は高速だった」 従量課金プラン Flex Consumption 読み込み (要求の合計数) 応答時間 (90パーセンタイルの応答時間) エラーの割合 (失敗した集計要求) スループット (要求数/秒) 349,569リクエスト 275,760リクエスト 134.00 ms 214.00 s 0% 20.56 % 583.59 /s 455.05 /s ※私が試した一例です。環境や設定により結果は異なる場合があります。

9.

負荷テスト 2回戦 Flex Consumption Azure Load Testing 同じ条件で負荷テストを実施 • エンジンインスタンス:1 • ロードパターン:線形 • エンジンごとの同時使用ユーザー数:50 • テスト期間(分):10 • 増加時間(分):1 • 各自一番安いプラン(SKU)を使用 • ソースコードは同一の内容をデプロイ ←ハローワールドレベルの簡単な内容 従量課金 プラン Premium プラン

10.

結果「Azure Flex Consumption は高速だった」 従量課金プラン Flex Consumption 読み込み (要求の合計数) 応答時間 (90パーセンタイルの応答時間) エラーの割合 (失敗した集計要求) スループット (要求数/秒) Premium Consumption 359,389 リクエスト 297,012リクエスト 152,776 リクエスト 129.00 ms 187.00 ms 201.00 ms 0% 0% 0% 592.07 /s 491.74 /s 252.94 /s ※私が試した一例です。環境や設定により結果は異なる場合があります。

11.

最後にちょこっと Flex Consumption の課金形態について

12.

Azure Flex Consumption の課金形態について Azure Flex Consumption には課金モードが2種類あり、インスタンスごとに設定される オンデマンド:「実行時間(GB-秒)」と「実行(数)」による2つの要素による課金。一部環境では無料提供が含まれます。 常時使用可:待機時間中にかかる「ベースラインアイドル時間」、「実行時間(GB-秒)」、「実行(数)」 課金モード 課金要素 無料提供(月額) 従量課金額 計算方法 オンデマンド 実行時間 100,000 GB 秒 ¥0.003855/GB 秒 {オンデマンドの実行時間単価(/GB秒)} × {インスタンスのメモ リ量} × {実行時間(秒)} オンデマンド 実行回数 250,000 の実行 100万回実行あたり ¥48.185 常時使用可能 ベースライ ン - ¥0.0009637/GB 秒 {常時使用可能ベースラインの価格単価(/GB秒)} × {インスタ ンスのメモリ量} × {待機時間(秒)} 常時使用可能 実行時間 - ¥0.0024093/GB 秒 {常時使用可能の実行時間単価(/GB秒)} × {インスタンスのメ モリ量} × {実行時間(秒)} 常時使用可能 実行回数 - 100万回実行あたり ¥48.184501 ({要求回数}/100万) × {常時使用可能の合計実行回数単価} ({要求回数}/100万) × {オンデマンドの合計実行回数単価} Azure Functions Flex Consumption Planの料金体系とコストについてまとめました – 御成門プログラマーの技術日記 (onarimon.jp)

13.

Flex Consumption の課金形態について 公式ページに具体例込みで課金方法が紹介され ているから参照すると良いかもです。 Azure Functions での従量課金ベースのコストの見積もり | Microsoft Learn

14.

今回の負荷テスト1回戦の検証時にかかったコスト あくまで一例ですが、私が負荷テスト1回戦の検証を行ったときのコストです。 80万リクエストぐらい投げてこのぐらいでした。 ※私が試した一例です。環境や設定、実装内容により結果は異なる場合があります。

15.

ただ事件は発表当日に起きた

16.

負荷テスト2回戦で起きた事件 本日(Jazug 発表当日の朝)発覚。 コストが想定の100倍ぐらいかかっている… 絶賛サポート問い合わせ中

17.

従量課金リソースに負荷テストかけてたことに 大量の要求×従量課金 →予期せぬ課金が発生する可能性もあるので気を付けよ う!! 実行数の目安と課金量の見積もり忘れずに 今回は負荷テストの負荷量や時間を短くしていて、 かつAzure Functions 従量課金料金がそれほど高くなかったので助かった。 今回でいえば Azure Load Testing の料金のほうが高くなった。 →意外と高い Azure Load Testing の実行料金に気を付けよう。