コスト最適化を実現するための「Azure Advisor」活用から設計上の注意点まで
Azureの利用コストを最適化するためのベストプラクティス
2022年06月10日 08時00分更新
連載「プロに教わるAzure設計運用のベストプラクティス」、第6回目となる今回は、Azureクラウドにおけるコスト管理と最適化のベストプラクティスを扱っていく。
一般的にパブリッククラウドは従量課金(Pay as you go)型であるため、利用コストが“青天井”になって一定額に収まらず、予算オーバーを防ぎにくいと感じている読者もいるかもしれない。しかし、従量課金型という特徴を逆にとらえれば、「コストを下げるために自ら工夫できる余地が多い」ものだとも言える。
コストの話をすると「コスト削減」が一番の目標になりがちだが、本当に使うべきリソースであれば、たとえ大きなコストがかかるとしても使わなければならない。したがって、本当の目標は必要なリソースは使いつつコストを最小化する「コストの最適化」である。本稿でも、コストの最適化を目標として説明を進めたい。
なお、以下の記事中ではAzure Portalの画面を紹介しているが、EA(エンタープライズ契約)とCSP(クラウドソリューションプロバイダー契約)の違いなどが原因で、読者が使っている環境では表示されない可能性もある。またメニューの日本語訳なども、本稿執筆時点から変化しているかもしれない。そのあたりはご容赦いただき、必要に応じて適宜読み替えてほしい。
現状のコストを把握して「予算」のアラートを設定する
まず大事なことは、現状でかかっているコストの把握である。
Azure Portalのコスト管理機能はいくつかの場所からアクセスが可能だが、対象とするサブスクリプションを開いたうえで、左メニューの「コスト管理」にある「コスト分析」を選択するのが一番わかりやすい。
コスト分析の画面を開くと、既定の状態では「AccumlatedCosts(累積コスト)」が表示される。これを「CostByResource(リソースごとのコスト)」に変更すると、リソースごとにかかったコストが表形式で表示される。リソース一覧はコストの多い順に並ぶので、上に表示されているリソースのほうが、よりコストがかかっていることになる。
読者の皆さんにも実際にコストを表示してみてもらいたい。大抵の場合は、ふだんから「コストがかかっているリソース」だと認識しているものが上位に並んでいるはずだ。もしもここで見慣れないリソースが表示されていたら、コストが多くかかっているリソースを把握できていないことになるので要注意だ。それが何のリソースなのか、なぜコストが多くかかっているのか、原因を探る必要がある。
コストの使いすぎを防ぐために、ほかにもサブスクリプションの画面で確認しておきたい機能がある。「予算」と「コストのアラート」だ。
「予算」は、Azure上で定義する“コストのしきい値”のようなものだ。サブスクリプションの累積利用額を月単位または年単位で集計し、あらかじめ設定した予算額の一定割合(50%でも80%でも100%でも自由に設定できる)を超えた段階でアラートを出す。このアラートは、Azure Portalの「コストのアラート」画面に一覧表示されるほか、メールでも管理者に通知される。
ちなみに、ここで設定した予算額を超えたからといって、Azure仮想マシンが強制的にシャットダウンされるようなことはない。アラートを発して管理者に注意を促すだけなので、ぜひ設定しておいてほしい。
無駄なコストの原因=使っていないリソースを削除する
コストを最適化するためには、使う必要のない無駄なリソース(サービス)を見つけて削除するのが近道だ。そこで、Azureで無駄なコストを発生させがちなリソース(サービス)を挙げておこう。
まずは「管理ディスク(Azure Disks)」だ。Azure PortalからAzure仮想マシンを作成すると、一緒に管理ディスクやネットワーク インタフェースのリソースも作成される。それを認識しておらず、使い終えた仮想マシンだけを削除して管理ディスクがそのまま残っている、というパターンはよくある。もちろん、残置された管理ディスクには無駄なコストがかかり続ける。
不要な管理ディスクが残っていないかどうかは、Azure Portalから「ディスク」の一覧画面を表示させ、「所有者」列を見ることで確認できる※注。「所有者」列が空欄になっているものは、Azure仮想マシンとひも付けられていない孤立したリソース(Orphaned Resources)である。削除対象として検討できるだろう。
※注:一覧画面に「所有者」列が表示されていない場合は、「ビューの管理」メニューにある「列の編集」で表示を追加してほしい。後述するパブリックIPアドレス、ネットワーク インタフェースの一覧画面も同様だ。
次は「パブリックIPアドレス」だ。こちらはそれほど高価なリソースではないため、コスト削減のインパクトは小さいが、それでも無駄なコストには変わりない。利用していないIPアドレスが残っていないかどうかを確認しよう。同じように「パブリックIPアドレス」の画面を開き、「関連付け先」列に何も表示されていなければ孤立したリソースである。
「ネットワーク インタフェース」も孤立したリソースになりがちだ。先に挙げた管理ディスクと同様に、Azure仮想マシンの削除時に削除し忘れるケースが多い。残しておいてもコストはかからないが、利用しないならば削除して整理するのがよいだろう。「ネットワーク インターフェース」を表示し、「接続先」列が空欄ならば孤立したリソースである。
この連載の記事
-
第5回
TECH
Azureにおける「IDとアクセス管理」のベストプラクティス -
第4回
TECH
あらゆる観点から考える「データセキュリティ」のベストプラクティス -
第3回
TECH
“ポストクラウド時代”の効率的なインフラ管理方法とは -
第2回
TECH
「失敗あるある」から考える、Azure移行のベストプラクティス -
第1回
TECH
Azureで実現する高可用性の“勘どころ”と構築のポイント - この連載の一覧へ