コスト最適化を実現するための「Azure Advisor」活用から設計上の注意点まで
Azureの利用コストを最適化するためのベストプラクティス
2022年06月10日 08時00分更新
コスト最適化を支援する「Azure Advisor」を活用しよう
上述のように、管理者自身が目視でコストの無駄を発見し、手作業で最適化していくのはおのずと限界がある。そこでぜひ利用していただきたいのが、Azureが標準で備えるコスト管理機能の「Azure Advisor」である。
Azure Portalで「Advisor」をクリックすると、「コスト」「セキュリティ」「信頼性」「オペレーショナル エクセレンス」「パフォーマンス」という5つのパネルが表示される。これは「Microsoft Azure Well-Architected Framework」を構成する5つの柱である(本連載でこれまで説明してきたものも含まれる)。
Azure Advisorは、これらの5要素について自動的に監査やスコアリングを行い、推奨事項を示してくれる機能だ。コストについて言えば、アイドル状態のリソースや活用されていないリソースをAzure Advisorが識別して、コスト削減のためになすべきこと(推奨事項)を示す仕組みになっている。
「コスト」のパネルをクリックすると、おそらくは何らかの推奨事項が表示され、それを実行した場合の「年間削減額」が参考値として表示されるはずだ(何も表示されていない場合は、完全に最適化されている、もしくは表示対象のリソースがないと考えられる)。
年間削減額の金額自体はあくまでも参考値だが、大まかにこの程度のコスト削減が可能だという目安にはなる。Azure Advisorが示す推奨事項の内容を理解しながら実行し、コスト削減を目指していきたい。
なお、コストに関して表示される推奨事項の一覧は、下記のリンク先ドキュメントにまとまっている。
●コストに関する推奨事項(Microsoft公式ドキュメント)
本稿では以下、Azure Advisorによる代表的な推奨事項について、その対処法を簡単に紹介しておこう。
●各リソースの予約インスタンスを検討する
コスト削減/最適化の手段として有名なのが、インスタンスの「予約」だろう。長期間、一定量のリソース利用が見込まれる場合、あらかじめその利用を予約しておくだけでコストの大幅な割引が受けられるサービスだ。
Azure仮想マシンだけでなく、Azureマネージドディスク、Blobストレージ、各種データベースサービスなど、よく使われるPaaSリソースはこの予約に対応しており、予約するだけでシンプルにコストを下げることができる。ただし、1年ぶんまたは3年ぶんの利用リソース量を事前にコミットする(利用を約束する)必要があるので、事前に利用量が見積もれない、利用量の変動が大きいユースケースには向かない。
本稿執筆時点(2022年5月)時点では、予約済みリソースの中途解約料はかからない※注ものの、中途解約を前提に予約を行うのはコスト面でリスクにつながるため推奨できない。
※注:公式ドキュメントには「現在、中途解約料は課金していませんが、将来的には12%の解約料が発生する可能性があります」と記載されている。予約を行う前には解約料についても確認してほしい。
●使用率が低い仮想マシンを適切なサイズに変更する/シャットダウンする
Azure Advisorの推奨項目では「使用率が低い仮想マシンを適切なサイズに変更するかシャットダウンしてください」というものもよく表示される。ただし筆者の経験上、これが表示されたとしても、実際にシャットダウンできるようなケースはあまりないように思われる。あくまでも参考程度に考えておこう。
Azure Advisorによる「使用率が低い」という判定も注意が必要だ。Azure Advisorでは、ある程度長めの期間内でCPU使用率の平均値を算出し、それを基に「使用率が低い」と判定する。しかしワークロードによっては、ふだんのCPU使用率は低くても、短時間のスパイクが発生するようなものもある。そうした仮想マシンをやみくもにスケールダウンするのは、障害発生の原因にもなりかねない。
したがって、Azure Advisorが推奨項目を表示した仮想マシンは詳しく確認を行い、ワークロードの特性などをふまえて管理者自身でどうすべきかを判断してほしい。
●「Start/Stop VMs v2」機能で仮想マシンを自動停止/起動する
上記のように「仮想マシンのシャットダウン」が推奨事項として表示され、夜間など一定の時間帯はシャットダウン(停止)しても問題ないと判断できる場合は、「Start/Stop VMs v2(プレビュー)」機能の採用をおすすめしたい。これは、仮想マシンの自動停止/自動起動を行う機能だ。
Azure仮想マシンの規定の機能の1つとして、「DevTestLabs」が提供する「自動シャットダウン」機能がある。ただし、この機能ができるのは仮想マシンの自動停止だけであり、自動的に起動させることはできない。
一方で、Start/Stop VMs v2機能は自動起動と自動停止の両方ができる。本稿執筆時点ではまだパブリックプレビューのためSLAは提供されておらず、万が一不具合があってもサポートはされないが、そのリスクを受け入れられる用途であれば利用したい。
Start/Stop VMs v2では、サブスクリプション単位やリソースグループ単位でも自動起動/停止を設定することができるほか、そこから特定のAzure仮想マシンを除外する設定も可能で、使い勝手が良い。詳細は以下のドキュメントを参照いただきたい。
この連載の記事
-
第5回
TECH
Azureにおける「IDとアクセス管理」のベストプラクティス -
第4回
TECH
あらゆる観点から考える「データセキュリティ」のベストプラクティス -
第3回
TECH
“ポストクラウド時代”の効率的なインフラ管理方法とは -
第2回
TECH
「失敗あるある」から考える、Azure移行のベストプラクティス -
第1回
TECH
Azureで実現する高可用性の“勘どころ”と構築のポイント - この連載の一覧へ