Amazon Web Services ブログ
AWSリソースタグ付けの準備、方法と有効なAWSサービス
みなさん、こんにちは。カスタマーソリューションマネージャー (CSM) の越川です。
AWSでは各種リソースに対してタグを付ける方法を提供しております。リソースにタグ付けを行うことにより、タグに基づいてリソースの検索、整理、管理が可能となります。タグ付けの概要についてはこちらをご参照ください。
本ブログでは各種AWSリソースに効率的にタグをつけるための方法やタグを管理する際に有効なAWSサービスをCSMの目線から紹介させていただきます。
タグ付け戦略の検討と準備
AWSではタグ付けを実施する前にタグ付けをどのように行っていくかの戦略を検討し、文書化することを推奨しています。通常複数の担当者/作業者が関わり、AWS上でリソースを立ち上げ、システムを構築していきます。そのためそれぞれの担当者がどのタグをどのAWSリソースにどのようにつければいいかを迷わなくて済むようにタグ値を事前に定義しておくことが重要です。
AWSリファレンスガイドではタグ付けのスコープとタグ付けのガバナンスに対してのガイダンスを記載しています。
実際にタグ値を検討する際は以下の点を考慮します。
- タグキー (Tag Key) タグ値 (Tag Value) の標準化: タグキーおよびタグ値は大文字/小文字を区別します。例えば、タグキー Projectとタグキー projectは別々のタグキーとして取り扱われます。そのためタグを設定する担当者が混乱しないように標準ガイドラインを作成します。
- タグ実施の目的: タグはコスト管理に利用するのか、リソース管理に利用するのか、リソースへのアクセス管理に利用するのか幅広い用途で利用することが可能となっております。どの目的に利用するのかを事前に定義します。
- 利用するタグを決定: 上記に基づいて利用するタグを検討します。例えばコスト管理目的にタグを利用する場合にタグキーとしてProjectやBusiness Unitを利用します。
またタグをコスト管理目的に利用し、AWS Cost Usage Reportにてデータ出力を行う場合は、コスト配分タグとしてのタグの有効化が必要となりますのでこちらも合わせて有効化を行います。コスト配分タグについてはこちらのブログでも説明しておりますのでご参照ください。
上記で構築した戦略をシステムの拡大など状況変化に応じて最適な戦略を選択できるように定期的に更新します。
タグ付けの実施
定義したタグ付け戦略とガイドラインに基づいてタグ付けを実施します。タグ付けはAWSマネジメントコンソール上で手動で設定することができます。しかしマネジメントコンソールを利用してタグ付けを行った場合、それぞれの担当者がタグキーおよび値を設定してタグ付けを行うこととなるため、構築するAWSのリソースの数が増えるにつれて、タグ付けの負荷が増加します。そこでより効率的にタグ付けを行うために本セクションではタグエディタによるタグ付けとInfrastructure as codeを利用したタグ付けを紹介します。
タグエディタ (Tag Editor) を利用したタグ付け
タグエディタを利用することにより複数のリソースに対して一度にタグ付けを行うことが可能となります。詳細はリファレンスガイドをご参照ください。
Infrastructure as codeを利用したタグ付け
手動によるタグ付けの他にInfrastructure as codeのサービス/ツールを利用してタグ付けを行うことも可能になっております。これらを利用することにより、タグ付けの設定内容をコードとしてテンプレートに埋め込むことができ、そのテンプレートを利用しリソースの構築をする際に、担当者はタグ付けを意識することなくリソースの構築を行うことができ、手動での作業負荷を削減することができます。
Infrastructure as codeのサービスとしてAWS CloudFormationを提供しております。タグ付けの機能をサポートしており、CloudFormationによりリソース構築の際に事前設定したタグの内容を自動的に対象リソースに付与することが出来ます。CloudFormationでのタグ付けをする場合の設定方法についてはこちらをご参照ください。
またAWS コマンドラインインターフェース (AWS CLI) でCloudFormationを利用したリソースの構築を行う際に、コマンドのオプションとしてタグを設定することが可能となっております。この機能を利用した場合に、コマンドで設定したタグが自動的にCloudFormationで構築されるリソースに伝播され設定されます。
これらの機能を利用することにより、手動によるタグ付けの負荷を減らすことが可能となっております。
CloudFormationでタグ付けを推進する場合に多くのお客様で直面する課題の一つは、CloudFormationのテンプレートに記載されているタグをどのようにして確認するかという点になります。この課題に対してはAWS CloudFormation Linterのツールを用いてカスタムルールを設定することによりCloudFormationのテンプレートの検証を行えます。この機能を利用することによりタグ付けの戦略やガイドラインに基づいたカスタムルールを設定し、設定が必要なタグキーとタグ値がCloudFormationのテンプレートに記載されているかを確認できます。詳細はこちらのページを参照ください。
CloudFormation以外のInfrastructure as codeを実現するツールの一つTerraformでもタグ付けの機能をサポートしておりますので、ツールの詳細ページをご確認ください。
設定されたタグの確認と統制
設定されたタグを確認したい場合はタグエディタをご利用ください。タグエディタでは各種条件に基づいて検索を行うことにより、タグが付いているリソースおよびタグが付いていないリソースを検索し、追加でタグを設定することが可能となっております。
AWS Configによる確認
タグエディタによる手動モニタリングだけでなく、AWSリソースのタグ付け状況を自動モニタリングすることが可能となっております。これにより必要なタグが設定されていない状態を自動的に検知することが可能であり、タグ付けのモニタリングの負荷を下げることができます。自動モニタリングはAWS Configを利用して実現します。AWS Configは構築したリソースの設定状況のモニタリングを実施するサービスとなっており、そのうちの一つの機能であるマネージドルール required-tagsの機能を利用することにより、タグ付けが必要なリソースに対してタグが設定されているかを自動的に検知できます。
AWS Organizations タグポリシーの利用
またAWS Organizationsを利用し複数のアカウントの管理を行っているのであれば、AWS Organizations タグポリシーの機能を利用することにより、ポリシーに基づき設定されたタグの確認を行い、タグの設定誤りを検知することが可能になります。
これらの機能を組み合わせて利用することにより、タグ付けが必要なリソースに対して正しくタグ付けが行われているかを確認することができます。
まとめ
本ブログではタグ付けに関係する準備、方法や利用できるAWSサービスを共有させていただきました。タグ付け自体はシンプルな仕組みですが、複数の担当者がタグ付けを行う際には、事前にタグ付け戦略を定義し、標準化することが重要です。また、IaCの考えを取り入れて、タグ付け作業を自動化することで、作業ミスなく効率的にタグ付けすることができます。本ブログが皆様のタグ付けの一助になれば幸いです。
カスタマーソリューションマネージャー (CSM) 越川浩治