Azureのタグ付け方法とその選択について

本記事では、Azureのリソース(※)に付与することでコスト管理などの役に立つ「タグ」について、
複数あるタグの適用方法を比較、整理します。
少しでもみなさまのAzure運用の助けになれば幸いです。
※「タグ」はリソース、リソースグループだけではなくサブスクリプションにも付与可能です

■タグ付け方法 適用タイミング別 一覧表

デプロイ時 Azure Portal(手動)
Azure Portal(自動)
ARMテンプレート/Bicep
デプロイ後 Azure Portal(手動)
Azure Portal(自動)
コマンド(Azure CLI/Azure PowerShell/Python)
ARMテンプレート/Bicep

 

■比較、整理

上記で並べたそれぞれの適用方法について、一通り実施してみたので簡単に比較してみます。
※ここで記載している難易度は相対的なもので筆者の主観に依ります

<デプロイ時>
・Azure Portal(手動)
難易度★☆☆
タグの運用を考えたことのない方でも、Azureを触っていればデプロイ時に目にしたことがあると思います。
一番シンプルですね。
ただデプロイする人全員が、共通のルールに則ってタグを設定しないと様々な名前のタグが乱立してしまいカオスになります。
組織できちんとタグ付けのルールを定め、周知していくことが大事です。

・Azure Portal(自動)
難易度★★☆
タグの準拠のためのポリシー定義を割り当てる(Microsoftドキュメント)

Azure Policyを設定することで、デプロイされたリソース及びリソースグループに対し自動的に指定したタグを適用します。
上で記載したAzure Portal(手動)で抜け漏れた設定をカバーすることが出来ます。
Policyの設定自体はそこまで難しくはありませんが、複数ある定義から組織のタグ付けルールに沿ったPolicyを設計する必要があることからこの難易度にしています。
例えば、Azureの仕様上リソースにはリソースグループのタグは継承されませんが、Policyを設定することでデプロイ時のタグの継承を実現することもできます。
※Policyのスコープ内であったとしても既存(デプロイ済み)のリソースには適用されません。
 既存のリソースに適用するには「修復タスク」をトリガーする必要があります。
 (下で記載するデプロイ後のAzure Portal(自動)で触れます)

・ARMテンプレート/Bicep
難易度★★★
ARM テンプレートを使用してタグを適用する(Microsoftドキュメント)
Bicep を使用してタグを適用する(Microsoftドキュメント)

既にIaCをガンガン使っているぜ!という組織の方はこちらです。
というかARMテンプレート/Bicepを活用されている方は既に実施されている気がします。
ARMテンプレート/Bicep内にタグのパラメータを記載しておくことで、デプロイ時にタグが設定されます。
テンプレート内に記載できるので、デプロイ時のフローには影響ありません。
これを機にIaCに挑戦される方にはBicepをお勧めします。



<デプロイ後>

・Azure Portal(手動)
難易度★☆☆
Azure portal を使用してタグを適用する(Microsoftドキュメント)

それぞれのリソース画面やリソース一覧の画面からタグを設定できます。
タグの運用を始めてみようと考えた方は、まずこちらから設定してみましょう。
ただ、対象のリソースが限られている場合はAzure Portal上でポチポチしていけばよいですが、対象が大量にある場合は以降の方法をお勧めします。

・Azure Portal(自動)
タグの準拠のためのポリシー定義を割り当てる(Microsoftドキュメント)
難易度★★☆

<デプロイ時>のAzure Portal(自動)で少し触れた「修復タスク」を使用します。
これを実施することでPolicyのスコープ内でタグが適用されていないリソースに対し、自動的にタグを付与することが出来ます。
上でも記載した通り、Policyの設定自体はそこまで難しくはありませんが、複数ある定義から組織のタグ付けルールに沿ったPolicyを設計する必要があるので少し手間はかかるかもしれません。
ただ、一度設定してしまえば以後デプロイされるリソースには自動的に適用されるので、長期的な目線では運用コストの削減に繋がります。

・コマンド(Azure CLI/Azure PowerShell/Python)
Azure CLI を使用してタグを適用する(Microsoftドキュメント)
Azure PowerShell を使用してタグを適用する(Microsoftドキュメント)
Python を使用してタグを適用する(Microsoftドキュメント)
難易度★★★

それぞれ用意されているコマンドを使用してタグを適用します。
3つとも出来ることは同じなので、選択は使い慣れているもので大丈夫です。
ドキュメントにも記載されていますが、異なるタグを設定すると前のタグが消えてしまう点などに留意しなければいけません。
複数のタグに設定する場合は繰り返し文などを使いループ処理させることで効率化できます。
コマンドを使用することで、タグの一覧を取得可能ですので棚卸などに活用できます。

・ARMテンプレート/Bicep
難易度★★★
ARM テンプレートを使用してタグを適用する(Microsoftドキュメント)
Bicep を使用してタグを適用する(Microsoftドキュメント)

テンプレートはリソースをデプロイする時にだけ使用するものではありません。
それぞれのリソース、リソースグループやサブスクリプションに対しタグを適用する際にも使用できます。
上でコマンドを使用した方法を記載しましたが、テンプレートになれている方はこちらの方が効率が良いかもしれません。

■運用凡例

運用の凡例として、一般的なものを記載します。
・タグ付けルールの策定
タグの命名規則や必須設定の項目を策定します。
例えば、以下の設定は必須として入れる値の一覧まで作成します。
名前 : 環境
値  : 本番/検証/開発
担当部署や利用期間(PJTの開始/終了時期)などを定めことで、コスト最適化のための分析に役立ちます。

・組織のAzure利用ルールとしてタグの設定の義務化、周知
一部の人だけがタグを利用してもあまり高い効果を発揮しません。
組織でAzureを利用する人や部署に対し、しっかりと周知、実施の徹底をお願いしましょう。

・既存リソースへの適用
本記事に記載されているいずれかの方法で、既にデプロイされているリソースに対しタグを適用します。

・Azure Policyの設定
人的ミス、抜け漏れ防止の為にAzure Policyを設定します。

・コストマネジメントなどでの確認
タグは設定しただけでは効果を発揮しません。
コストマネジメントなどでタグを使用しフィルター、きちんと分析に役立てましょう。
予算に対しコストを使いすぎているプロジェクト、試用期間が終了しても残っているリソースなどを判別し、コスト削減に繋げます。

・運用の見直し
ここまで行って、完璧な運用で、着実にコスト削減やAzure利用の効率化が出来ていれば良いですが、定期的に見直すことで、より効率化を図れるタグの追加やPolicyの設定が見つかるかもしれません。
要はPDCAを停滞させることが無いようにしましょう、という事です。
設定したことで満足し疎かにしないようにしましょう(筆者自身への戒めを込めて記載。。。)

■削除/変更方法

設定済みのタグを削除する場合は、基本的に以下が使用できます。
・Azure Portal(手動)
・コマンド(Azure CLI/Azure PowerShell/Python)
ドキュメントへのリンクなどは前述のものをご参照ください。

上記の通り、Azure Portal(自動)ARMテンプレート/Bicepでは明示的に削除を行うことはできません。
ただし値の置換など、変更には使用できますのでケースバイケースで選択してください。

■制限事項ほか

タグを使用して Azure リソースと整理階層を整理する(Microsoftドキュメント)
上記Microsoftドキュメントに様々な制限事項などが記載されていますが、ここでは頻出と思われるものを一部抜粋します。
・アクセス権について
基本的には対象のリソースに対する書き込みアクセス権を持たないとタグを適用することが出来ません、管理者としてグローバル管理者等のロールを持っていれば問題ありません。

・タグのサポートについて
Azure上のすべてのサービスでタグが使用できるわけではありません。
使用可否は以下のドキュメントをご参照下さい。
Azure リソースでのタグのサポート(Microsoftドキュメント)

・タグ名/タグ値の制限について
あまり気にする必要はないかと思いますが、タグ名の制限は 512 文字で、タグ値の制限は 256 文字です。
ストレージ アカウントの場合、タグ名の制限は 128 文字で、タグ値の制限は 256 文字です。
また、タグ名には以下の文字は使用できません。
「 <>%&\?/

 

終わりに

弊社ではAzureコストを最適化するソリューションを展開しており、コストに関する有益な情報満載の無料Webセミナーも開催しております。Azure金額の増加にお悩みのお客様はセミナーのご参加、お問い合わせなど是非弊社までご相談ください。

セミナー情報

Azureコスト最適化支援

いいね (この記事が参考になった人の数:1)
(↑参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルプロセス&テクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください