Amazon Aurora および 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 Aurora での 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}_.:/=+\\-@]*)$"
です。タグキーでは、大文字と小文字が区別されます。したがって、キーproject
とProject
は区別されます。キーはタグセットに固有です。例えば、
project=Trinity
やproject=Xanadu
など、タグセットでキーが同じで値が異なるキーと値のペアは使用できません。 - タグ値
-
値は、タグのオプションの文字列値です。文字列値は、1~256 文字の Unicode 文字である必要があります。文字列には、一連の Unicode 文字、数字、空白、
_
、.
、:
、/
、=
、+
、-
、および@
を含めることができます。Java 正規表現は"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
です。タグ値は大文字と小文字が区別されます。したがって、値prod
とProd
は区別されます。値はタグセット内で一意である必要はなく、null にできます。例えば、
project=Trinity
とcost-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 クラスターのスナップショットのコピー
注記
場合によっては、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 インスタンスおよび Aurora DB クラスターに関連するリソースに対して一般的なタグ付け操作を実行する方法を示しています。タグはリソース承認用にキャッシュに格納されます。このため、Amazon RDS リソースにタグを追加または更新すると、変更が利用可能になるまでに数分かかることがあります。
Amazon RDS リソースにタグを追加するプロセスはすべてのリソースで同様です。以下の手順では、Amazon RDS DB インスタンスにタグを付加する方法を示します。
DB インスタンスにタグを追加するには
-
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
注記
[Filter databases (データベースのフィルター)] ペインで DB インスタンスの一覧をフィルターするには、[Filter databases (データベースのフィルター)] のテキスト文字列を入力します。その文字列を含む DB インスタンスのみが表示されます。
-
タグ付けする DB インスタンスの名前を選択して、その詳細を表示します。
-
詳細セクションで、下にスクロールし、[タグ] を選択します。
-
[追加] を選択します。[タグの追加] ウィンドウが表示されます。
-
[タグキー] と [値] の値を入力します。
-
別のタグを追加するには、[別のタグを追加] を選択し、[タブキー] と [値] の値を入力します。
このステップを必要な回数繰り返します。
-
[追加] を選択します。
DB インスタンスからタグを削除するには
-
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
注記
[Filter databases (データベースのフィルター)] ペインで DB インスタンスの一覧をフィルターするには、[Filter databases (データベースのフィルター)] ボックスにテキスト文字列を入力します。その文字列を含む DB インスタンスのみが表示されます。
-
DB インスタンスの名前を選択して、その詳細を表示します。
-
詳細セクションで、下にスクロールし、[タグ] を選択します。
削除するタグを選択します。
-
[削除] を選択し、[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 タグとその特性のリストです。Key
と Value
の値は、大文字と小文字が区別されます。例えば、project=Trinity
と PROJECT=Trinity
は別個のタグです。
タグ付け要素 | 説明 |
---|---|
タグセット | タグセットは、Amazon RDS リソースに割り当てられるすべてのタグのコンテナです。リソースごとに割り当て可能なのは 1 つのタグセットのみです。Amazon RDS API によってのみタグセットを操作できます。 |
Tag | タグはユーザー定義のキーと値のペアです。1~50 個のタグをタグセットに含めることができます。 |
キー |
キーはタグの必須の名前です。制限については、「Amazon RDS のタグ構造」を参照してください。 文字列値は、1~128 文字の Unicode 文字です。 キーはタグセットに対して一意である必要があります。例えば、タグセットでキーが同じで値が異なるキーと値のペアは使用できません。例えば、project/Trinity や project/Xanadu は使用できません。 |
値 |
値はタグの省略可能な値です。制限については、「Amazon RDS のタグ構造」を参照してください。 文字列値は、1~256 文字の Unicode 文字です。 値はタグセット内で一意である必要はなく、null を指定できます。例えば、project/Trinity と cost-center/Trinity のタグセット内に 1 つのキーと値のペアを使用できます。 |