4.6K Views
October 05, 24
スライド概要
2024/10/05(土) 「Japan Azure User Group 14周年イベント」の登壇資料です。
Microsoft MVP for Microsoft Azure/ Azure, .NETのWebアプリケーションエンジニア / 技術情報発信・勉強会実況アカ /
Azure Monitor ログコスト が気づくと高くなっていた話 2024/10/05(土) 「Japan Azure User Group 14周年イベント」 御成門プログラマー(Tomotaka Suzuki)
自己紹介 名前:御成門プログラマー(Tomotaka Suzuki) 受賞: Microsoft MVP(Microsoft Azure) 2023年6月~ 技術: Microsoft Azure(コスト周り多め), .NET, Angular X(Twitter) : @onarimonprogram 技術ブログ : onarimon.jp グルメブログ: food.onarimon.jp
Azureやらかし体験談
こんなAzureやらかし。 あれ Log Analytics ワークスペース のコスト爆発してない? ゆっくりとコストが伸び続けて段々と予算を圧迫している.... Azure コスト分析より(Azure使いの皆様にとっては見たくないコスト増加グラフのため、モザイク処理を施しております。)
ログ回りの構成図 あらゆるログを 貯めている Log Analytics ワークスペース
ログ取り込みの設定だけして満足してない?
Azure ログのコストについて見直ししなきゃ これを機会に Azure Monitor のコスト最適化について考えてみる
そもそも Azureログ の課金対象ってどんな感じ? ログ • インジェスト (ログ取込) • 保存期間 (無料分あり) • クエリ • 検索ジョブ • エクスポート • ログの処理 • プラットフォー ムログのスト リーム処理 • ワークスペース レプリケーショ ン • 長期保持ログ の復元 メトリック • インジェスト • クエリ アラート 通知 Web テスト • ログアラート (サブスクリプ ションごとに100 ルールの無料 分あり) • ネイティブメト リック • ITSM コネクタ の作成イベント または更新イベ ント • メール送信数 • Azure Mobile Appps への プッシュ通信数 • Web hook • Web hook 数 • Web hook 起 動数 • Standard Web テスト実行数 • 複数ステップ Webテスト テス ト数 SCOM マネージ ド インスタンス • SCOM MIで監 視されるエンド ポイント数 価格 - Azure Monitor | Microsoft Azure
そもそも Azureログ の課金対象ってどんな感じ? ログ • インジェスト (ログ取込) • 保存期間 (無料分あり) • クエリ • 検索ジョブ • エクスポート • ログの処理 • プラットフォー ムログのスト リーム処理 • ワークスペース レプリケーショ ン • 長期保持ログ の復元 メトリック • インジェスト • クエリ アラート • ログアラート (サブスクリプ ションごとに100 ルールの無料 分あり) • ネイティブメト リック 通知 Web テスト SCOM マネージ ド インスタンス • Standard Web • ITSM コネクタ • SCOM MIで監 テスト実行数 の作成イベント 視されるエンド または更新イベ ポイント数 • 複数ステップ ント Webテスト テス ト数 • メール送信数 • Azure Mobile Appps への 今回のようなパターンだと大体ここが原因? プッシュ通信数と予測。 • Web hook • Web hook 数 • Web hook 起 動数 価格 - Azure Monitor | Microsoft Azure
現在のログの使用量を分析する
まずは現在の使用量を確認 「設定」→「使用量と推定コスト」から対象リソースのデータインジェスト量を確認。 日ごとの全体の使用量とどのテーブルにデータ量が多いかをチェック。
Log Analytics Workspace Insights ログ使用状況の分析結果を表示 「使用量と推定コスト」→「分析情報」
Azure Monitor ログ のコストについてのやらかし原因 よくわからんけど、大事なAzureリソースのログ全部突っ込んどけ!! • ログとして保存しておく必要のないデータを大量に保存している... とりあえず全ログテーブル 社内ルールに定められた○○日以上保持しておけばOK!! • 長期的に保存するデータと短期的に必要なデータの整理ができていない... ログの量がある日から異常に増えているけど、異常な種類のアラートは上がっていないか らだいじょうぶ!! • Azureリソースもしくはシステム側に何かしら異常があってログが大量にできているけど感知できていない。
Microsoft の記事では どのようなコスト最適化方法が紹介されているのか? Azure Monitor でのコスト最適化
Azure Monitor でのコストの最適化 オペレーショナル データとセキュリティ データを同じ Log Analytics ワークスペースに結合する かどうかを決定します。 各 Log Analytics ワークスペースで通常収集されるデータ量の価格レベルを構成します。 データ保持とアーカイブを構成します。 デバッグ、トラブルシューティング、および監査に使用するテーブルを基本ログとして構成しま す。 ワークスペースのデータ ソースからのデータ収集を制限します。 収集されたデータを定期的に分析して、傾向や異常を特定します。 収集したデータの量が多い場合のアラートを作成します。 特定の予算を超えないようにするための予防措置として、日次上限を検討します。 Log Analytics ワークスペースの Azure Advisor のコストに関する推奨事項に対するアラート を設定します。 Azure Monitor でのコストの最適化 - Azure Monitor | Microsoft Learn
本日はこれについて触れる。 オペレーショナル データとセキュリティ データを同じ Log Analytics ワークスペースに結合する かどうかを決定します。 各 Log Analytics ワークスペースで通常収集されるデータ量の価格レベルを構成します。 データ保持とアーカイブを構成します。 デバッグ、トラブルシューティング、および監査に使用するテーブルを基本ログとして構成しま す。 ワークスペースのデータ ソースからのデータ収集を制限します。 収集されたデータを定期的に分析して、傾向や異常を特定します。 収集したデータの量が多い場合のアラートを作成します。 特定の予算を超えないようにするための予防措置として、日次上限を検討します。 Log Analytics ワークスペースの Azure Advisor のコストに関する推奨事項に対するアラート を設定します。 Azure機能によるコスト最適化
ログコスト最適化①「ログのプラン」 機能 分析ログ 基本ログ 補助ログ(パブリックプレビュー) 用途 継続監視、リアルタイム 検出など常に使用する データ トラブルシューティングなどた まに使う程度のデータ ほとんど触らないが、監査やコン プライアンス目的で必要なデータ 機能数 多い◎ 標準○ 少ない× クエリパフォーマンス 速い◎ 速い◎ 低速× クエリ機能 全KQL機能使用可能◎ 単一テーブルのKQL× 単一テーブルのKQL× 対象テーブル ほぼすべて◎ 一部テーブルのみ対象× 一部テーブルのみ対象× (DCR) ログインジェストコスト 高い× 普通○ 安い◎ クエリコスト 使用した分だけ発生 使用した分だけ発生 プランに含まれる Azure Monitor ログ - Azure Monitor | Microsoft Learn
ログコスト最適化②「価格レベル」 価格レベルは「従量課金」と「1日あたりのインジェスト量(GB)のコミットメント」が選べる →確実にコミットメント量を使用するなら割引が効くコミットメントを選択 価格レベル 予約と似たようなものなので、 コスト最適化の最終手段 料金 1GBあたりの料金 割引率 従量課金 ¥482.681/GB ¥482.68/GB - 100GB/日 ¥41,071.17/日 ¥410.72/GB 15% 200GB/日 ¥77,113.21/日 ¥385.57/GB 20% 300GB/日 ¥113,155.25/日 ¥377.19/GB 22% 400GB/日 ¥147,520.92/日 ¥368.81/GB 24% 500GB/日 ¥181,257.94/日 ¥362.52/GB 25% 1,000GB/日 ¥356,229.48/日 ¥356.23/GB 26% 2,000GB/日 ¥695,695.22/日 ¥347.85/GB 28% 5,000GB/日 ¥1,686,851.35/日 ¥337.38/GB 30% 10,000GB/日 ¥3,277,311.18/日 ¥327.74/GB 32% 25,000GB/日 ¥7,952,299.19/日 ¥318.10/GB 34% 50,000GB/日 ¥15,422,640.84/日 ¥308.46/GB 36% https://azure.microsoft.com/ja-jp/pricing/details/monitor/
ログコスト最適化③「データ保持とアーカイブ」 ログデータの保有形式は「対話型保持」と「長期保有」の2パターンが存在する 対話型保持 長期保有(アーカイブ) 価格 高コスト 低コスト 最大の保持期間 短い(最大2年間※) 長い(最大12年間※) 検索方法 リアルタイムに検索可能 検索ジョブを使用してログを使用できる状態にしてから検索 ※価格レベルによって変わります。
ログコスト最適化④「アラートの作成」 ある一定の期間に取り込まれたログの容量が閾値を超えた場合のアラートを作成 予期しない請求を避ける システム自体が予期しない動作をしている場合の検知にもつながる可能性も? Azure Monitor の Log Analytics ワークスペースでの使用量を分析します - Azure Monitor | Microsoft Learn
ログコスト最適化⑤「日時上限」 1日に取り込むことのできる容量(GB)を設定できる →閾値を超えるとデータ収集が停止される 使いどころが難しい機能 ログを取る目的よりも予算を超えてはいけない場合などにしか使えない。 Log Analytics ワークスペースの日次上限を設定する - Azure Monitor | Microsoft Learn
ログコスト最適化⑥「Azure Advisor」 Azure Advisor でログコストの最適化アドバイスあり 価格レベルの変更 基本プランログへの移行 未使用の復元された テーブルの削除 良くある観点の見直し内容に気づける コストに関する推奨事項 - Azure Advisor | Microsoft Learn
Azure Monitor ログコスト爆発を経て ログを取っているだけで満足していて余計なログを貯めていた 実運用の環境だからこそのログ量の多さ Azureリソースだけでなく、アプリケーションやソースコード側の原因もあった 今回まとめた情報や実状も踏まえて上司に改善案を提案中
今回の教訓 ログは一度設定すると放置しがち? 定期的な見直しを