AWS EC2 リソースのタグ付けに構造化された一貫性のある戦略の導入を考えています。Amazon EC2 リソースのリソース割り当ての最適化やコスト効率に役立つタグ付け戦略の策定に有用な情報があれば教えてください。

タグとは、簡単にいえば、AWS リソースに割り当てることができる名前値ペアの文字列にすぎません。EC2 での使用にあたって最適なタグ付け戦略を策定するために、タグについてのより詳細な情報が必要です。

タグは、アプリケーション識別、環境、所有者などのわかりやすいメタデータを関連付けて AWS リソースを識別および分類するものです。タグはそれぞれ、1 つのキーと 1 つの値で構成されており、どちらの文字列もお客様側が定義します。また、EC2 インスタンスなどのリソースをリクエストするときに、タグキーまたは値に基づいてフィルタとしても使用できます。タグは大規模なリソース管理において主導的な役割を果たします。また、月次請求書にも表示されるため、特にコストの割り当てと制御に有用です。

タグ付けの制限についての最新情報は、Amazon EC2 ドキュメントの「タグの制限」を参照してください。

  • タグのキー名は大文字と小文字を区別します。数字、アンダースコア、ハイフン、英大文字と小文字を使用できます。
  • タグ値は大文字と小文字を区別します。複合タグを作成する場合を除き、セミコロン (「;」), 等号 (「=」)、パイプ文字 ("|") は使用できません。これらの文字は複合タグ値の区切り文字として予約されています。

複合タグ – リソースに割り当てることができる 10 個のタグを有効活用するために、複合タグの使用をお勧めします。複合タグは、複数のキー値ペアを結合して、パイプ記号で区切られた「値」で構成された 1 つの値とし、1 つのキーに割り当てるものです。たとえば、「Ownername」、「OwnerPhone」、「OwnerEmail」という 3 つのキーを結合して、パイプ記号で区切られた名前、電話番号、E メールアドレスの値文字列 (John Doe|1-555-555-1212|jdoe@example.com) とペアになった 1 つの「OwnerContact」キーにできます。

タグキー名の大文字小文字 - タグキー名は大文字 CamelCase である必要があります。これは、単語や略語を結合する際に各単語や略語の頭文字を大文字にする規則です。たとえば、「MiscMetadata」や「SupportEndpoints」などです。複合タグキー名は大文字 CamelCase を使用し、次に等号 (「=」) を続け、その後に複数のパイプ記号で区切られた文字列値を続けます。たとえば、KeyName1=value1|value2|values3;KeyName2=value1|value2|value3 となります。

使用シナリオ

キー名の例

キー値の例

シンプルなタグ

Owner

Bob

パイプ記号で区切られた

複合タグ値

Contact

Bob|1-555-555-1212|bob@example.com

セミコロンとパイプ記号を使用した複合タグ値

OnCall

Primary=Bob|1-555-555-1212|bob@example.com;Secondary=Bill|1-555-555-1212|bill@example.com

アプリケーション名 – オプションでパイプ記号区切りの一意の識別子やドメイン/リソース名を伴うアプリケーション名

WebApp

ProdWebApp|7231a74d|www.example.com

アプリケーション環境 – オプションでパイプ記号区切りの Tier 名やビジネル上の重要レベルを伴う環境名

AppEnv

·  Production|Business Critical|Tier 1
·  Dev|Alpha|Tier 2
·  Test|Beta1|Tier 2

リソースロール – インフラストラクチャ内でそのリソースが受け持つロール

Role

·  CustomerDb
·  HRWeb
·  MarketingCollab

作成者および所有者の連絡先 – パイプ記号区切りを使用したリソースの作成者と所有者の両方の連絡先情報 (名前、電話願望、E メール)

CreatorOwner

ResourceCreator=Doe, John|1-555-555-1212|jdoe@;ResourceOwner=Doe, Jane|1-555-555-1212|jadoe@

ビジネス連絡先 – セミコロンおよびパイプ記号区切りを使用した連絡先情報 (名前、電話願望、E メール)

MarketingMgmt

SocialMediaLead=John Doe|1-555-555-1212|jdoe@example.com;TradMediaLead=Jane Doe|1-555-555-1212|jadoe@example.com

サポートエンドポイント – セミコロン区切りを使用したサポートエンドポイント

UsSupportEndPoints

AlarmEndPoint=arn::SNS::topic1;ChangeApprovalEndPoint=arn::SQS::changequeue

その他のメタデータ – セミコロン区切りとパイプ記号区切りを使用したその他のメタデータ

HrMiscMetadata

key1=value1|value2|value3;key2=value1|value2|value3

パートナー連絡先 – セミコロンとパイプ記号区切りを使用した外部管理サービスのパートナー連絡先情報 (名前、電話願望、E メール)

NasSolutions-Contact

OwnerContact=John Doe|1-555-555-1212|jdoe@example.com;IncidentContact=Jane Doe|1-555-555-1212|jadoe@example.com

リソースのタグの追加、更新、リスト表示、および削除には、次の API および CLI コマンドを使用します。各コマンドのドキュメントには、例が記載されています。

説明

Amazon EC2 CLI

AWS CLI

AWS Tools for Windows PowerShell

API アクション

指定したリソースの 1 つまたは複数のタグを追加または上書きします。

ec2-create-tags

create-tags

New-EC2Tag コマンドレット

CreateTags

指定したリソースから指定したタグを削除します。

ec2-delete-tags

delete-tags

Remove-EC2Tag コマンドレット

DeleteTags

リソースのタグについて

ec2-describe-tags

describe-tags

Get-EC2Tag コマンドレット

DescribeTags

AWS Tools for Windows PowerShell および Get-EC2Tag コマンドレットを使用して、フィルタベースでリージョン内の EC2 リソース ID を返すことができます。Get-EC2Tag はパラメーター「key」、「resource-id」、「resource-type」および「value」に対するフィルタリングをサポートしています。* および ? を使用した基本的なワイルドカードでのフィルタリングもサポートされています。1 回の呼び出しで返すことができる EC2 リソース ID の最大数は 1000 です。Get-EC2Tag の詳細については、「Get-EC2Tag コマンドレット」を参照してください。

次の例は、AWS Tools for Windows PowerShell を使用したタグフィルタの使用例です。

タグキー名に基づいた EC2 リソース ID のフィルタリング
この例では、Get-EC2Tag コマンドレットは、「Contact」という文字列に一致するタグキー名を持つ EC2 インスタンスのリソース ID を返します。
     $filter = New-Object Amazon.EC2.Model.Filter –Property @(Name="key"; Values="Contact")
     Get-EC2Tag –Filter $filter

ワイルドカードを使用したタグ値に基づいた EC2 リソース ID のフィルタリング
この例では、Get-EC2Tag コマンドレットは、「John Doe」という文字列を含むタグ値を持つ EC2 インスタンスのリソース ID を返します。
     $filter = New-Object Amazon.EC2.Model.Filter –Property @(Name="value"; Values="*John Doe*")
     Get-EC2Tag –Filter $filter

タグキー名およびワイルドカードを使用したタグ値に基づいた EC2 リソース ID のフィルタリング
この例では、Get-EC2Tag コマンドレットは、「Contact」という文字列に一致するタグキー名かつ「John Doe」という文字列を含むタグ値を持つ EC2 インスタンスのリソース ID を返します。
     $filter1 = New-Object Amazon.EC2.Model.Filter -Property @(Name="key"; Values="Contact")
     $filter2 = New-Object Amazon.EC2.Model.Filter -Property @(Name="value"; Values="*John Doe*")
     $filters = $filter1, $filter2
     Get-EC2Tag -Filter $filters

上記の条件を使用してフィルタリングを行った場合の Get-EC2Tag コマンドレットの出力例

ResourceId

ResourceType

キー

バリュー

i-2d477420

停止するには

お問い合わせ

OwnerContact=John Doe|1-55…

i-2d477421

停止するには

お問い合わせ

OwnerContact=John Doe|1-55…

i-2d477422

停止するには

お問い合わせ

OwnerContact=John Doe|1-55…

タグに応じた EC2 インスタンスのフィルタリング
describe-instances コマンドを使用したタグでのインスタンスのフィルタリングの例については、「CLI または API でのタグの操作」を参照してください。

リソースのタグ付けは、規模が大きくなっていく AWS リソースの管理に役立つ効果的なツールです。リソースを識別、分類して見つけやすくし、管理や請求書処理に便利です。EC2 タグフィルタリングを使用して、タグ付けされたリソースを見つけることも、リソース割り当ての最適化とコスト効率のための組織のタグ付け基準が適切に適用されているかを検証することもできます。

Amazon EC2、タグ、複合タグ、フィルタリング、例、ベストプラクティス、リソース管理、請求、ガイドライン


このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2015 年 11 月 6 日