ElastiCache リソースのタグ付け - Amazon ElastiCache

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ElastiCache リソースのタグ付け

クラスターと他の ElastiCache リソースを管理しやすくするために、タグ形式で各リソースに独自のメタデータを割り当てることができます。タグを使用すると、 AWS リソースを目的、所有者、環境などさまざまな方法で分類できます。これは同じタイプのリソースが多数ある場合に役立ちます。割り当てたタグに基づいて、特定のリソースをすばやく識別できます。ここではタグとその作成方法について説明します。

警告

ベストプラクティスとして、機密データをタグに含めないようお勧めします。

タグは、 AWS リソースに割り当てるラベルです。タグはそれぞれ、1 つのキーとオプションの 1 つの値で設定されており、どちらもお客様側が定義します。タグを使用すると、目的や所有者など、さまざまな方法で AWS リソースを分類できます。たとえば、各インスタンスの所有者とユーザーグループを追跡しやすくするため、アカウントの ElastiCache クラスターに対して一連のタグを定義できます。

各リソースタイプのニーズを満たす一連のタグキーを考案することをお勧めします。一貫性のある一連のタグキーを使用することで、リソースの管理が容易になります。追加したタグに基づいてリソースを検索およびフィルタリングできます。効果的なリソースのタグ付け戦略を実装する方法の詳細については、「AWS ホワイトペーパーのタグ付けのベストプラクティス」を参照してください。

タグには、ElastiCache に関連する意味はなく、完全に文字列として解釈されます。また、タグは自動的にリソースに割り当てられます。タグのキーと値は編集でき、タグはリソースからいつでも削除できます。タグの値は null に設定できます。特定のリソースについて既存のタグと同じキーを持つタグを追加した場合、以前の値は新しい値によって上書きされます。リソースを削除すると、リソースのタグも削除されます。さらに、レプリケーショングループでタグを追加または削除すると、そのレプリケーショングループ内のすべてのノードにもタグが追加または削除されます。

タグは、 AWS Management Console、、 AWS CLIおよび ElastiCache API を使用して操作できます。

IAM を使用している場合は、タグを作成、編集、または削除するためのアクセス許可を持つ AWS アカウントのユーザーを制御できます。詳細については、「リソースレベルのアクセス許可」を参照してください。

アカウントにすでに存在するほとんどの ElastiCache リソースにタグ付けできます。以下の表に、タグ付けをサポートするリソースを示します。を使用している場合は AWS Management Console、タグエディタを使用してリソースにタグを適用できます。一部のリソースの画面では、リソースの作成時にリソースのタグを指定できます。例えば、Name のキーと指定した値をタグ付けします。ほとんどの場合、リソースの作成後すぐに (リソースの作成時ではなく) コンソールによりタグが適用されます。コンソールではリソースを [Name] タグに応じて整理できますが、このタグには ElastiCache サービスに対する意味論的意味はありません。

さらに、リソース作成アクションによってはリソースの作成時にリソースのタグを指定できます。リソースの作成時にタグを適用できない場合はリソース作成プロセスがロールバックされます。これにより、リソースがタグ付きで作成されるか、まったく作成されないようになるため、タグ付けされていないリソースが存在することがなくなります。作成時にリソースにタグ付けすることで、リソース作成後にカスタムタグ付けスクリプティングを実行する必要がなくなります。

Amazon ElastiCache API、 CLI、または AWS SDK AWS を使用している場合は、関連する ElastiCache API アクションで Tagsパラメータを使用してタグを適用できます。具体的には次の 2 つです。

  • CreateServerlessCache

  • CreateCacheCluster

  • CreateReplicationGroup

  • CopyServerlessCacheSnapshot

  • CopySnapshot

  • CreateCacheParameterGroup

  • CreateCacheSecurityGroup

  • CreateCacheSubnetGroup

  • CreateServerlessCacheSnapshot

  • CreateSnapshot

  • CreateUserGroup

  • CreateUser

  • PurchaseReservedCacheNodesOffering

次の表では、タグ付けできる ElastiCache リソースと、ElastiCache API、 CLI、または AWS SDK AWS を使用して作成時にタグ付けできるリソースについて説明します。

ElastiCache リソースのタグ付けのサポート
リソース タグをサポート 作成時のタグ付けをサポート
serverlesscache あり あり
parametergroup あり あり
securitygroup あり あり
subnetgroup あり あり
replicationgroup あり あり
クラスター あり あり
reserved-instance あり あり
serverlesscachesnapshot あり あり
スナップショット あり あり
ユーザー あり あり
usergroup あり あり
注記

グローバルデータストアにタグを付けることはできません。

IAM ポリシーでタグベースのリソースレベルアクセス許可を、作成時のタグ付けをサポートする ElastiCache API アクションに適用し、作成時にリソースにタグ付けできるユーザーとグループを細かく制御できます。リソースは、作成時から適切に保護されます。タグはリソースに即座に適用されます。したがって、リソースの使用を制御するタグベースのリソースレベルの許可は、ただちに有効になります。リソースはより正確に追跡および報告されます。新しいリソースにタグ付けの使用を適用し、リソースで設定されるタグキーと値をコントロールできます。

詳細については、「リソースのタグ付けの例」を参照してください。

請求用のリソースへのタグ付けの詳細については、「コスト配分タグによるコストのモニタリング」を参照してください。

リクエストオペレーションの一部としてタグ付けには、次のルールが適用されます。

  • CreateReplicationGroup:

    • --primary-cluster-id および --tags パラメータがリクエストに含まれている場合、リクエストタグはレプリケーショングループに追加され、レプリケーショングループ内のすべてのキャッシュクラスターに伝播されます。プライマリキャッシュクラスターに既存のタグがある場合、これらはリクエストタグで上書きされ、すべてのノードで一貫したタグを持つようになります。

      リクエストタグがない場合、プライマリキャッシュクラスタータグはレプリケーショングループに追加され、すべてのキャッシュクラスターに伝播されます。

    • --snapshot-name または --serverless-cache-snapshot-name が供給された場合:

      タグがリクエストに含まれている場合、レプリケーショングループはそれらのタグのみでタグ付けされます。タグがリクエストに含まれていない場合、スナップショットタグがレプリケーショングループに追加されます。

    • --global-replication-group-id が供給された場合:

      タグがリクエストに含まれている場合、リクエストタグはレプリケーショングループに追加され、すべてのキャッシュクラスターに伝播されます。

  • CreateCacheCluster:

    • --replication-group-id が供給された場合:

      タグがリクエストに含まれている場合、キャッシュクラスターはそれらのタグのみでタグ付けされます。タグがリクエストに含まれていない場合、キャッシュクラスターはプライマリキャッシュクラスターのタグではなく、レプリケーショングループタグを継承します。

    • --snapshot-name が供給された場合:

      タグがリクエストに含まれている場合、キャッシュクラスターはそれらのタグのみでタグ付けされます。タグがリクエストに含まれていない場合、スナップショットタグはキャッシュクラスターに追加されます。

  • CreateServerlessCache:

    • タグがリクエストに含まれている場合、リクエストタグのみがサーバーレスキャッシュに追加されます。

  • CreateSnapshot:

    • --replication-group-id が供給された場合:

      タグがリクエストに含まれている場合、リクエストタグのみがスナップショットに追加されます。タグがリクエストに含まれていない場合、レプリケーショングループタグがスナップショットに追加されます。

    • --cache-cluster-id が供給された場合:

      タグがリクエストに含まれている場合、リクエストタグのみがスナップショットに追加されます。タグがリクエストに含まれていない場合、キャッシュクラスタータグがスナップショットに追加されます。

    • 自動スナップショットでは:

      タグは、レプリケーショングループタグから伝播されます。

  • CreateServerlessCacheSnapshot:

    • タグがリクエストに含まれている場合、リクエストタグのみがサーバーレスキャッシュのスナップショットに追加されます。

  • CopySnapshot:

    • タグがリクエストに含まれている場合、リクエストタグのみがスナップショットに追加されます。タグがリクエストに含まれていない場合、コピー元のスナップショットタグがコピーされたスナップショットに追加されます。

  • CopyServerlessCacheSnapshot:

    • タグがリクエストに含まれている場合、リクエストタグのみがサーバーレスキャッシュのスナップショットに追加されます。

  • AddTagsToResource および RemoveTagsFromResource:

    • タグはレプリケーショングループに追加または削除され、アクションはレプリケーショングループ内のすべてのクラスターに伝播されます。

    注記

    AddTagsToResource および RemoveTagsFromResource は、デフォルトのパラメータおよびセキュリティグループには使用できません。

  • IncreaseReplicaCount および ModifyReplicationGroupShardConfiguration:

    • レプリケーショングループに追加されたすべての新しいクラスターには、レプリケーショングループと同じタグが適用されます。

タグには以下のような基本制限があります。

  • リソースあたりのタグの最大数 - 50 件

  • タグキーはリソースごとにそれぞれ一意である必要があります。また、各タグキーに設定できる値は 1 つのみです。

  • キーの最大長 – 128 Unicode 文字 (UTF-8)

  • 値の最大長 - 256 Unicode 文字 (UTF-8)。

  • ElastiCache ではタグ内に任意の文字を使用できますが、他のサービスでは制限がある場合があります。すべてのサービスで使用できる文字は、UTF-8 で表現できる文字、数字、およびスペースに加えて、 + - = . _ : / @ です。

  • タグのキーと値は大文字と小文字が区別されます。

  • aws: プレフィックスは AWS 用に予約されています。タグにこのプレフィックスが付いたタグキーがある場合、タグのキーまたは値を編集、削除することはできません。aws: プレフィックスを持つタグはリソースあたりのタグ数の制限時には計算されません。

タグのみに基づいてリソースを終了、停止、終了することはできません。リソース識別子を指定する必要があります。例えば、DeleteMe というタグキーを使用してタグ付けしたスナップショットを削除するにはDeleteSnapshot のようなスナップショットのリソース識別子を指定して snap-1234567890abcdef0 アクションを使用する必要があります。

タグ付けできる ElastiCache リソースの詳細については、「タグを付けることができるリソース」を参照してください。

  • タグを使ったサーバーレスキャッシュの作成。この例では、エンジンとして Memcached を使用します。

    aws elasticache create-serverless-cache \ --serverless-cache-name CacheName \ --engine memcached --tags Key="Cost Center", Value="1110001" Key="project",Value="XYZ"
  • サーバーレスキャッシュへのタグの追加

    aws elasticache add-tags-to-resource \ --resource-name arn:aws:elasticache:us-east-1:111111222233:serverlesscache:my-cache \ --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  • レプリケーショングループにタグを追加します。

    aws elasticache add-tags-to-resource \ --resource-name arn:aws:elasticache:us-east-1:111111222233:replicationgroup:my-rg \ --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  • タグを使用したキャッシュクラスターの作成。

    aws elasticache create-cache-cluster \ --cluster-id testing-tags \ --cluster-description cluster-test \ --cache-subnet-group-name test \ --cache-node-type cache.t2.micro \ --engine valkey \ --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  • タグを使用したキャッシュクラスターを作成します。この例では、エンジンとして Redis を使用します。

    aws elasticache create-cache-cluster \ --cluster-id testing-tags \ --cluster-description cluster-test \ --cache-subnet-group-name test \ --cache-node-type cache.t2.micro \ --engine valkey \ --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  • タグ付きのサーバーレススナップショットの作成。この例では、エンジンとして Memcached を使用します。

    aws elasticache create-serverless-cache-snapshot \ --serverless-cache-name testing-tags \ --serverless-cache-snapshot-name bkp-testing-tags-scs \ --tags Key="work",Value="foo"
  • タグ付きのスナップショットを作成します。

    現在、スナップショットは Redis でのみ使用できます。この場合、リクエストでタグを追加すると、レプリケーショングループにタグが含まれている場合でも、スナップショットはリクエストタグのみを受け取ります。

    aws elasticache create-snapshot \ --replication-group-id testing-tags \ --snapshot-name bkp-testing-tags-rg \ --tags Key="work",Value="foo"
  1. クラスターに Project=XYZ というタグがある場合にのみ、クラスターへの AddTagsToResource アクションが許可されます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:cluster:*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Project": "XYZ" } } } ] }
  2. レプリケーショングループに Project タグと Service タグが含まれ、キーが Project と Service と異なる場合、レプリケーショングループからの RemoveTagsFromResource アクションが許可されます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:RemoveTagsFromResource", "Resource": [ "arn:aws:elasticache:*:*:replicationgroup:*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Service": "Elasticache", "aws:ResourceTag/Project": "XYZ" }, "ForAnyValue:StringNotEqualsIgnoreCase": { "aws:TagKeys": [ "Project", "Service" ] } } } ] }
  3. タグが Project と Service と異なる場合にのみ、任意のリソースへの AddTagsToResource が許可されます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticache:AddTagsToResource", "Resource": [ "arn:aws:elasticache:*:*:*:*" ], "Condition": { "ForAnyValue:StringNotEqualsIgnoreCase": { "aws:TagKeys": [ "Service", "Project" ] } } } ] }
  4. リクエストに Tag Project=Foo がある場合、CreateReplicationGroup アクションが拒否されます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "elasticache:CreateReplicationGroup", "Resource": [ "arn:aws:elasticache:*:*:replicationgroup:*" ], "Condition": { "StringEquals": { "aws:RequestTag/Project": "Foo" } } } ] }
  5. ソーススナップショットに Project=XYZ タグがあり、リクエストタグが Service=Elasticache の場合、CopySnapshot アクションが拒否されます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "elasticache:CopySnapshot", "Resource": [ "arn:aws:elasticache:*:*:snapshot:*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Project": "XYZ", "aws:RequestTag/Service": "Elasticache" } } } ] }
  6. リクエストタグ Project が欠落しているか、DevQA、または Prod と等しくない場合、CreateCacheCluster アクションが拒否されます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticache:CreateCacheCluster" ], "Resource": [ "arn:aws:elasticache:*:*:parametergroup:*", "arn:aws:elasticache:*:*:subnetgroup:*", "arn:aws:elasticache:*:*:securitygroup:*", "arn:aws:elasticache:*:*:replicationgroup:*" ] }, { "Effect": "Deny", "Action": [ "elasticache:CreateCacheCluster" ], "Resource": [ "arn:aws:elasticache:*:*:cluster:*" ], "Condition": { "Null": { "aws:RequestTag/Project": "true" } } }, { "Effect": "Allow", "Action": [ "elasticache:CreateCacheCluster", "elasticache:AddTagsToResource" ], "Resource": "arn:aws:elasticache:*:*:cluster:*", "Condition": { "StringEquals": { "aws:RequestTag/Project": [ "Dev", "Prod", "QA" ] } } } ] }

条件キーの詳細については、「条件キーの使用」を参照してください。