Amazon EKS 리소스를 태그로 구성하기
Amazon EKS 리소스를 태그로 구성하기
태그를 사용하면 Amazon EKS 리소스를 관리하는 데 도움이 돼요. 이 토픽에서는 태그 기능의 개요를 설명하고 태그를 만드는 방법을 보여줘요.
출처: 문서
본문
관련 토픽
- 태그 기본 사항
- 리소스 태그 지정하기
- 태그 제한 사항
- 과금을 위한 리소스 태그 지정
- 콘솔에서 태그 다루기
- CLI, API 또는 eksctl에서 태그 다루기
참고
태그는 Kubernetes 라벨(label)과 애노테이션(annotation)과는 별개인 메타데이터 유형이에요. 다른 메타데이터 유형에 대한 자세한 내용은 Kubernetes 문서의 다음 섹션을 참고하세요.
- Labels and Selectors
- Annotations
태그 기본 사항 (Tag basics)
태그는 AWS 리소스에 할당하는 라벨이에요. 각 태그는 키(key)와 선택적 값(value)으로 구성돼요.
태그를 사용하면 AWS 리소스를 분류할 수 있어요. 예를 들어 리소스를 용도, 소유자, 환경별로 분류할 수 있어요. 같은 유형의 리소스가 많을 때 특정 리소스에 할당한 태그를 사용해 그 리소스를 빠르게 식별할 수 있어요. 예를 들어 Amazon EKS 클러스터별로 일련의 태그를 정의해 각 클러스터의 소유자와 스택 수준을 추적할 수 있어요. 리소스 유형별로 일관된 태그 키 세트를 설계하는 것이 좋아요. 그러면 추가한 태그를 기준으로 리소스를 검색하고 필터링할 수 있어요.
태그를 추가한 뒤에는 언제든지 태그 키와 값을 편집하거나 리소스에서 태그를 제거할 수 있어요. 리소스를 삭제하면 그 리소스의 태그도 함께 삭제돼요.
태그는 Amazon EKS에 의미론적 의미를 가지지 않으며 문자 그대로 문자열로만 해석돼요. 태그 값을 빈 문자열로 설정할 수는 있지만 null로 설정할 수는 없어요. 리소스에 기존 태그와 같은 키를 가진 태그를 추가하면 새 값이 이전 값을 덮어써요.
AWS IAM(Identity and Access Management)을 사용한다면 AWS 계정에서 태그를 관리할 권한이 있는 사용자를 제어할 수 있어요.
리소스 태그 지정하기 (Tagging your resources)
다음 Amazon EKS 리소스가 태그를 지원해요.
- 클러스터(clusters)
- 관리형 노드 그룹(managed node groups)
- Fargate 프로필(Fargate profiles)
다음 방법으로 이 리소스들에 태그를 지정할 수 있어요.
- Amazon EKS 콘솔을 사용한다면 해당 리소스 페이지의 Tags 탭을 통해 새 리소스나 기존 리소스에 언제든지 태그를 적용할 수 있어요. 자세한 내용은 콘솔에서 태그 다루기를 참고하세요.
eksctl을 사용한다면--tags옵션으로 리소스 생성 시 태그를 적용할 수 있어요.- AWS CLI, Amazon EKS API 또는 AWS SDK를 사용한다면 관련 API 작업의
tags파라미터로 새 리소스에 태그를 적용할 수 있어요. 기존 리소스에는TagResourceAPI 작업으로 태그를 적용할 수 있어요. 자세한 내용은 TagResource를 참고하세요.
일부 리소스 생성 작업을 사용할 때는 리소스를 만드는 동시에 태그를 지정할 수도 있어요. 리소스를 만드는 동안 태그를 적용할 수 없으면 리소스 생성이 실패해요. 이 메커니즘은 태그를 지정하려는 리소스가 지정한 태그와 함께 생성되거나 전혀 생성되지 않도록 보장해요. 리소스를 만들 때 태그를 지정하면 리소스를 만든 뒤 별도의 태그 스크립트를 실행할 필요가 없어요.
태그는 만들어진 리소스와 연결된 다른 리소스로 전파(propagate)되지 않아요. 예를 들어 Fargate 프로필 태그는 그 프로필과 연결된 Pod 같은 다른 리소스로 전파되지 않아요.
태그 제한 사항 (Tag restrictions)
태그에는 다음 제한 사항이 적용돼요.
- 리소스에 최대 50개의 태그를 연결할 수 있어요.
- 한 리소스에 태그 키를 반복할 수 없어요. 각 태그 키는 고유해야 하며 값을 하나만 가질 수 있어요.
- 키는 UTF-8 기준 최대 128자까지 가능해요.
- 값은 UTF-8 기준 최대 256자까지 가능해요.
- 여러 AWS 서비스와 리소스가 태그 스키마를 사용한다면 사용하는 문자 유형을 제한하세요. 일부 서비스는 허용 문자에 제한이 있을 수 있어요. 일반적으로 허용되는 문자는 문자, 숫자, 공백과 다음 문자예요:
+-=._:/@. - 태그 키와 값은 대소문자를 구분해요.
- 키나 값의 접두사에
aws:또는AWS:(대소문자 조합 포함)를 사용하지 마세요. 이 접두사는 AWS 전용으로 예약되어 있어요. 이 접두사가 있는 태그 키나 값은 편집하거나 삭제할 수 없어요. 이 접두사가 있는 태그는 리소스당 태그 수 제한에 포함되지 않아요.
과금을 위한 리소스 태그 지정 (Tagging your resources for billing)
Amazon EKS 클러스터에 태그를 적용하면 Cost & Usage Reports에서 비용 할당(cost allocation)에 사용할 수 있어요. Cost & Usage Reports의 계측 데이터는 모든 Amazon EKS 클러스터의 사용량을 보여줘요. 자세한 내용은 AWS Billing 사용자 가이드의 AWS cost and usage report를 참고하세요.
AWS가 생성한 비용 할당 태그, 특히 aws:eks:cluster-name 태그를 사용하면 Cost Explorer에서 Amazon EC2 인스턴스 비용을 개별 Amazon EKS 클러스터별로 세분화해서 볼 수 있어요. 다만 이 태그는 컨트롤 플레인 비용은 포함하지 않아요. 이 태그는 Amazon EKS 클러스터에 참여하는 Amazon EC2 인스턴스에 자동으로 추가돼요. 이 동작은 인스턴스가 Amazon EKS 관리형 노드 그룹, Karpenter, 또는 Amazon EC2로 직접 프로비저닝되었는지와 무관하게 발생해요. 이 특정 태그는 50개 태그 제한에 포함되지 않아요. 이 태그를 사용하려면 계정 소유자가 AWS Billing 콘솔이나 API로 활성화해야 해요. AWS Organizations 관리 계정 소유자가 태그를 활성화하면 모든 조직 멤버 계정에서도 활성화돼요.
같은 태그 키 값을 가진 리소스를 기준으로 과금 정보를 구성할 수도 있어요. 예를 들어 여러 리소스에 특정 애플리케이션 이름으로 태그를 지정한 다음 과금 정보를 구성하면 여러 서비스에 걸친 해당 애플리케이션의 총 비용을 볼 수 있어요. 태그로 비용 할당 보고서를 설정하는 방법은 AWS Billing 사용자 가이드의 The Monthly Cost Allocation Report를 참고하세요.
참고
보고를 방금 활성화했다면 이번 달 데이터는 24시간 후에 볼 수 있어요.
Cost Explorer는 AWS Free Tier의 일부로 제공되는 보고 도구예요. Cost Explorer로 지난 13개월간 Amazon EKS 리소스 차트를 볼 수 있고, 향후 3개월의 예상 지출도 예측할 수 있어요. 시간에 따라 AWS 리소스에 지출한 비용의 패턴을 볼 수 있어요. 예를 들어 추가 조사가 필요한 영역을 식별하고 비용을 이해하는 데 쓸 수 있는 추세를 확인할 수 있어요. 데이터의 시간 범위를 지정하고 일별 또는 월별로 시간 데이터를 볼 수도 있어요.
콘솔에서 태그 다루기 (Working with tags using the console)
Amazon EKS 콘솔에서는 새 클러스터와 기존 클러스터 및 관리형 노드 그룹과 연결된 태그를 관리할 수 있어요.
Amazon EKS 콘솔에서 리소스별 페이지를 선택하면 해당 리소스 목록이 표시돼요. 예를 들어 왼쪽 탐색 창에서 Clusters를 선택하면 Amazon EKS 클러스터 목록이 표시돼요. 태그를 지원하는 리소스 목록에서 특정 클러스터 같은 리소스를 선택하면 Tags 탭에서 태그를 보고 관리할 수 있어요.
AWS Management Console의 Tag Editor를 사용하면 태그를 통합적으로 관리할 수 있어요. 자세한 내용은 AWS Tag Editor 사용자 가이드의 Tagging your AWS resources with Tag Editor를 참고하세요.
리소스 생성 시 태그 추가하기
Amazon EKS 클러스터, 관리형 노드 그룹, Fargate 프로필을 만들 때 태그를 추가할 수 있어요. 자세한 내용은 Amazon EKS 클러스터 생성을 참고하세요.
리소스에 태그 추가/삭제하기
클러스터와 연결된 태그를 리소스 페이지에서 직접 추가하거나 삭제할 수 있어요.
- Amazon EKS 콘솔을 엽니다.
- 탐색 모음에서 사용할 AWS 리전을 선택합니다.
- 왼쪽 탐색 창에서 Clusters를 선택합니다.
- 특정 클러스터를 선택합니다.
- Tags 탭을 선택한 다음 Manage tags를 선택합니다.
- Manage tags 페이지에서 필요에 따라 태그를 추가하거나 삭제합니다.
- 태그를 추가하려면 Add tag를 선택하고 각 태그의 키와 값을 지정합니다.
- 태그를 삭제하려면 Remove tag를 선택합니다.
- 추가하거나 삭제할 각 태그에 대해 이 과정을 반복합니다.
- Update를 선택해 마칩니다.
CLI, API 또는 eksctl에서 태그 다루기
다음 AWS CLI 명령 또는 Amazon EKS API 작업을 사용해 리소스의 태그를 추가·업데이트·나열·삭제할 수 있어요. eksctl은 하나의 명령으로 새 리소스를 만들면서 동시에 태그를 추가하는 데만 사용할 수 있어요.
| 작업 | AWS CLI | AWS Tools for Windows PowerShell | API action |
|---|---|---|---|
| 하나 이상의 태그 추가 또는 덮어쓰기 | tag-resource |
Add-EKSResourceTag |
TagResource |
| 하나 이상의 태그 삭제 | untag-resource |
Remove-EKSResourceTag |
UntagResource |
다음 예시는 AWS CLI로 리소스에 태그를 지정하거나 해제하는 방법을 보여줘요.
예시 1: 기존 클러스터에 태그 지정
다음 명령은 기존 클러스터에 태그를 지정해요.
aws eks tag-resource --resource-arn resource_ARN --tags team=devs
예시 2: 기존 클러스터에서 태그 해제
다음 명령은 기존 클러스터에서 태그를 삭제해요.
aws eks untag-resource --resource-arn resource_ARN --tag-keys tag_key
예시 3: 리소스의 태그 나열
다음 명령은 기존 리소스와 연결된 태그를 나열해요.
aws eks list-tags-for-resource --resource-arn resource_ARN
일부 리소스 생성 작업을 사용하면 리소스를 만드는 동시에 태그를 지정할 수 있어요. 다음 작업은 리소스 생성 시 태그 지정을 지원해요.
| 작업 | AWS CLI | AWS Tools for Windows PowerShell | API action | eksctl |
|---|---|---|---|---|
| 클러스터 생성 | create-cluster |
New-EKSCluster |
CreateCluster |
create cluster |
| 관리형 노드 그룹 생성* | create-nodegroup |
New-EKSNodegroup |
CreateNodegroup |
create nodegroup |
| Fargate 프로필 생성 | create-fargate-profile |
New-EKSFargateProfile |
CreateFargateProfile |
create fargateprofile |
관리형 노드 그룹을 만들 때 Amazon EC2 인스턴스에도 태그를 지정하려면 런치 템플릿(launch template)으로 관리형 노드 그룹을 생성하세요. 자세한 내용은 Amazon EC2 인스턴스 태그 지정하기를 참고하세요. 인스턴스가 이미 존재한다면 인스턴스에 수동으로 태그를 지정할 수 있어요. 자세한 내용은 Amazon EC2 사용자 가이드의 리소스 태그 지정하기를 참고하세요.