티스토리 뷰
위와 같이 두 개의 서로 다른 AWS 계정이 있을 때 1111-1111-1111 어카운트에서 2222-2222-2222에 있는 example.host(private hosted zone)을 호출하기 위한 방법을 알아본다. 글을 본격적으로 읽기 전에 위에 이미지에서 AWS Account ID와 VPC ID를 잘 살펴봐두길 바란다.
먼저 2222-2222-2222 계정의 example.host에 vpc-1234를 추가해야 한다. 이 과정은 콘솔에서 지원하지 않기 때문에 aws cli를 통해 진행하도록 하자. 여기서 example.host의 Hosted zone ID는 2222..22라고 가정한다. 자, 그럼 아래와 같이 계정 B에 VPC 연결 권한부터 부여하도록 하자. 명령어 마지막에 profile을 보면 알겠지만 2222-2222-2222 계정에서 실행되는 명령어다.
aws route53 create-vpc-association-authorization --hosted-zone-id 2222..22 --vpc VPCRegion=<계정_1111-1111-1111의_VPC_리전>,VPCId=vpc-1234 --profile <계정_2222-2222-2222_프로파일>
권한 부여가 끝났으면 Private Hosted Zone에 연결하도록 한다. profile을 유심히 보자. 1111-1111-1111 계정에서 실행된다.
aws route53 associate-vpc-with-hosted-zone --hosted-zone-id 2222..22 --vpc VPCRegion=<계정_1111-1111-1111의_VPC_리전>,VPCId=vpc-1234 --profile <계정_1111-1111-1111_프로파일>
여기까지 완료 됐으면 아래 명령어를 통해 hosted zone에 VPC가 정상적으로 할당 됐는지 확인 가능하다. 물론 콘솔에서도 확인 가능하다.
aws route53 get-hosted-zone --id 2222.22 --query 'VPCs[*].{ID: VPCId, Region: VPCRegion}' --output table
---------------------------------------------
| GetHostedZone |
+------------------------+------------------+
| ID | Region |
+------------------------+------------------+
| vpc-1234 | ap-northeast-2 |
+------------------------+------------------+
이제 1111-1111-1111 계정에서 2222-2222-2222에 있는 example.host를 호출할 기본 준비가 끝났다. 다음으로 두 개의 VPC가 통신할 수 있도록 네트워크를 구성해줘야 한다. VPC Peering 혹은 Transit Gateway를 사용하도록 한다. VPC Peering으로 진행하는 경우 실제 사용하는 Routing table에 라우팅까지 넣어줘야 한다. (여기서 따로 다루진 않겠다)
최종 모습은 아래와 같다. VPC Peering과 Routing table까지 설정된 모습이다. 라우팅 테이블의 아이콘이 172.16.X.0으로 되어 있어서 2222-2222-2222 계정에 있는 아이콘이 어색하게 보일 수 있다. 단순히 아이콘임을 명심하자.
마무리가 됐다면 앞서 진행한 권한은 제거하도록 하자.
aws route53 delete-vpc-association-authorization --hosted-zone-id 2222.22 --vpc VPCRegion=<계정_1111-1111-1111의_VPC_리전>,VPCId=vpc-1234 --profile <계정_2222-2222-2222_프로파일>
무조건 삭제해야 하는가?라는 의문이 든다면 권장 사항이다. AWS의 공식 문서 3번을 살펴보면 아래와 같은 문장을 볼 수 있다.
권장 사항 – VPC와 호스팅 영역을 연결할 수 있는 권한을 삭제합니다. 권한을 삭제하더라도 연결에는 아무런 영향도 미치지 않으며, 오히려 향후 VPC와 호스팅 영역을 다시 연결하는 일을 방지할 수 있습니다. VPC와 호스팅 영역을 다시 연결하려면 이번 절차에서 1 및 2단계를 반복해야 하기 때문입니다.
생각해 보면 단순하다. 권한을 받은 상태인지 여부가 콘솔에서 확인되지 않기 때문이다. 그리고 이미 권한을 받았는데 다시 요청한다고 해서 어떤 영향을 주는 것도 아니다. 하지만 굳이 불필요한 설정을 계속 유지하게 되면 먼 미래에 히스토리 관리가 안되고 불편을 겪게 될 것이므로 제거해 주는 게 좋겠다. 이런 사소한 것도 결국은 부채가 된다.
# 마무리
설정 몇 개로 두 개의 AWS 환경을 연결해 보았다. 간단한 설정이지만 어떤 profile 명령어를 입력해야 하는지 정확히 알지 못하면 터미널에서 오류를 보게 될 것이고, 이것저것 값을 바꾸다 보면 VPC ID, Account에 따른 경우의 수만큼 명령어를 입력해봐야 할 것이다. 실제로 본인은 Hosted zone ID가 1111-1111-1111쪽을 말하는 것인지 2222-2222-2222를 말하는 것인지 알지 못해서 고생을 했다. 그래서 아래와 같은 오류를 보기도 했다. 누군가에게는 도움이 됐기를 바란다!
An error occurred (ConflictingDomainExists) when calling the AssociateVPCWithHostedZone operation:
The VPC vpc-1234 in region ap-northeast-2 has already been associated with the hosted zone 2222.22
with the same domain name.
최종 모습에서 아쉬운 점은 1111-1111-1111쪽에서는 example.host로 연결된다는 정보를 콘솔에서 확인할 수 없다는 점이다. Route53에 어떤 식으로든 표시를 해준다면 운영 편의성이 많이 올라가지 않을까? :)
'개발 > Cloud (AWS)' 카테고리의 다른 글
AWS Node Termination Handler (0) | 2024.07.27 |
---|---|
AWS Resilience Hub - Fault Injection Service (0) | 2024.07.26 |
AWS Redshift: WLM, Queue, and Slot (0) | 2024.07.20 |
Amazon Redshift Serverless 비용 정리 (2) | 2023.06.05 |
Redshift 슈퍼계정 이름 변경 (0) | 2021.11.10 |
- Total
- Today
- Yesterday