Amazon ECS 단기 서비스 ARN을 긴 ARN으로 마이그레이션
Amazon ECS는 각 서비스에 고유한 Amazon 리소스 이름(ARN)을 할당합니다. 2021년 이전에 생성된 서비스에는 짧은 ARN 형식이 사용됩니다.
arn:aws:ecs:
region
:aws_account_id
:service/service-name
클러스터 이름을 포함하도록 Amazon ECS의 ARN 형식이 변경되었습니다. 긴 ARN 형식은 다음과 같습니다.
arn:aws:ecs:
region
:aws_account_id
:service/cluster-name
/service-name
서비스에 태깅하려면 서비스에 긴 ARN 형식이 있어야 합니다.
서비스를 다시 생성할 필요 없이, 짧은 ARN 형식의 서비스를 긴 ARN 형식으로 마이그레이션할 수 있습니다. 이는 API, CLI 또는 콘솔을 사용하여 수행할 수 있습니다. 마이그레이션 작업은 취소할 수 없습니다.
AWS CloudFormation을 사용하여 짧은 ARN 형식으로 서비스에 태깅하려면 API, CLI 또는 콘솔을 사용하여 서비스를 마이그레이션해야 합니다. 마이그레이션이 완료되면 AWS CloudFormation을 사용하여 서비스에 태깅할 수 있습니다.
Terraform을 사용하여 짧은 ARN 형식으로 서비스에 태깅하려면 API, CLI 또는 콘솔을 사용하여 서비스를 마이그레이션해야 합니다. 마이그레이션이 완료되면 Terraform을 사용하여 서비스에 태깅할 수 있습니다.
마이그레이션이 완료되면 서비스가 다음과 같이 변경됩니다.
-
긴 ARN 형식
arn:aws:ecs:
region
:aws_account_id
:service/cluster-name
/service-name
-
콘솔을 사용하여 마이그레이션하는 경우 Amazon ECS는 키가 ‘ecs:serviceArnMigratedAt’로 설정되고, 값이 마이그레이션 타임스탬프(UTC 형식)로 설정된 태그를 서비스에 추가합니다.
이 태그는 태그 할당량에 반영됩니다.
-
AWS CloudFormation 스택의
PhysicalResourceId
가 서비스 ARN을 나타내는 경우 값은 변경되지 않으며 짧은 서비스 ARN으로 유지됩니다.
사전 조건
서비스 ARN을 마이그레이션하기 전에 다음 작업을 수행합니다.
-
짧은 서비스 ARN이 있는지 확인하려면 Amazon ECS 콘솔에서 서비스 세부 정보를 보거나(서비스의 ARN 형식이 짧으면 경고가 표시됨)
describe-services
에서 반환되는serviceARN
반환 파라미터를 확인합니다. ARN에 클러스터 이름이 포함되지 않은 경우 짧은 ARN입니다. 짧은 ARN의 형식은 다음과 같습니다.arn:aws:ecs:
region
:aws_account_id
:service/service-name
-
생성 날짜를 기록해 둡니다.
짧은 ARN 형식을 사용하는 IAM 정책이 있는 경우 긴 ARN 형식으로 업데이트합니다.
user input placeholder
를 사용자의 정보로 바꿉니다.arn:aws:ecs:
region
:aws_account_id
:service/cluster-name
/service-name
자세한 내용은 AWS Identity and Access Management 사용 설명서에서 IAM 정책 편집을 참조하세요.
짧은 ARN 형식을 사용하는 도구가 있는 경우 긴 ARN 형식으로 업데이트합니다.
user input placeholder
를 사용자의 정보로 바꿉니다.arn:aws:ecs:
region
:aws_account_id
:service/cluster-name
/service-name
-
긴 서비스 ARN 형식을 활성화합니다.
serviceLongArnFormat
옵션을enabled
로 설정하여put-account-setting
를 생성합니다. 자세한 내용은 Amazon Elastic Container Service API 참조에서 put-account-setting을 참조하세요.서비스의
createdAt
날짜를 알 수 없는 경우 루트 사용자로 명령을 실행합니다.aws ecs put-account-setting --name serviceLongArnFormat --value enabled
출력 예시
{ "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::
123456789012:role/your-role
", "type": user } } -
긴 태스크 ARN 형식을 활성화합니다. 이렇게 하면 서비스의 일부로 실행 중인 태스크가 긴 ARN 형식을 가질 수 있습니다.
taskLongArnFormat
옵션을enabled
로 설정하여put-account-setting
를 생성합니다. 자세한 내용은 Amazon Elastic Container Service API 참조에서 put-account-setting을 참조하세요.서비스의
createdAt
날짜를 알 수 없는 경우 루트 사용자로 명령을 실행합니다.aws ecs put-account-setting --name taskLongArnFormat --value enabled
출력 예시
{ "setting": { "name": "taskLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::
123456789012:role/your-role
", "type": user } }
절차
다음을 사용하여 서비스 ARN을 마이그레이션합니다.
https://console.aws.amazon.com/ecs/v2
에서 콘솔을 엽니다. -
클러스터(Clusters) 페이지에서 클러스터를 선택합니다.
-
서비스 섹션에서 ARN 열에 경고가 있는 서비스를 선택합니다.
서비스 세부 정보 페이지가 나타납니다.
-
긴 ARN으로 마이그레이션을 선택합니다.
서비스 마이그레이션 대화 상자가 나타납니다.
-
[Migrate]를 선택합니다.
사전 조건을 완료하고 나면 서비스에 태깅할 수 있습니다. 다음 명령 실행:
짧은 ARN이 있는 서비스에 대한 tag-resource
API 요청에서 긴 ARN 형식을 전달할 경우, Amazon ECS는 긴 ARN 형식을 사용하도록 서비스를 마이그레이션하라는 신호로 간주합니다.
aws ecs tag-resource \ --resource-arn arn:aws:ecs:
region
:aws_account_id
:service/cluster-name
/service-name
--tags key=key1
,value=value1
다음 예에서는 키가 ‘TestService’로, 값이 ‘WebServers’로 각각 설정된 태그로 MyService를 태깅합니다.
aws ecs tag-resource \ --resource-arn arn:aws:ecs:us-east-1:123456789012:service/MyCluster/MyService --tags key=TestService1,value=WebServers
사전 조건을 완료하고 나면 서비스에 태깅할 수 있습니다. aws_ecs_service
리소스를 생성하고 tags
참조를 설정합니다. 자세한 내용은 Terraform 설명서에서 Resource: aws_ecs_service
resource "aws_ecs_service" "MyService" { name = "example" cluster = aws_ecs_cluster.MyService.id tags = { "Name" = "MyService" "Environment" = "Production" "Department" = "QualityAssurance" } }
다음 단계
서비스에 태그를 추가할 수 있습니다. 자세한 내용은 Amazon ECS 리소스에 태그 추가 섹션을 참조하세요.
Amazon ECS가 태스크 정의 또는 서비스에서 태스크로 태그를 전파하도록 하려면 propagateTags
파라미터를 사용하여 update-service
를 실행합니다. 자세한 내용은 AWS Command Line Interface 참조에서 update-service를 참조하세요.
문제 해결
일부 사용자는 짧은 ARN 형식에서 긴 ARN 형식으로 마이그레이션할 때 다음 오류가 발생할 수 있습니다.
There was an error while migrating the ARN of service
service-name
. The specified account does not have
serviceLongArnFormat or taskLongArnFormat account settings enabled. Add account
settings in order to enable tagging.
serviceLongArnFormat
계정 설정을 이미 활성화했지만 여전히 이 오류가 발생하는 경우 서비스를 처음 생성한 특정 IAM 위탁자에 대해 긴 ARN 형식의 계정 설정이 활성화되지 않았기 때문일 수 있습니다.
-
서비스를 생성한 위탁자를 식별합니다.
콘솔에서 정보는 Amazon ECS 콘솔의 서비스 세부 정보 페이지에 있는 구성 및 네트워킹 탭의 생성자 필드에서 확인할 수 있습니다.
AWS CLI의 경우 다음 명령을 실행합니다.
모든
사용자 입력
을 사용자의 값으로 바꿉니다.aws ecs describe-services --cluster
cluster-name
--servicesservice-name
--query 'services[0].{createdBy: createdBy}'
-
해당 위탁자에 대해 필요한 계정 설정을 활성화합니다. 이 작업을 다음 중 한 가지 방법으로 수행할 수 있습니다.
-
해당 위탁자의 IAM 사용자 또는 역할을 수임합니다. 그런 다음
put-account-setting
을(를) 실행합니다. -
루트 사용자를 사용하여 명령을 실행하고
principal-arn
으로 생성 위탁자를 지정합니다.예제.
principal-arn
을 1단계의 값으로 바꿉니다.aws ecs put-account-setting --name serviceLongArnFormat --value enabled --principal-arn
arn:aws:iam::123456789012:role/jdoe
-
두 방법 모두 서비스를 생성한 위탁자에서 필요한 serviceLongArnFormat
계정 설정을 활성화하여 ARN 마이그레이션을 진행할 수 있습니다.