새로운 프로젝트 세팅을 위해 AWS를 설정하고 있었다.
이왕 새로 만들겸 VPC부터 새로 만들어보자! 생각이 들어서 VPC랑 서브넷이랑 이것저것 만들고 있었는데..
RDS를 만들던 도중에 아래 오류를 마주쳤다.
Cannot create a publicly accessible DBInstance. The specified VPC does not support DNS resolution, DNS hostnames, or both. Update the VPC and then try again.
내 VPC는 DNS resolution과 DNS hostname을 지원하지 않아서 DB 인스턴스를 만들 수 없댄다.
해결법은 간단했다.
VPC 선택 → VPC 설정 편집에서 DNS 설정 두 개를 활성화해주니까 만들어졌다.
마무리하려고 했는데,
각 설정이 뭔지 궁금해서 구글링을 좀 해봤다.
DNS 확인 (DNS Resolution)
: VPC 내의 리소스들이 DNS 이름을 IP 주소로 변환할 수 있게 해주는 기능
DNS 호스트 이름 (DNS Hostname)
: VPC 내부 자원들이 퍼블릭 DNS 이름을 가질 수 있게 해주는 기능 (EC2, RDS 등)
RDS는 만들어질 때 my-db.xxxxxx.ap-northeast-1.rds.amazonaws.com
같은 DNS 네임을 갖고 나오는데,
VPC에 위 기능을 활성화해줘야 엔드포인트를 부여할 수 있나보다.
진짜 마무리 하려고 했는데
'왜 RDS는 ip가 아니라 엔드포인트를 갖고 나오지?🤔' 라는 생각이 들어서 조금 더 구글링을 했다.
요약하면 아래와 같다.
RDS는 여러 개의 가용영역에 복제본을 두고 있고, 장애가 나면 자동으로 다른 인스턴스로 바뀐다.
근데 ip는 인스턴스마다 달라지므로 새로운 RDS 인스턴스로 전환되면 접속이 끊겨버린다.
DNS 네임을 쓰면 ip가 바뀌더라도 DNS 매핑만 바꿔주면 새로운 ip로 연결되도록 할 수 있다.
핵심은 ip가 바뀌더라도 DNS 네임은 그대로이므로 고가용성을 유지할 수 있기 때문이라고 할 수 있겠다.
오늘도 하나 배워간다 🙂
'개발 노트' 카테고리의 다른 글
[HTTPS] Let's Encrypt + Certbot + nip.io로 도메인 발급 없이 HTTPS 등록하기 (0) | 2025.02.19 |
---|