Azureのコストを抑える:マルチリージョン型クラウドコストダッシュボード構築から得た実践的なヒント

複数の地域にわたるAzureのコスト管理を行っている方なら、その苦労はよく理解されていると思います。コストは膨れ上がり、予算は変動し、経理部門から月次レポートが届く頃には、すでに1ヶ月遅れになっているのです。


この筆者は約1年間、Azure(およびAWS、GCP)のグローバルリージョンごとの支出を追跡するクラウドコストレポートダッシュボードを構築・改良してきました。このダッシュボードには、前年比比較、ウォーターフォールチャート、毎月更新される実績データが含まれています。当初はデータを整理するための手段として始めたものが、Azure内で資金がいつの間にか消えていく実態を明らかにする「実例集」へと変わりました。ここでは、クラウド支出を先回りして管理しようとしているITチームやインフラチームに向けて、筆者がそこで得た教訓を共有します。

見えないものは最適化できない — 実用的なダッシュボードを構築する

ポータル上の Azure Cost Management は便利ですが、詳細すぎるか、あるいはサイロ化が進みすぎており、リージョンやサブスクリプションを横断した全体像を把握するには不十分なことがよくあります。そこで私は、コストデータを基に、リージョンやプロバイダーごとに分類し、月次変動や前年比の概要を示すウォーターフォールチャートを表示する、マルチタブ式のダッシュボードを構築しました。

支出をウォーターフォールチャートで可視化すれば、コストの急増は無視できなくなります。4万ドルの支出増は、スプレッドシートの奥深くに埋もれた項目ではなく、議論のきっかけとなるのです。まだ実践していないなら、まずはシンプルに始めてみましょう。条件付き書式設定を施した見やすいExcelのピボットテーブルでさえ、生のAzureエクスポートデータを見つめるよりはるかに有益です。

ヒント:毎日、メールボックスに支出レポートが届くように設定しましょう。Azure Cost Managementはメールによる定期的なエクスポートに対応しています。毎朝、リソースグループやサブスクリプションごとの前日の支出をまとめたレポートがメールボックスに届くよう設定してください。前日との比較を行うことで、異常は即座に明らかになります。制御不能なVM、誤ったデプロイ、設定ミスによるオートスケーリングルールなどは、月末に数千ドル規模の予期せぬ出費に膨れ上がる前に、明確な支出の急増として検出されるでしょう。

アイドル状態や孤立したリソースは、知らぬ間に予算を圧迫する要因となる

Azureは「これ、忘れてましたね」という手数料を請求するわけではありませんが、請求は継続されます。私が確認した主な原因としては、次のようなものがあります:

– VM削除後に残された、未接続のマネージドディスク

– どのリソースにも関連付けられていない静的パブリックIPアドレス

– 停止(割り当て解除)されたものの、ディスクやIPアドレスを保持したままのVM

– 未使用のストレージアカウント — 特に、残存するBlobがあるものや、誰も気づいていないオブジェクトレベルの不変性が有効になっているもの

最後の項目は特に厄介です。管理ロックや不変性ポリシーにより、クリーンアップを試みてもストレージアカウントを削除できない場合があり、プロセスをエスカレーションしない限り削除できないストレージに対して、結果として料金を払い続けることになります。ロックポリシーを文書化し、四半期ごとに確認してください。

ヒント: 少なくとも四半期に1回は、孤立リソースの監査を実行してください。Azure Advisorがこれらのいくつかを検出しますが、スクリプトによるアプローチ(PowerShell + Azモジュール)の方が、より詳細な制御と再現性が得られます。

ストレージ階層は想像以上に重要

Azure Blob Storage には、Hot、Cool、Archive、そして(現在は)Cold の各階層があります。多くの環境では、最も手間がかからないため、デフォルトですべてを Hot に設定しています。しかし、バックアップデータ、コンプライアンスアーカイブ、あるいは古いプロジェクトデータの場合、年に1回、あるいはそれ以下しかアクセスしないストレージに対して、割高な料金を支払っていることになります。

大まかな目安:

– Hot — 頻繁にアクセスされる(毎日/毎週)

– Cool — アクセス頻度が低く、30日以上保存

– Cold — アクセスが稀で、90日以上保存

– Archive — ほとんどアクセスされず、180日以上保存(復元には数時間かかる)

ライフサイクル管理ポリシーを使用すれば、最終アクセス日時に基づいて階層化を自動化できます。一度設定すれば、後は自動的に運用されます。

ヒント:すべてのデータを「Hot」に保持する必要があると決めつける前に、ストレージアカウントのアクセスログを確認してください。当社のあるストレージアカウントは、数ヶ月間アクセスされていなかったにもかかわらず「Hot」に配置されていました。「Cool」に移動することで、コストを大幅に削減できました。

ネットワークコストは常に過小評価されがち傾向

Azureにおけるアウトバウンド通信のコストは、常に過小評価されがちです。Azureからインターネット、他のリージョン、またはオンプレミスへデータを送信する場合、その通信は無料ではありません。

プロキシ接続(たとえば、バックアップインフラストラクチャとAzure間)を設定する際は、ポートの方向性とトラフィックの流れに細心の注意を払ってください。トラフィックのルーティングが非効率的だと、アウトバウンドコストが急速に膨れ上がる可能性があります。NSG(ネットワークセキュリティグループ)のルールを厳密に定義し、各ポートのトラフィックの方向性を文書化しておくと、将来的なコスト削減とトラブルシューティングの両面で役立ちます。

ヒント: Azure Network Watcher を使用して、毎月リージョンごとのアウトバウンドトラフィックを確認してください。EMEA および APJ リージョンからのアウトバウンドは、AMER リージョンに比べて単価が高くなる傾向があります。リージョンごとの費用を見積もる際には、この点を把握しておく価値があります。

すべてにタグを付ける — そして実際にタグを活用する

これほど強調してもしすぎることはありません。タグは、一貫して適用され、実際にコストレポートの作成に活用されて初めて価値を発揮します。当社のダッシュボードではコストを地域別に分類していますが、Azure内では「環境」、「プロジェクト」、「コストセンター」、「所有者」といったタグを使用することで、支出が増加した理由を掘り下げて分析できます。本番環境、開発/テスト環境、あるいは特定のプロジェクトが原因だったのでしょうか?

タグがないと、財務部門から質問があるたびに、まるで考古学調査のような作業をしなければなりません。タグがあれば、30秒でフィルタリングされたビューを取得できます。

ヒント: Azure Policy を使ってタグ付けを強制しましょう。リソースグループの作成時にタグを必須とし、規定に準拠していないリソースを毎週監査します。セットアップにはスプリント1回分程度の時間がかかりますが、毎月何時間も節約できます。

最後に

コストダッシュボードの構築は、当初誰のロードマップにも含まれていませんでした。これは、財務部門や経営陣から「なぜ今四半期のAzureの支出が15%も増加したのか」と問われた際、より的確な回答が必要だったことから生まれたものです。今では、社内で最も頻繁に参照されるツールの一つとなっています。

導入に高度なFinOpsプラットフォームは必要ありません。信頼性の高いExcelエクスポート機能、一貫したタグ付けポリシー、四半期ごとの未使用リソース監査、そしてリザーブドインスタンスのコミットメント状況を明確に把握するだけで、目標の大部分は達成できます。可視化そのものが行動を変え、チームは大規模なリソースを立ち上げる前に確認するようになり、誰が何を所有しているかを正確に示すダッシュボードがあれば、「後で片付ける」というケースも減ります。

まずは可視化から始めましょう。最適化は自然とついてきます。

参考:ダッシュボード デザインの10原則

関連トピックス:
カテゴリー: Azure タグ: , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

この記事のトラックバック用URL