결론 : Terraform으로 Public ECR을 정의할때는 provider의 region을 us-east-1으로 설정해야 한다.
resource "aws_ecrpublic_repository" "example_ecrpublic" {
provider = aws.us-east-1
repository_name = "example_ecrpublic"
}
K8s 클러스터를 구성하기 위해 AWS Container registry를 Terraform으로 정의하고 있었는데, 다음과 같은 오류가 발생했다.
no such host라기에 웹 콘솔에서는 정상적으로 생성되는지 확인해 보았는데 정상적으로 생성되었다.
관리자도구를 켜서 생성시 API요청이 어떻게 날아가는지 확인해보니, terraform을 통해 생성 요청 URI경로와, 웹 콘솔 생성 요청 URI를 의 region이 서로 달랐다.
Terraform : api.ecr-public.ap-northeast-2.amazonaws.com
AWS console : ecr-public.us-east-1.amazonaws.com/
private repository를사용할때는 ap-northeast-2로 정상적으로 리소스가 생성이 되었는데,
public repository를 사용하니 us-east-1로 region을 지정해야 리소스가 정상적으로 생성된다.
https://github.com/hashicorp/terraform/issues/5137
관련 내용을 terraform issue에서 확인할 수 있었는데, aws는 public ecr을 us-east-1에서만 지원하기 때문에, terraform에서는 provider의 region을 us-east-1로 지정해야 한다.
'Infra' 카테고리의 다른 글
[Kafka] Kafka Streams State Store의 분산 구조와 스케일 아웃 (1) | 2024.10.27 |
---|---|
[MySQL] 바이너리 로그의 포맷은 왜 ROW를 권장하는가? (0) | 2023.09.04 |
[airflow] airflow-client-python 2.6.0 이하버전 airflow_client.client.exceptions.ApiTypeError: Invalid type for variable 'dag_run_timeout' (0) | 2023.05.16 |
[Nginx] Nginx 도입기(with SSL) (2) | 2022.10.03 |
[Husky] 커밋메시지 JIRA 티켓번호 자동화 (0) | 2022.08.22 |