ElastiCache 리소스에 태그 지정 - 아마존 포 ElastiCache 레디스용

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

ElastiCache 리소스에 태그 지정

클러스터 및 기타 ElastiCache 리소스 관리를 돕기 위해 태그 형식으로 각 리소스에 고유한 메타데이터를 할당할 수 있습니다. 태그를 사용하면 용도, 소유자 또는 환경을 기준으로 하는 등 AWS 리소스를 다양한 방식으로 분류할 수 있습니다. 이 기능은 동일 유형의 리소스가 많을 때 유용합니다. 지정한 태그에 따라 특정 리소스를 빠르게 식별할 수 있습니다. 이 주제에서는 태그를 설명하고 태그를 생성하는 방법을 보여줍니다.

주의

민감한 데이터를 태그에 포함하지 않는 것이 가장 좋습니다.

태그는 AWS 리소스에 할당하는 레이블입니다. 각 태그는 사용자가 정의하는 키와 선택적 값으로 구성됩니다. 태그를 사용하면 용도, 소유자 등을 기준으로 AWS 리소스를 다양한 방식으로 분류할 수 있습니다. 예를 들어, 계정의 ElastiCache 클러스터에 대해 각 인스턴스의 소유자와 사용자 그룹을 추적하는 데 도움이 되는 태그 세트를 정의할 수 있습니다.

각 리소스 유형에 대한 요건을 충족하는 태그 키 세트를 고안하는 것이 좋습니다. 일관된 태그 키 세트를 사용하면 리소스를 보다 쉽게 관리할 수 있습니다. 추가하는 태그에 따라 리소스를 검색하고 필터링할 수 있습니다. 효과적인 리소스 태그 지정 전략을 구현하는 방법에 대한 자세한 정보는 AWS 백서 태그 지정 모범 사례를 참조하세요.

태그는 ElastiCache에는 의미가 없으며 엄격하게 문자열로 해석됩니다. 또한 태그는 리소스에 자동으로 배정되지 않습니다. 태그 키와 값을 편집할 수 있으며 언제든지 리소스에서 태그를 제거할 수 있습니다. 태그의 값을 null로 설정할 수 있습니다. 해당 리소스에 대해 키가 기존 태그와 동일한 태그를 추가하는 경우 새 값이 이전 값을 덮어씁니다. 리소스를 삭제하면 리소스 태그도 삭제됩니다. 또한 복제 그룹에서 태그를 추가하거나 삭제하면 해당 복제 그룹의 모든 노드에서 해당 태그가 추가되거나 제거됩니다.

AWS Management Console, AWS CLI 및 ElastiCache API를 사용하여 태그 관련 작업을 수행할 수 있습니다.

IAM을 사용하는 경우 AWS 계정에서 태그를 생성, 편집 또는 삭제할 수 있는 권한이 있는 사용자를 제어할 수 있습니다. 자세한 내용은 리소스 수준 권한 섹션을 참조하세요.

계정에 이미 존재하는 대부분의 ElastiCache 리소스에 태그를 지정할 수 있습니다. 아래의 표에는 태그 지정을 지원하는 리소스가 나와 있습니다. AWS Management Console을 사용 중인 경우 Tag Editor를 사용하여 리소스에 태그를 적용할 수 있습니다. 일부 리소스 화면을 사용하면 리소스를 생성할 때 리소스에 대해 태그를 지정할 수 있습니다. 예를 들어 Name의 키가 있는 태그와 지정하는 값이 있습니다. 대부분의 경우, 콘솔은 리소스 생성 직후(리소스 생성 중이 아니라) 태그를 적용합니다. 콘솔은 Name 태그에 따라 리소스를 조직할 수 있지만 이 태그는 ElastiCache 서비스에 대한 의미가 없습니다.

또한 일부 리소스 생성 작업에서는 리소스 생성 시 리소스의 태그를 지정할 수 있습니다. 리소스 생성 도중 태그를 적용할 수 없는 경우, 리소스 생성 프로세스가 롤백됩니다. 이는 태그를 사용하여 리소스가 생성되거나 아예 리소스가 생성되지 않도록 하고 언제든 태그 지정되지 않은 리소스가 남지 않게 합니다. 생성 시 리소스에 태그를 지정하면 리소스 생성 후 사용자 지정 태그 지정 스크립트를 실행할 필요가 없습니다.

Amazon ElastiCache API, AWS CLI 또는 AWS SDK를 사용 중인 경우 관련 ElastiCache API 작업의 Tags 파라미터를 사용하여 태그를 적용할 수 있습니다. 스크립트는 다음과 같습니다.

  • CreateServerlessCache

  • CreateCacheCluster

  • CreateReplicationGroup

  • CopyServerlessCacheSnapshot

  • CopySnapshot

  • CreateCacheParameterGroup

  • CreateCacheSecurityGroup

  • CreateCacheSubnetGroup

  • CreateServerlessCacheSnapshot

  • CreateSnapshot

  • CreateUserGroup

  • CreateUser

  • PurchaseReservedCacheNodesOffering

다음 표는 태그를 지정할 수 있는 ElastiCache 리소스와 ElastiCache API, AWS CLI 또는 AWS SDK를 사용하여 생성 시 태그를 지정할 수 있는 리소스를 설명합니다.

ElastiCache 리소스에 대한 태그 지정 지원
Resource 태그 지원 생성 시 태그 지정 지원
serverlesscache
parametergroup
securitygroup
subnetgroup
replicationgroup
cluster
reserved-instance
serverlesscachesnapshot
스냅샷
사용자
usergroup
참고

글로벌 데이터 스토어에는 태그를 지정할 수 없습니다.

생성 시 태그를 지원하는 ElastiCache API 작업에 IAM 정책의 태그 기반 리소스 수준 권한을 적용하여 생성 시 리소스에 태그를 지정할 수 있는 사용자와 그룹을 세밀하게 제어할 수 있습니다. 리소스를 생성하면 태그가 즉시 적용되기 때문에 생성 단계부터 리소스를 적절하게 보호할 수 있습니다. 따라서 태그를 기반으로 리소스 사용을 제어하는 리소스 수준 권한이 즉시 발효됩니다. 이에 따라 더욱 정확한 리소스 추적 및 보고가 가능합니다. 새 리소스에서 태그 지정 사용을 적용하고 리소스에서 어떤 태그 키와 값이 설정되는지 제어할 수 있습니다.

자세한 내용은 리소스에 태그 지정 예제 섹션을 참조하세요.

결제를 위한 리소스 태그 지정에 대한 자세한 내용은 비용 할당 태그를 사용하여 비용을 모니터링합니다. 섹션을 참조하세요.

태그 지정에는 요청 작업의 일부로 다음 규칙이 적용됩니다.

  • 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:

    • 태그가 요청에 포함되어 있으면 요청 태그만 서버리스 캐시 스냅샷에 추가됩니다.

  • AddTagsToResourceRemoveTagsFromResource:

    • 태그는 복제 그룹에서 추가/제거되며 작업은 복제 그룹의 모든 클러스터에 전파됩니다.

    참고

    AddTagsToResourceRemoveTagsFromResource는 기본 파라미터 및 보안 그룹에 사용할 수 없습니다.

  • IncreaseReplicaCountModifyReplicationGroupShardConfiguration:

    • 복제 그룹에 추가된 모든 새 클러스터에는 복제 그룹과 동일한 태그가 적용됩니다.

태그에 적용되는 기본 제한은 다음과 같습니다.

  • 리소스당 최대 태그 수 – 50개

  • 각 리소스에 대해 각 태그 키는 고유하며 하나의 값만 가질 수 있습니다.

  • 최대 키 길이는 유니코드 문자(UTF-8) 128자입니다.

  • 최대 값 길이는 유니코드 문자(UTF-8) 256자입니다.

  • ElastiCache는 태그에 모든 문자를 사용할 수 있지만, 다른 서비스에는 제한이 적용될 수 있습니다. 서비스에서 허용되는 문자는 UTF-8로 표현할 수 있는 문자, 숫자 및 공백과 특수 문자 + - = . _ : / @입니다.

  • 태그 키와 값은 대/소문자를 구분합니다.

  • aws: 접두사는 AWS용으로 예약되어 있습니다. 태그에 이 접두사가 있는 태그 키가 있는 경우 태그의 키 또는 값을 편집하거나 삭제할 수 없습니다. aws: 접두사가 지정된 태그는 리소스당 태그 수 제한에 포함되지 않습니다.

태그에만 기초하여 리소스를 종료, 중지 또는 삭제할 수 없습니다. 리소스 식별자를 지정해야 합니다. 예를 들어 DeleteMe라는 태그 키로 태그를 지정한 스냅샷을 삭제하려면 해당 스냅샷의 리소스 식별자(예: DeleteSnapshot)를 지정하여 snap-1234567890abcdef0 작업을 사용해야 합니다.

태그를 지정할 수 있는 ElastiCache 리소스에 대한 자세한 내용은 태그 지정이 가능한 리소스 섹션을 참조하세요.

  • 태그를 사용한 서버리스 캐시 생성

    aws elasticache create-serverless-cache \ --serverless-cache-name CacheName \ --engine redis --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 redis \ --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  • 태그를 사용하여 서버리스 스냅샷 생성

    aws elasticache create-serverless-cache-snapshot \ --serverless-cache-name testing-tags \ --serverless-cache-snapshot-name bkp-testing-tags-scs \ --tags Key="work",Value="foo"
  • 태그를 사용하여 스냅샷 생성

    이 경우 요청에 태그를 추가하면 복제 그룹에 태그가 포함되어 있더라도 스냅샷은 요청 태그만 받습니다.

    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가 누락되었거나 Dev, QA 또는 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" ] } } } ] }

조건 키 관련 내용은 조건 키 사용 섹션을 참조하세요.