AWS

[AWS] Route53 Private DNS로 ALB와 연동하기

hanrabong 2022. 3. 24. 13:56

 

 AWS 서비스에는 Route 53이라는 클라우드 DNS(Domain Name System)이 있습니다. AWS 내에서 도메인을 구입하여 DNS 서비스를 사용하여도 되고 다른 사이트에서 도메인을 구입한 후에 사용하여도 됩니다.

 

 서비스를 할 때는 인터넷을 통해 누구나 접속할 수 있는 Public DNS를 사용해야하지만 내부 Cloud에서만 사용할 때는 Private DNS를 사용해도 됩니다. MSA 아키텍쳐에서 서로 요청을 할 때 IP가 아니라 도메인을 사용하면 여러 장점이 있기에 도메인을 사용합니다. 직접 AWS Route53을 사용하여 Private Hosted Zone을 생성해 보겠습니다.

 

 

실습. Route53에서 Private Hosted Zone을 만들어서 ALB와 연동하기


 실습에 앞서, AWS 계정이 필요하고 Application Load balancer 와 연결을 할 것이기에 ALB도 필요합니다. ALB랑 연결되어 있는 타겟 그룹에 대한 설정은 아무것도 안해도 괜찮습니다. 간단하게 query문이나 조건을 통해서 테스트할 수 있습니다.

 

 

1. Private Hosted Zone 생성

 

AWS에 로그인을 하고 Route53 서비스에 접속합니다. 그리고 호스팅 영역을 클릭해서 호스팅 영역 생성을 클릭해 줍니다.

호스팅 영역

 

 

 호스팅 영역 생성 페이지는 다음과 같습니다.

호스팅영역 생성

 위에서 자신이 사용할 도메인 이름과 설명을 적어줍니다. 유형에는 2가지가 있습니다. 퍼블릭 호스팅 영역을 선택할 경우 인터넷에서 누구나 접속할 수 있는 Hosting zone을 생성할 수 있고 프라이빗 호스팅 영역을 선택할 경우 VPC내에서만 도메인을 사용할 수 있습니다. 이번 실습에서는 프라이빗 호스팅 영역을 사용할 것이기에 프라이빗 호스팅 영역을 선택해줍니다.

 프라이빗 호스팅 영역의 경우 VPC 단위로 사용하기에 도메인을 사용하고 싶은 VPC를 다 등록해주면 됩니다. VPC가 있는 리전을 선택하고 존재하는 VPC ID를 선택하고 호스팅 영역을 생성해주면 됩니다.

 

2. ALB와 연동

  호스팅 영역을 생성했으면 이제 해당 호스팅 영역에 레코드를 생성해 주겠습니다.

 

 

 위에서 만든 호스팅영역에 들어가서 레코드 생성을 클릭해줍니다.

레코드

 

 레코드 생성을 클릭하면 다음과 같은 창을 볼 수 있습니다.

레코드 생성 페이지

 레코드 이름을 원하는 이름을 선택합니다. 그리고 레코드 유형을 선택해줍니다. 레코드 유형에는 다음과 같은 종류가 있습니다. 아래의 종류보다 더 다양한 종류가 존재합니다.

  • A: 도메인 주소를 IPv4 & AWS 리소스 매핑
  • AAAA: 도메인 주소를 IPv6 & AWS 리소스 매핑
  • CNAME: 다른 도메인 이름 & AWS 리소스 매핑
  • MX: 도메인에 대한 메일 서버 정보 지정
  • TXT: 이메일 발시자나 애플리케이션별 값을 확인할 때 사용
  • PTR: IP 주소를 도메인 이름에 매핑(역방향)

 저는 AWS 서비스인 ALB에 연결하기 위해 A 레코드 유형을 선택하겠습니다. A 레코드, AAAA 레코드, CNAME 레코드에서 지원하는 AWS 리소스가 다르기에 확인해서 매핑을 해주면 됩니다.

 

 A 레코드 유형을 선택하고 매핑할 리소스를 선택해주겠습니다. 값이라고 적힌 상자 옆에 별칭을 클릭하면 AWS 리소스랑 연결을 할 수 있습니다. Application load balancer를 선택하고 원하는 리전과 연결할 load balancer의 DNS 이름을 선택해주면 됩니다.

레코드 트래픽 라우팅 대상

 그리고 라우팅 정책을 선택하여 레코드 생성을 해주면 됩니다.

 

3. 테스트

 이제 테스트를 해보려고 합니다. Load balancer에 연결되어 있는 서버에서 응답을 보내주면 좋겠지만 그렇지 않을 경우를 대비해 load balancer 리스너 규칙을 수정하겠습니다.

 

ALB 리스너 규칙 편집

 다음과 같이 ?test=true로 요청이 올 경우 test test!! 응답을 반환하도록 규칙을 수정하였습니다.

 

 또한 테스트 전에 VPC의 DNS 속성을 확인해주겠습니다. Pulbic host zone을 사용하겠다고 설정한 VPC에 들어가서 DNS 호스트이름과 DNS 확인이 활성화되어있는지 확인해 줍니다.

VPC DNS 속성

 

 둘 다 활성화가 되어 있으면 바로 테스트를 해봐도 되고 안 되어 있으면 활성화를 시켜줍니다. 다음과 같이 VPC를 선택하여 작업을 클릭하고 DNS 호스트이름 편집, DNS 확인 편집에 들어가서 활성화 시켜주면 됩니다.

VPC 작업

 

 VPC의 DNS 호스트이름과 DNS 확인이 둘다 true로 설정되는 경우만 다음 기능을 사용할 수 있습니다.

두 속성이 모두 true로 설정되는 경우 다음이 발생합니다.
- 퍼블릭 IP 주소를 갖는 인스턴스가 해당하는 퍼블릭 DNS 호스트 이름을 받습니다.
- Amazon Route 53 Resolver 서버는 Amazon에서 제공한 프라이빗 DNS 호스트 이름을 확인할 수 있습니다.

 

위의 설정이 끝나면 해당 VPC에 EC2를 하나 생성해서 요청을 보내보겠습니다.

 

test

저는 www.naver.com으로 레코드를 생성했기에 다음과 같이 테스트를 하였습니다. 테스트 결과 test test!! 라는 결과 메시지를 받았습니다. test가 잘 안되거나 요청이 잘 안가면 먼저 ALB url로 확인을 해보고 그래도 안되면 보안그룹등 네트워크 설정을 잘해주었는지 확인을 해보면 해결할 수 있습니다.

 

 

 

※ 혼자 공부하며 정리한 내용이니 틀린 부분이나 궁금한 점 언제든 댓글 남겨주세요