초보 개발자

AWS 다른 계정 간의 VPC에 프라이빗 호스트존을 연결시키는법. 본문

AWS

AWS 다른 계정 간의 VPC에 프라이빗 호스트존을 연결시키는법.

taehyeki 2023. 5. 11. 10:55

프라이빗 호스트 존

프라이빗 호스트 존이란, AWS의 Route 53의 기능 중 하나이다. 도메인을 생성(호스팅 영역)할 때

퍼블릭 호스트 존, 프라이빗 호스트 존을 선택해야 하는데,  이 때 퍼블릭 호스트 존을 선택하면 인터넷을 통해서 도메인에 접속할 수 있도록 하는 것이고, 프라이빗 호스트 존을 선택하면 도메인을 같은 VPC내에서만 사용할 수 있도록 하는 것이다.

 

아래의 도식과 같이 퍼블릭 서브넷에 있는 EC2에서 프라이빗 서브넷에 있는 EC2에 접속할 때 프라이빗 호스트 존을 사용하면 아이피로 접속하는 것이 아닌 도메인으로 접속할 수 있게 되는 것이다.

프라이빗 호스트 실습

더보기

1. 프라이빗 호스팅 영역 생성

Route 53에 들어가서 호스팅영역을 생성해보자

2. 레코드 생성

원하는 라우팅을 선택 한 뒤

도메인 이름을 정하고 프라이빗 서브넷에 있는 ec2의 프라이빗 ip를 적는다.

3. 퍼블릭 ec2에 접속 후 프라이빗 호스팅 사용

 

먼저 nslookup을 사용하여 잘 등록이 되었는지 확인하고

ping을 사용해 요청이 잘 가는지 확인해보자 이 때 보안그룹에 포트가 개방이 되어 있지 않으면 ping이 동작하지 않을 수 있다.

 

한 계정일 경우에는 단순히 위와 같은 방법으로 해결이 되지만.

 

다른 계정에 있는 프라이빗 호스팅 존을 이용할 수 있을까 ? 이 경우 먼저 다른 VPC와의 연결을 해주어야 한다. 여러 방법이 있겠지만 VPC 피어싱을 이용하여 연결해주자. A account ( 좌측 )의 인스턴스에서 B account ( 우측 ) 프라이빗 호스팅 영역으로 접속하려고 한다.

피어싱을 한다고 해서 바로 연결이 가능하냐 ? 그건 또 아니다.

A acount에서 B account의 프라이빗 호스트존에 접속할 수 있도록 설정을 따로 해주어야 한다.

 

준비물은 다음 세 가지와 같다.

1. B의 호스팅 영역 ID,

2. A의 VPC Region,

3. A의 VPC ID

 

AWS CLI를 사용해서 설정을 해주자. 먼저 B account의 configure로 접속하여 다음과 같이 적어준다.

aws route53 create-vpc-association-authorization \
  --hosted-zone-id Z3A22JQCBOXXXX \
  --vpc VPCRegion=ap-northeast-1,VPCId=vpc-4d4bXXXX

다음은 A account의 configure로 접속하여 다음과 같이 적어준다.

aws route53 associate-vpc-with-hosted-zone \
  --hosted-zone-id Z3A22JQCBOXXXX \
  --vpc VPCRegion=ap-northeast-1,VPCId=vpc-4d4bXXXX

 

이렇게 하면 B의 호스팅 존에서 Associated VPCs에 A의 VPC도 적혀있는 것을 확인할 수가 있다.

 

이를통해 요청을 보내보면 잘 동작하는 것을 확인할 수 있다.

 

마지막으로 연결 권한 부여를 삭제해줘야 한다고하는데 사실 이 부분은 잘 이해가 가지 않는다. 하지만 AWS에서 권하고 있으므로 꼭 해주자