無駄の特定と排除
Azure Cost Management と Advisor の推奨事項を使用して、アイドル状態の VM、接続されていないディスク、過剰プロビジョニングされたサービス、ゾンビ リソースを見つけ、廃止します。
「無駄の特定と排除」はCoddyKit上の無料Azure Fundamentalsレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAzure Fundamentals学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Azure Fundamentalsコースには全4レッスンが含まれています。
クラウドの無駄:隠れたコスト要因
調査によると、組織は一貫してクラウド支出の25~35%を、アイドル状態、過剰プロビジョニング、または放置されたリソースに費やしています。Azureでよくある無駄の原因には、CPU使用率がほぼゼロなのに24時間稼働しているVM、VMの削除後に残された未接続のマネージドディスク、孤立したパブリックIPアドレス、未使用のApp Serviceプランなどがあります。この無駄を特定して排除することが、FinOpsの実践における最初の、そして投資対効果が最も高いステップです。
Azure Advisorのコストに関する推奨事項
Azure Advisorはリソースの使用状況を継続的に分析し、Costに関する推奨事項を自動的に生成します。一般的な推奨事項には、使用率の低いVMのサイズを適正化または停止すること(7日間のCPU使用率が5%未満、またはメモリ使用率が2%未満)、継続的に稼働するVM向けのReserved Instancesの購入、未接続のパブリックIPアドレスの削除、アイドル状態のApplication Gatewayインスタンスの削除などがあります。各推奨事項には推定月間削減額が表示されるため、影響度に基づいて優先順位を付けられます。
# List Advisor cost recommendations via CLI
az advisor recommendation list \
--category Cost \
--query '[].{Resource:resourceName, Impact:impact, Savings:extendedProperties.annualSavingsAmount}' \
--output tableアイドル状態および使用率の低いVMの検出
Azure Monitorは、すべてのVMについてCPU percentageとnetwork in/outのメトリックを収集します。CPU使用率が継続的に5%未満のVMは、サイズの適正化または停止の有力な候補です。Azure MonitorのVirtual Machine Insights機能を使用すると、24時間、7日間、または30日間にわたるCPUとメモリの使用率を、VM群全体のビューで確認できます。使用率の低いVMに関するAdvisorの推奨事項からは、パフォーマンスチャートに直接移動できるため、対応する前にその傾向を確認できます。
# Query average CPU for a VM over the last 7 days
az monitor metrics list \
--resource /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM \
--metric 'Percentage CPU' \
--interval PT1H \
--start-time 2024-06-01T00:00:00Z \
--end-time 2024-06-08T00:00:00Z \
--aggregation Average未接続のディスクとスナップショット
ディスクを削除する設定を選択せずにVMを削除すると、マネージドディスクが残り、料金が発生し続けます。AzureポータルでディスクをDisk state: Unattachedでフィルターすると、これらの孤立したディスクを見つけられます。同様に、バックアップや移行のために取得した古いスナップショットも、忘れられがちです。スナップショットのストレージはマネージドディスクのストレージより安価ですが、大規模なサブスクリプション全体で忘れられたスナップショットが1年間蓄積すると、年間数千ドルに達することがあります。
# Find all unattached managed disks in a subscription
az disk list \
--query '[?diskState == `Unattached`].{Name:name, RG:resourceGroup, SizeGB:diskSizeGb}' \
--output table孤立したパブリックIPアドレスとNIC
AzureのパブリックIPアドレスは、実行中のリソースに関連付けられていない場合でも課金されます。VMやロードバランサーを削除しても、パブリックIPやネットワークインターフェイスが残ることがあります。ポータルでPublic IP AddressesをAssociated to: Noneでフィルターし、不要なものを削除してください。同様に、どのVMやサービスにも接続されていない孤立したネットワークインターフェイスも安全に削除できます。個々の料金は小さくても、数百のリソースにわたると積み重なります。
# Find unassociated public IP addresses
az network public-ip list \
--query '[?ipConfiguration == null].{Name:name, RG:resourceGroup, SKU:sku.name}' \
--output tableゾンビリソース:ステージング環境と開発環境
ゾンビリソースとは、プロビジョニングされた後に忘れられ、長期間残っているステージング、テスト、または概念実証環境です。アイドル状態の本番VMとは異なり、これらは営業時間中にある程度利用されることがありますが、現在進行中のプロジェクトには役立っていません。すべてのリソースにEnvironmentタグとProjectタグを必須とするリソースタグ付けポリシーを実装し、Environment=DevまたはEnvironment=Testで、作成から90日を超えたリソースに対する自動アラートをスケジュールしてください。
# Find resources tagged as Dev that are over 90 days old (approximate via createdTime)
az resource list \
--tag Environment=Dev \
--query '[].{Name:name, Type:type, RG:resourceGroup}' \
--output table開発VMとテストVMの自動シャットダウン
Azure VMは、毎日指定した時刻にVMを自動停止するAuto-Shutdown機能をサポートしています。すべての開発VMとテストVMでこの機能を有効にし、夜間や週末に稼働し続けないようにしてください。たとえば、開発VMを24時間365日稼働させると24時間分の料金がかかりますが、平日のみ午後6時に自動シャットダウンし、午前8時に自動起動するよう設定すれば、1週間あたり50時間しか使用しません。168時間の場合と比べ、コンピューティングコストを約70%削減できます。
# Enable auto-shutdown at 18:00 UTC on a dev VM
az vm auto-shutdown \
--resource-group myRG \
--name myDevVM \
--time 1800 \
--email admin@contoso.comAzure Cost Management:異常検出
Azure Cost Managementには、機械学習を使用して予期しない支出の急増を特定するAnomaly Detection機能が含まれています。サブスクリプションまたはリソースグループのコストが予測パターンから大きく外れると、たとえば誤ってGPU VMをデプロイした場合やExpressRouteゲートウェイを削除し忘れた場合に、Cost Managementがメールで異常アラートを送信します。異常アラートを設定することは、月次請求書に反映される前に急増するコストを検出できる、手軽で効果の高い対策です。
# Create a cost anomaly alert
az costmanagement alert create \
--name 'AnomalyAlert' \
--scope '/subscriptions/<subscriptionId>' \
--type 'Anomaly' \
--contact-emails 'finance@contoso.com'ストレージとデータベースのレベルの適正化
無駄はコンピューティングに限りません。Business CriticalレベルでプロビジョニングされたAzure SQL Databasesでも、単純な読み取り中心のクエリしか実行しない場合は、コストが半分のGeneral Purposeレベルと同等のパフォーマンスになることがあります。ほとんどアクセスされないBlob Storageのデータは、ライフサイクル管理ポリシーを使用してHotレベルからCoolまたはArchiveレベルに移動してください。Azure Advisorでは、コンピューティングに関するものと併せて、データベースとストレージのサイズ適正化に関する推奨事項も確認できます。
# Create a Blob lifecycle policy to move data to Cool tier after 30 days
az storage account management-policy create \
--account-name mystorageacct \
--resource-group myRG \
--policy @- << 'POLICY'
{
'rules': [{
'name': 'MoveOldDataToCool',
'type': 'Lifecycle',
'definition': {
'actions': { 'baseBlob': { 'tierToCool': { 'daysAfterModificationGreaterThan': 30 } } },
'filters': { 'blobTypes': ['blockBlob'] }
}
}]
}
POLICY無駄を排除するバックログの構築
コスト最適化は一度きりの取り組みではなく、継続的なエンジニアリング実践として扱ってください。Azure DevOpsまたはJiraにFinOpsバックログを作成し、Advisorの推奨事項とコスト異常アラートから毎週生成される項目を登録します。各無駄の項目を担当チームに割り当て、目標解決日を設定してください。実現した削減額と特定した削減額を追跡し、FinOpsの成熟度を測定します。エンジニアリングリーダーと財務担当者による月次コストレビューをスケジュールし、組織全体で無駄の排除を常に意識できるようにします。
将来の無駄を防ぐガバナンス
事後対応よりも予防のほうが費用対効果に優れています。Azure Policyを使用して、承認なしでは高額なVM SKU(GPUやMシリーズなど)を作成できないようにし、すべてのリソースにEnvironmentタグとExpiryDateタグを必須とし、開発用サブスクリプションで新しく作成されたVMの自動シャットダウンを有効にします。さらに、月間予算の80%と100%に予算アラートを設定し、超過が発生する前にチームへ通知されるようにします。
クイックチェック
このレッスンで扱ったMicrosoft Azure Fundamentals (AZ-900)の概念について、理解度を確認します。
レッスンのまとめ
このレッスンでは、Azure Advisorがアイドル状態のVM、未接続のディスク、過剰プロビジョニングされたサービスに対して実行可能なコスト削減の推奨事項を提示すること、開発VMの自動シャットダウンによってコンピューティング支出を70%削減できること、そしてタグ付けを伴うガバナンスポリシーによって将来の無駄の蓄積を防げることを学びました。次はサイズ適正化の手法と自動スケーリング戦略を見ていきます。
よくある質問
「無駄の特定と排除」レッスンは無料ですか?
はい。「無駄の特定と排除」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Azure Fundamentalsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Azure Fundamentalsコースには全4レッスンが含まれています。
「無駄の特定と排除」で何を学びますか?
Azure Cost Management と Advisor の推奨事項を使用して、アイドル状態の VM、接続されていないディスク、過剰プロビジョニングされたサービス、ゾンビ リソースを見つけ、廃止します。 ブラウザで直接実行するハンズオンコードでAzure Fundamentalsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Azure Fundamentalsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAzure Fundamentalsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「無駄の特定と排除」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAzure Fundamentalsレッスンでコードを書いて実行できますか?
はい。すべてのAzure Fundamentalsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。