1.4K Views
July 25, 24
スライド概要
2024/07/16(火)に開催した第49回 Tokyo Jazug Night の登壇資料です。
Microsoft MVP for Microsoft Azure/ Azure, .NETのWebアプリケーションエンジニア / 技術情報発信・勉強会実況アカ /
Azure Functions Flex Consumption の性能を Azure Load Testing を使って旧従量課金と比較する ~ちょっとだけコストの話も~ 2024年7月16日「第49回 Tokyo Jazug Night」 御成門プログラマー(Tomotaka Suzuki) X(Twitter): @onarimonprogram
自己紹介 名前:御成門プログラマー(Tomotaka Suzuki) 受賞: Microsoft MVP(Microsoft Azure) 2023年6月~ 技術: Microsoft Azure(コスト,Azure PaaS周り多 め), .NET, Angular X(Twitter) : @onarimonprogram 技術ブログ : onarimon.jp グルメブログ: food.onarimon.jp
Azure Functions Flex Consumption 今年のBuild 2024のタイミングでパブリックプレビューになった新しい Azure Functions 特徴は下記3点 インスタンスのスケールアウトが高速 従量課金プランで仮想ネットワーク統合によるプライベート接続が可能 常時使用可能インスタンスを設定可能 従量課金でプライベートエンドポイント接続ができなかった →Azure Functions の気になるポイントとして言われていたが、改善された点が注目さ れている
Azure Functions Flex Consumption 今年のBuild 2024のタイミングでGAした新しい Azure Functions 特徴は下記3点 インスタンスのスケールアウトが高速 従量課金プランで仮想ネットワーク統合によるプライベート接続が可能 常時使用可能インスタンスを設定可能 今回は高速という性能に注目!! 従量課金でプライベートエンドポイント接続ができなかった →Azure Functions の気になるポイントとして言われていたが、改善された点が注目さ れている
見せて貰おうか。 MSのFlex Consumption の性能とやらを!! Azure Load Testing で負荷テストをかけて 従来のAzure Functions との差異を確かめる。
第46回 Tokyo Jazug Night「簡単に使えるようになった「Azure Load Testing」を改めて学びなおす」 資料より
負荷テストの構成 Flex Consumption Azure Load Testing 同じ条件で負荷テストを実施 • エンジンインスタンス:1 • ロードパターン:線形 • エンジンごとの同時使用ユーザー数:50 • テスト期間(分):10 • 増加時間(分):1 • 各自一番安いプラン(SKU)を使用 • ソースコードは同一の内容をデプロイ ←ハローワールドレベルの簡単な内容 従量課金 プラン
結果「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 ※私が試した一例です。環境や設定により結果は異なる場合があります。
負荷テスト 2回戦 Flex Consumption Azure Load Testing 同じ条件で負荷テストを実施 • エンジンインスタンス:1 • ロードパターン:線形 • エンジンごとの同時使用ユーザー数:50 • テスト期間(分):10 • 増加時間(分):1 • 各自一番安いプラン(SKU)を使用 • ソースコードは同一の内容をデプロイ ←ハローワールドレベルの簡単な内容 従量課金 プラン Premium プラン
結果「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 ※私が試した一例です。環境や設定により結果は異なる場合があります。
最後にちょこっと Flex Consumption の課金形態について
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)
Flex Consumption の課金形態について 公式ページに具体例込みで課金方法が紹介され ているから参照すると良いかもです。 Azure Functions での従量課金ベースのコストの見積もり | Microsoft Learn
今回の負荷テスト1回戦の検証時にかかったコスト あくまで一例ですが、私が負荷テスト1回戦の検証を行ったときのコストです。 80万リクエストぐらい投げてこのぐらいでした。 ※私が試した一例です。環境や設定、実装内容により結果は異なる場合があります。
ただ事件は発表当日に起きた
負荷テスト2回戦で起きた事件 本日(Jazug 発表当日の朝)発覚。 コストが想定の100倍ぐらいかかっている… 絶賛サポート問い合わせ中
従量課金リソースに負荷テストかけてたことに 大量の要求×従量課金 →予期せぬ課金が発生する可能性もあるので気を付けよ う!! 実行数の目安と課金量の見積もり忘れずに 今回は負荷テストの負荷量や時間を短くしていて、 かつAzure Functions 従量課金料金がそれほど高くなかったので助かった。 今回でいえば Azure Load Testing の料金のほうが高くなった。 →意外と高い Azure Load Testing の実行料金に気を付けよう。