20241218_AKSハイスケールモードを試してみた(ログ課金ご注意)

455 Views

December 19, 24

スライド概要

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

AKSハイスケールモードを試してみた ※ただしログ課金にご注意 NTTコミュニケーションズ株式会社 増田 和己 2024/12/18 © NTT Communications Corporation All Rights Reserved.

2.

発表者 自己紹介 増田 和己 Kazuki Masuda <所属先> NTTコミュニケーションズ(株) ビジネスソリューション本部 ソリューションサービス部 写真右が発表者 2020年ミャンマー勤務時に撮影 © NTT Communications Corporation All Rights Reserved. <これまでの業務> Windows OS/Microsoft Azureを用いたシステム開発 プロジェクトに参画すること多数 2

3.

発表者 自己紹介 zaamasuのペンネームで MS Q&Aの投稿にときどき回答しています © NTT Communications Corporation All Rights Reserved. 3

4.

本日お伝えしたいこと ・AKS (Azure Kubernetes Service) 上のコンテナにてログ大量出力時に 漏れなく取得する対応策として、AKSハイスケールモード有効化が一案 ・ただし、ハイスケールモードを有効化するとログがLog Analyticsに大量出 力されることになり、課金に注意が必要 例 : 30分2万円、1日XX万円 Container Insights (プレビュー) での大規模なログの収集 - Azure Monitor | Microsoft Learn © NTT Communications Corporation All Rights Reserved. 4

5.

目次 1. ログ出ない問題 2. 問題の対応策 3. 再び性能テスト? © NTT Communications Corporation All Rights Reserved. 5

6.

目次 1. ログ出ない問題 2. 問題の対応策 3. 再び性能テスト? © NTT Communications Corporation All Rights Reserved. 6

7.

1. ログ出ない問題(システム構成) AKSノード上に複数のサービス系 pod が起動しており、ログは Container Insights を 用いて標準出力の結果を Log Analytics ワークスペースにさせている。 AKSクラスタ ログは 標準出力 ロ グ 1 ロ グ 5 AKSノード#1 ロ グ 2 AKSノード#5 ロ グ 6 AKSノード#2 ロ グ 3 AKSノード#6 ロ グ 7 AKSノード#3 ロ グ 4 AKSノード#4 AKSノード#7 ロ グ 8 AKSノード#8 LogAnalytics ワークスぺ―ス ロ グ 1 ログ監視 オペレータ © NTT Communications Corporation All Rights Reserved. ロ グ 2 ロ グ 3 ロ グ 4 ロ グ 5 ロ グ 6 ロ グ 7 ロ グ 8 ama-logs pod (Azure Monitor Agent 用 pod) サービス系pod (tomcatなど) ※AKS ノード は Standard_D16ds_v4 7

8.

1. ログ出ない問題(性能テスト時) 性能テスト(負荷テスト)実施時にコンテナログが Log Analytics ワークスペースに 保存されない問題が発生した。 AKSクラスタ ロ グ 1 ロ グ 5 AKSノード#1 ロ グ 2 AKSノード#5 ロ グ 6 AKSノード#2 ロ グ 3 AKSノード#6 ロ グ 7 AKSノード#3 ロ グ 4 AKSノード#4 AKSノード#7 ロ グ 8 AKSノード#8 負荷テスト 端末 LogAnalytics ワークスぺ―ス ロ グ 1 性能テストのログが 無い。。。 © NTT Communications Corporation All Rights Reserved. ロ グ 2 ロ グ 3 ロ グ 4 ロ グ 5 ロ グ 6 ロ グ 7 ロ グ 8 ama-logs pod (Azure Monitor Agent 用 pod) サービス系pod (tomcatなど) 8

9.

1. ログ出ない問題(補足:性能テスト_パターン) 開発時においてシステム安定性評価のために性能テストを行うことが通例である。 以下4つのテストを AKS とその上で起動するコンテナに対して実施を試みた。 種別 種別詳細 単性能テスト オンライン処理 (画面処理) 以下観点において性能未達がないことを確認する • レスポンス時間担保 • Azureリソース毎使用率確認 • テスト時のエラー有無確認 バッチ処理 (ジョブ単位処理) • バッチ処理時間担保 • Azureリソース毎使用率確認 • テスト時のエラー有無確認 オンラインピーク処理 (通常30分) 想定最大負荷をかけた状態で、以下観点において性能未達がないことを確認する • レスポンス時間担保 • Azureリソース毎使用率確認 当該テスト実施時に発生 • テスト時エラー有無確認 負荷テスト ロングランテスト ロングラン処理 (通常24時間以上) 限界テスト オンライン限界処理 © NTT Communications Corporation All Rights Reserved. 確認観点 想定最大負荷を長時間継続してかけた状態で、以下観点において性能未達が無いことを確認する • レスポンス時間担保 • Azureリソース毎使用率確認(メモリリーク有無) • テスト時エラー有無確認(システム安定性確認) 突発的な通信に備え、想定最大負荷の数倍をかけた状態で、以下観点において性能未達がないことを確認 する • レスポンス時間担保 • Azureリソース毎使用率確認 • テスト時のエラー有無確認 9

10.

1. ログ出ない問題(性能テスト時) サービス系 pod で確認したログ件数に対して、Log Analytics ワークスペースのログ件数 は10%程度しかコンテナログに存在しなかった。 ※サンプル画像 10,000,000 ログが無い。。。 © NTT Communications Corporation All Rights Reserved. 10

11.

1. ログ出ない問題(要因) ログが出力されない要因は以下2つ。 1. サービス系 pod のログモードが Debug で大量のログが出力 2. ama-logs pod のメモリ使用率が高騰し、AKS ノードから LA に転送不可 AKSクラスタ Debug モード ロ グ 1 ロ グ 5 AKSノード#1 ロ グ 2 AKSノード#5 ロ グ 6 AKSノード#2 ロ グ 3 AKSノード#6 ロ グ 7 AKSノード#3 ロ グ 4 AKSノード#4 AKSノード#7 ロ グ 8 AKSノード#8 LogAnalytics ワークスぺ―ス ロ グ 1 ロ グ 2 ロ グ 3 ロ グ 4 ロ グ 5 ロ グ 6 ロ グ 7 ロ グ 8 ama-logs pod (Azure Monitor Agent 用 pod) サービス系pod (tomcatなど) © NTT Communications Corporation All Rights Reserved. 11

12.

目次 1. ログ出ない問題 2. 問題の対応策 3. 再び性能テスト? © NTT Communications Corporation All Rights Reserved. 12

13.

2. 問題の対応策 1. サービス系コンテナにて Debug モードを使用しない 2. ログを Log Analytics に出力させない(Blob Storage 等に出力) 3. AKS ノードを増やす ※AKSノード毎に ama-logs pod が1つ生成 4. ハイスケールモードを有効化する © NTT Communications Corporation All Rights Reserved. 13

14.

2. 問題の対応策 1. サービス系コンテナにて Debug モードを使用しない 2. ログを Log Analytics に出力させない(Blob Storage 等に出力) 3. AKS ノードを増やす ※AKSノード毎に ama-logs pod が1つ生成 4.ハイスケールモードを有効化する © NTT Communications Corporation All Rights Reserved. 上記1~3の課題 1. 意図した情報が取れない 2. 設計変更発生 3. 設計変更発生 → そのため 4 を選択 14

15.

2. 問題の対応策(ハイスケールモードの特徴) ・コンテナから出力される標準出力ログを高スループットで収集できる機能 ※2024/12/10時点 preview ・従来版と異なるデータパイプライン、メモリ増強により実現 ・監視アドオン有効化 & AKSクラスタ用 ConfigMap 更新で利用可 Container Insights (プレビュー) での大規模なログの収集 - Azure Monitor | Microsoft Learn © NTT Communications Corporation All Rights Reserved. 15

16.

2. 問題の対応策(ハイスケールモード実施前) ハイスケールモード有効化前の Azure Monitor Agent 用 pod(ama-logs) のスペック ama-logsコンテナのスペック (有効化前) © NTT Communications Corporation All Rights Reserved. 16

17.

2. 問題の対応策(ハイスケールモード実施後) ハイスケールモード有効化後の Azure Monitor Agent 用 pod(ama-logs) のスペック → CPU上限2倍、メモリ上限3倍 ama-logsコンテナのスペック (有効化後) © NTT Communications Corporation All Rights Reserved. 17

18.

2. 問題の対応策(結果) サービス系 pod で確認したログ件数に対して、Log Analytics ワークスペースのログ件数 は100%コンテナログに存在した。 ※サンプル画像 100,000,000 ログが存在した! © NTT Communications Corporation All Rights Reserved. 18

19.

目次 1. ログ出ない問題 2. 問題の対応策 3. 再び性能テスト? © NTT Communications Corporation All Rights Reserved. 19

20.

3. 再び性能テスト? 性能テスト(負荷テスト)を30分実施したところ、50GBのログが Log Analytics ワークスペースに出力され、2万円課金されていた(※)。 53687091200 ※サンプル画像 2万円なら問題なし (と思っていた) ※金額等数値は丸めて記載 © NTT Communications Corporation All Rights Reserved. 20

21.

3. 再び性能テスト? では、ロングランテスト(24時間以上負荷をかける)を実施するとどうなるか? 53687091200 ※サンプル画像 30分 2万円 ↓ 24時間 XX万円? ※金額等数値は丸めて記載 © NTT Communications Corporation All Rights Reserved. 21

22.

3. 再び性能テスト? ※9頁再掲 開発期間中、システムの安定性評価のために性能テストを行うことが通例であり、以下4つの テストをAKSとその上で起動するコンテナに対して実施。 種別 種別詳細 単性能テスト オンライン処理 (画面処理) 以下観点において性能未達がないことを確認する • レスポンス時間担保 • Azureリソース毎使用率確認 • テスト時のエラー有無確認 バッチ処理 (ジョブ単位処理) • バッチ処理時間担保 • Azureリソース毎使用率確認 • テスト時のエラー有無確認 オンラインピーク処理 (通常30分) 想定最大負荷をかけた状態で、以下観点において性能未達がないことを確認する • レスポンス時間担保 • Azureリソース毎使用率確認 • テスト時エラー有無確認 負荷テスト ロングランテスト ロングラン処理 (通常24時間以上) 該当テスト 限界テスト オンライン限界処理 © NTT Communications Corporation All Rights Reserved. 確認観点 想定最大負荷を長時間継続してかけた状態で、以下観点において性能未達が無いことを確認する • レスポンス時間担保 • Azureリソース毎使用率確認(メモリリーク有無) • テスト時エラー有無確認(システム安定性確認) 突発的な通信に備え、想定最大負荷の数倍をかけた状態で、以下観点において性能未達がないことを確認 する • レスポンス時間担保 • Azureリソース毎使用率確認 • テスト時のエラー有無確認 22

23.

3. 再び性能テスト? 1テスト約100万円の試算になり、同環境での性能テスト(ロングランテスト)は結局断念。 30分 \2万円 1時間 \4万円 24時間(1日) \96万円(4万円 x 24時間) 1テストに100万円は 払えない ※金額等数値は丸めて記載 © NTT Communications Corporation All Rights Reserved. 23

24.

本日お伝えしたかったこと ・AKS上のコンテナにて、ログが大量出力される場合の対応策として、 AKSのハイスケールモード有効化が一案 ・ただし、ハイスケールモードを有効化するとログが Log Analytics に 大量出力されるため、課金にご注意 例 : 30分2万円、1日100万円 © NTT Communications Corporation All Rights Reserved. 24

25.

素敵なAzureライフを!! © NTT Communications Corporation All Rights Reserved. 25

26.

ご静聴ありがとうございました © NTT Communications Corporation All Rights Reserved.