[DevOps]Route 53 프라이빗 호스팅 영역을 다른 AWS 계정의 VPC와 연결하려면 어떻게 해야 하나요?
https://repost.aws/ko/knowledge-center/route53-private-hosted-zone
AWS CLI로만 연결이 가능하고
연결된 것은 AWS Route53의 프라이빗 도메인의 호스팅 세부영역에서 확인 가능하다.
---
Amazon Route 53 프라이빗 호스팅 영역을 다른 AWS 계정에 속한 Virtual Private Cloud(VPC)와 연결하고 싶습니다.
해결 방법
다음 해결 방법에서는 다음 옵션 중 하나를 사용하여 명령을 실행합니다.
- 옵션 1: AWS Command Line Interface(AWS CLI). 이 해결 방법에서는 두 가지 예제 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스(하나는 계정 A에, 다른 하나는 계정 B에 있음)를 사용합니다. 두 개의 Amazon EC2 인스턴스가 없거나 새 EC2 인스턴스를 시작할 수 있는 액세스 권한이 없는 경우에는 로컬 시스템에서 AWS CLI를 사용합니다. 두 계정의 올바른 AWS Identity and Access Management(AWS IAM) 보안 인증 정보를 사용합니다. 자세한 내용은 IAM Identity Center에서 활성화된 명명된 프로필 사용을 참조합니다.
참고: AWS CLI 명령을 실행할 때 오류가 발생한다면 최신 AWS CLI 버전을 사용하고 있는지 확인합니다. - 옵션 2: AWS CloudShell(AWS CLI 미설치)
참고: 이 프로세스에 AWS SDK 또는 Route 53 API를 사용할 수도 있습니다.
- 계정 A의 EC2 인스턴스에 연결합니다.
- AWS CLI를 사용하는 경우 다음 명령을 실행하여 AWS CLI 버전을 업데이트합니다. Route 53 액세스 권한이 있는 AWS Identity and Access Management(AWS IAM) 사용자의 보안 인증을 사용하도록 AWS CLI를 구성합니다.
pip3 install awscli --upgrade --user
- 계정 A의 EC2 인스턴스에서 다음 명령을 실행하여 사용 가능한 호스팅 영역을 나열합니다. 계정 B와 연결하려는 계정 A의 호스팅 영역 ID를 기록해 둡니다.
aws route53 list-hosted-zones
- 계정 A의 EC2 인스턴스에서 다음 명령을 실행합니다. 명령 결과에는 프라이빗 호스팅 영역에 연결할 수 있는 다른 계정의 VPC가 나열됩니다. 명령 결과에 나열된 계정은 하나 이상의 ** CreateVPCAssociationAuthorization** 요청을 제출한 계정입니다.
aws route53 list-vpc-association-authorizations --hosted-zone-id <hosted-zone-id>
참고: 계정 B의 VPC가 VPC 연결 승인 목록에 나타나지 않는다면, 5단계로 진행합니다. VPC가 목록에 표시된다면, 6단계로 진행합니다.
- 계정 A의 EC2 인스턴스에서 다음 명령을 실행합니다. 이 명령은 계정 A의 프라이빗 호스팅 영역과 계정 B의 VPC 간의 연결을 승인합니다. 다음 명령은 이전 단계에서 얻은 호스팅 영역 ID를 사용합니다. 계정 B의 VPC AWS 리전 및 ID를 사용합니다.
참고: 다음 시나리오에 해당하는 상황이라면, 명령에**--region** 명령을 입력합니다.
- 다른 리전의 EC2 인스턴스에서 명령을 실행하고 있습니다.
- 사용자의 보안 인증 정보가 us-east-1 이외의 리전과 연결되어 있습니다.
aws route53 create-vpc-association-authorization --hosted-zone-id <hosted-zone-id> --vpc VPCRegion=<region>,VPCId=<vpc-id> --region us-east-1
- 계정 B의 EC2 인스턴스에 연결합니다.
- 계정 B의 EC2 인스턴스에서 다음 명령을 실행합니다. 이 명령은 계정 A의 프라이빗 호스팅 영역과 계정 B의 VPC 간에 연결을 생성합니다. 3단계의 호스팅 영역 ID를 사용합니다. 계정 B의 VPC 리전 및 ID를 사용합니다.
참고: AssociateVPCWithHostedZone 및 DescribeVpcs API 권한을 가진 IAM 사용자 또는 역할을 사용하여 계정 B에서 다음 명령을 실행합니다.
aws route53 associate-vpc-with-hosted-zone --hosted-zone-id <hosted-zone-id> --vpc VPCRegion=<region>,VPCId=<vpc-id> --region us-east-1
**참고:**샘플 결과는 PENDING 상태가 표시될 수 있습니다. 이는 VPC가 프라이빗 호스팅 영역을 사용하여 DNS 확인을 수행할 수 없기 때문에 발생합니다. 프라이빗 호스팅 영역이 VPC와 연결되고 변경 사항이 전파되는 데 몇 분 정도 걸릴 수 있습니다./p >
- 연결을 생성한 후에는 연결 승인을 삭제하는 것이 가장 좋습니다. 이 단계를 진행하면 나중에 동일한 연결을 다시 만들 수 없습니다. 승인을 삭제하려면 계정 A의 EC2 인스턴스에 다시 연결한 후 다음 명령을 실행합니다.
aws route53 delete-vpc-association-authorization --hosted-zone-id <hosted-zone-id> --vpc VPCRegion=<region>,VPCId=<vpc-id> --region us-east-1
- 프라이빗 호스팅 영역에 대한 VPC 연결을 확인하려면 다음 단계를 완료합니다.
Route 53 콘솔을 엽니다.
프라이빗 호스팅 영역 도메인 이름을 선택합니다.
계정 B 호스팅 영역 세부 정보의 VPC ID를 확인합니다.
이제 계정 B의 VPC에 있는 EC2 인스턴스가 계정 A의 프라이빗 호스팅 영역에 있는 레코드를 확인할 수 있습니다.
댓글 영역