Amazon RDS リソースのタグ付け - Amazon Relational Database Service

Amazon RDS リソースのタグ付け

Amazon RDS タグは、DB インスタンスまたは DB スナップショットなどの Amazon RDS リソースを定義し、関連付ける名前と値のペアです。その名前はキーと呼ばれます。オプションで、キーに値を与えることができます。

AWS Management Console、AWS CLI、または Amazon RDS API を使用して、Amazon RDS リソースに対してタグを追加、一覧表示、削除できます。CLI または API を使用するときは、操作する RDS リソースの Amazon リソースネーム (ARN) を指定する必要があります。ARN の作成の詳細については、「Amazon RDS 用 ARN の構築」をご参照ください。

Amazon RDS リソースタグを使用する理由

タグを使用して、以下のことを行うことができます。

  • RDS リソースをアプリケーション、プロジェクト、部門、環境などに分類します。例えば、タグキーを使用してカテゴリを定義し、タグ値をそのカテゴリのアイテムにすることができます。タグ environment=prod を作成できます。または、project のタグキーと Salix のタグ値を定義して、Amazon RDS リソースが Salix プロジェクトに割り当てられていることを示すことができます。

  • リソース管理タスクを自動化します。例えば、environment=test にタグ付けされたインスタンスのウィンドウとは異なる environment=prod にタグ付けされたインスタンスのメンテナンスウィンドウを作成できます。インスタンスにタグ付けされた environment=prod の自動 DB スナップショットを設定することもできます。

  • IAM ポリシー内の RDS リソースへのアクセスを制御します。これを行うには、グローバル条件キー aws:ResourceTag/tag-key を使用します。例えば、ポリシーでは、DBAdmin グループ内のユーザーのみを environment=prod でタグ付けされた DB インスタンスの変更を許可できます。IAM ポリシーでタグ付けされたリソースへのアクセスの管理については、「AWS Identity and Access Management ユーザーガイド」の「Amazon RDS での Identity and Access Management」および「AWS リソースへのアクセスの制御」を参照してください。

  • タグに基づいてリソースをモニタリングします。例えば、environment=prod でタグ付けされた DB インスタンス用の Amazon CloudWatch ダッシュボードを作成できます。

  • 同様にタグ付けされたリソースの費用をグループ化することで、コストを追跡します。例えば、project=Salix で Salix プロジェクトに関連付けられた RDS リソースにタグ付けした場合、コストレポートを生成して、このプロジェクトに経費を割り当てることができます。詳細については、「Amazon RDS でのタグを使用した AWS 請求の仕組み」を参照してください。

Amazon RDS リソースタグの仕組み

AWS はタグに意味論的意味を適用しません。タグは単なる文字列として解釈されます。

Amazon RDS のタグセット

すべての Amazon RDS リソースには、タグセットと呼ばれるコンテナがあります。コンテナには、リソースに割り当てられたすべてのタグが含まれます。リソースにはタグセットが 1 つだけあります。

タグセットには 0~50 個のタグが含まれます。既存のリソースタグと同じキーを持つタグを RDS リソースに追加した場合、既存の値は新しい値によって上書きされます。

Amazon RDS のタグ構造

RDS タグの構造は次のとおりです。

タグキー

キーは、タグの必須の名前です。文字列値は、1~128 文字の Unicode 文字であり、aws: または rds: をプレフィックスとして使用することはできません。文字列には、一連の Unicode 文字、数字、空白、_.:/=+-、および @ を含めることができます。Java 正規表現は "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" です。タグキーでは、大文字と小文字が区別されます。したがって、キー projectProject は区別されます。

キーはタグセットに固有です。例えば、project=Trinityproject=Xanadu など、タグセットでキーが同じで値が異なるキーと値のペアは使用できません。

タグ値

値は、タグのオプションの文字列値です。文字列値は、1~256 文字の Unicode 文字である必要があります。文字列には、一連の Unicode 文字、数字、空白、_.:/=+-、および @ を含めることができます。Java 正規表現は "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" です。タグ値は大文字と小文字が区別されます。したがって、値 prodProd は区別されます。

値はタグセット内で一意である必要はなく、null にできます。例えば、project=Trinitycost-center=Trinity のタグセット内に 1 つのキーと値のペアを使用できます。

タグ付けの対象となる Amazon RDS リソース

次の Amazon RDS リソースにタグ付けができます。

  • DB インスタンス

  • DB クラスター

  • DB クラスターエンドポイント

  • リードレプリカ

  • DB スナップショット

  • DB クラスタースナップショット

  • リザーブド DB インスタンス

  • イベントサブスクリプション

  • DB オプショングループ

  • DB パラメータグループ

  • DB クラスターのパラメータグループ

  • DB サブネットグループ

  • RDS プロキシ

  • RDS Proxy エンドポイント

    注記

    現在、AWS Management Console を使用して、RDS プロキシおよび RDS プロキシエンドポイントにタグ付けすることはできません。

  • ブルー/グリーンデプロイ

  • ゼロ ETL 統合 (プレビュー)

Amazon RDS でのタグを使用した AWS 請求の仕組み

タグを使用して、自分のコスト構造を反映するように AWS 請求書を整理します。そのためには、サインアップして、タグキー値が含まれた AWS アカウント の請求書を取得する必要があります。次に、結合したリソースのコストを見るには、同じタグキー値のリソースに従って請求書情報を整理します。例えば、複数のリソースに特定のアプリケーション名のタグを付け、請求情報を整理することで、複数のサービスを利用しているアプリケーションの合計コストを確認することができます。詳細については、AWS Billingユーザーガイド の「コスト配分タグの使用」をご参照ください。

DB スナップショットでのコスト配分タグの仕組み

DB スナップショットにタグを追加することができます。ただし、このグループは請求書に反映されません。コスト配分タグを DB スナップショットに適用するには、以下の条件を満たす必要があります。

  • タグは親 DB インスタンスにアタッチする必要があります。

  • 親 DB インスタンスは、DB スナップショットと同じ AWS アカウント に存在する必要があります。

  • 親 DB インスタンスは、DB スナップショットと同じ AWS リージョン に存在する必要があります。

DB スナップショットは、親 DB インスタンスと同じ リージョンに存在しない場合、孤立したと見なされます。孤立した DB スナップショットは、コスト配分タグをサポートしません。孤立したスナップショットのコストは、タグのない単一の項目に集約されます。クロスアカウント DB スナップショットは、次の条件が満たされても孤立したとは見なされません。

  • 親 DB インスタンスと同じリージョンに存在します。

  • 親 DB インスタンスはソースアカウントによって所有されます。

    注記

    親 DB インスタンスが別の アカウントによって所有されている場合、コスト配分タグはデスティネーションアカウントのクロスアカウントスナップショットに適用されません。

Amazon RDS リソースのタグ付けのベストプラクティス

タグを使用するときには、以下のベストプラクティスに従うことをおすすめします。

  • 組織内のすべてのチームが従うタグ使用の規則を文書化します。特に、名前が記述的で一貫性があることを確認してください。例えば、env:production を持つリソースにタグ付けするのではなく、形式 environment:prod で標準化します。

    重要

    個人情報 (PII) などの機密情報や秘匿性の高い情報はタグに格納しないでください。

  • タグ付けを自動化して一貫性を確保します。例えば、以下の技法を使用できます。

    • AWS CloudFormation テンプレートにタグを含めます。テンプレートを使用してリソースを作成すると、リソースは自動的にタグ付けされます。

    • AWS Lambda 関数を使用してタグを定義して適用します。

    • RDS リソースにタグを追加する手順を含む SSM ドキュメントを作成します。

  • タグは必要な場合にのみ使用します。1 つの RDS リソースに最大 50 個のタグを追加できますが、ベストプラクティスは、不要なタグの拡散や複雑さを回避することです。

  • タグの関連性と正確性を定期的に確認します。必要に応じて、古いタグを削除または変更します。

  • AWS Management Console で AWS タグエディタを使用してタグを作成することを検討してください。タグエディタを使用して、RDS リソースを含む複数のサポートされている AWS リソースにタグを同時に追加できます。詳細については、AWS リソースグループユーザーガイドタグエディタを参照してください。

タグを DB スナップショットにコピーする

DB インスタンスを作成または復元するとき、DB インスタンスから DB インスタンスのスナップショットにタグがコピーされるように指定できます。タグをコピーすると、DB スナップショットとソース DB インスタンスのメタデータが確実に一致するようになります。また、DB スナップショットとソース DB インスタンスのアクセスポリシーが確実に一致するようになります。

次のアクションでタグが DB スナップショットにコピーされるように指定できます。

  • DB インスタンスの作成

  • DB インスタンスの復元

  • リードレプリカの作成。

  • DB スナップショットのコピー

ほとんどの場合、デフォルトでタグのコピーは行われません。DB スナップショットから DB インスタンスを復元した際に、RDS は新しいタグが指定されているかどうかをチェックします。新しいタグが指定されている場合、そのタグは復元された DB インスタンスに追加されます。新しいタグがない場合、RDS は、スナップショットの作成時にソース DB インスタンスから復元された DB インスタンスにタグを追加します。

ソース DB インスタンスのタグが復元された DB インスタンスに追加されることを防ぐには、DB インスタンスの復元時に新しいタグを指定することをお勧めします。

注記

場合によっては、create-db-snapshot AWS CLI コマンドの --tags パラメータに値を含めることができます。または、CreateDBSnapshot API オペレーションに少なくとも 1 つのタグを指定することもできます。このような場合、RDS はソース DB インスタンスから新しい DB スナップショットにタグをコピーしません。この機能は、ソース DB インスタンスの --copy-tags-to-snapshot (CopyTagsToSnapshot) オプションが有効になっている場合でも、適用されます。

このアプローチを使用すると、DB スナップショットから DB インスタンスのコピーを作成できます。この方法では、新しい DB インスタンスに適用されないタグを追加する必要がなくなります。DB スナップショットは、AWS CLIcreate-db-snapshotコマンド (またはCreateDBSnapshot RDS API オペレーション) を使用して作成します。DB スナップショットを作成した後、このトピックで説明しているように、タグを追加することができます。

Amazon RDS でのタグの追加と削除

以下の操作を行うことができます。

  • リソースの作成時にタグを作成します。例えば、AWS CLI コマンド create-db-instance を実行するときなどです。

  • 既存のリソースにタグを追加するには、コマンド add-tags-to-resource を使用します。

  • コマンド list-tags-for-resource を使用して、特定のリソースに関連付けられたタグを一覧表示します。

  • コマンド add-tags-to-resource を使用してタグを更新します。

  • コマンド remove-tags-from-resource を使用して、リソースからタグを削除します。

次の手順は、DB インスタンスに関連するリソースに対して一般的なタグ付け操作を実行する方法を示しています。タグはリソース承認用にキャッシュに格納されます。このため、Amazon RDS リソースにタグを追加または更新すると、変更が利用可能になるまでに数分かかることがあります。

Amazon RDS リソースにタグを追加するプロセスはすべてのリソースで同様です。以下の手順では、Amazon RDS DB インスタンスにタグを付加する方法を示します。

DB インスタンスにタグを追加するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

    注記

    [Filter databases (データベースのフィルター)] ペインで DB インスタンスの一覧をフィルターするには、[Filter databases (データベースのフィルター)] のテキスト文字列を入力します。その文字列を含む DB インスタンスのみが表示されます。

  3. タグ付けする DB インスタンスの名前を選択して、その詳細を表示します。

  4. 詳細セクションで、下にスクロールし、[タグ] を選択します。

  5. [追加] を選択します。[タグの追加] ウィンドウが表示されます。

    [タグの追加] ウィンドウ
  6. [タグキー] と [] の値を入力します。

  7. 別のタグを追加するには、[別のタグを追加] を選択し、[タブキー] と [] の値を入力します。

    このステップを必要な回数繰り返します。

  8. [追加] を選択します。

DB インスタンスからタグを削除するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

    注記

    [Filter databases (データベースのフィルター)] ペインで DB インスタンスの一覧をフィルターするには、[Filter databases (データベースのフィルター)] ボックスにテキスト文字列を入力します。その文字列を含む DB インスタンスのみが表示されます。

  3. DB インスタンスの名前を選択して、その詳細を表示します。

  4. 詳細セクションで、下にスクロールし、[タグ] を選択します。

  5. 削除するタグを選択します。

    タグセクション
  6. [削除] を選択し、[Delete tags] (タグの削除) ウィンドウから [削除] を選択します。

AWS CLI を使用して DB インスタンスのタグを追加、一覧表示、または削除できます。

  • Amazon RDS リソースに 1 つ以上のタグを追加するには、AWS CLI コマンド add-tags-to-resource を使用します。

  • Amazon RDS リソースのタグを一覧表示するには、AWS CLI コマンド list-tags-for-resource を使用します。

  • Amazon RDS リソースから 1 つ以上のタグを削除するには、AWS CLI コマンド remove-tags-from-resource を使用します。

必要な ARN を作成する方法の詳細については、「Amazon RDS 用 ARN の構築」を参照してください。

Amazon RDS API を使用して DB インスタンスのタグを追加、一覧表示、または削除できます。

  • Amazon RDS リソースにタグを追加するには、AddTagsToResource オペレーションを使用します。

  • Amazon RDS リソースに割り当てられているタグを一覧表示するには、ListTagsForResource を使用します。

  • Amazon RDS リソースからタグを削除するには、RemoveTagsFromResource オペレーションを使用します。

必要な ARN を作成する方法の詳細については、「Amazon RDS 用 ARN の構築」を参照してください。

Amazon RDS API を使用して XML を操作する場合、タグでは以下のスキーマを使用します。

<Tagging> <TagSet> <Tag> <Key>Project</Key> <Value>Trinity</Value> </Tag> <Tag> <Key>User</Key> <Value>Jones</Value> </Tag> </TagSet> </Tagging>

以下の表に示しているのは、使用可能な XML タグとその特性のリストです。KeyValue の値は、大文字と小文字が区別されます。例えば、project=TrinityPROJECT=Trinity は別個のタグです。

タグ付け要素 説明
タグセット タグセットは、Amazon RDS リソースに割り当てられるすべてのタグのコンテナです。リソースごとに割り当て可能なのは 1 つのタグセットのみです。Amazon RDS API によってのみタグセットを操作できます。
Tag タグはユーザー定義のキーと値のペアです。1~50 個のタグをタグセットに含めることができます。
キー

キーはタグの必須の名前です。制限については、「Amazon RDS のタグ構造」を参照してください。

文字列値は、1~128 文字の Unicode 文字です。aws: または rds: をプレフィックスとして使用することはできません。文字列には、一連の Unicode 文字、数字、空白、「_」、「.」、「/」、「=」、「+」、「-」 (Java 正規表現: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)") のみ使用できます。

キーはタグセットに対して一意である必要があります。例えば、タグセットでキーが同じで値が異なるキーと値のペアは使用できません。例えば、project/Trinity や project/Xanadu は使用できません。

値はタグの省略可能な値です。制限については、「Amazon RDS のタグ構造」を参照してください。

文字列値は、1~256 文字の Unicode 文字です。aws: または rds: をプレフィックスとして使用することはできません。文字列には、一連の Unicode 文字、数字、空白、「_」、「.」、「/」、「=」、「+」、「-」 (Java 正規表現: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)") のみ使用できます。

値はタグセット内で一意である必要はなく、null を指定できます。例えば、project/Trinity と cost-center/Trinity のタグセット内に 1 つのキーと値のペアを使用できます。