728x90
발생
- 분명히 도메인 이전이 완료됐는데 라우팅 대상을 설정하였음에도 페이지 접속 시 DNS_PROBE_FINISHED_NXDOMAIN 라는 도메인 네임을 찾지 못하는 에러만 발생
- 그에 따라 자연스레 https를 설정하기위해 acm인증서의 발급 상태가 검증 대기 중에 머물러있음
원인
- windows나 linux에서 WHOIS 유틸리티를 사용하여 도메인에 대한 정보를 검색
- WHOIS에서 출력되는 Name Server와 Route 53 → 도메인 → 등록된 도메인 → “자신의 도메인” → 이름 서버 가 동일한지 확인
- cmd에서 whois를 통한 Name Server
- Route 53의 이름 서버 (현재는 같지만 해결 전에는 다른 값이였다.)
해결
- 처음에는 단순히 https://www.inflearn.com/questions/189384 글의 “dns 문제 같은데요. dns서버가 도메인와 연결된 아이피를 예전 아이피로 갖고 있을 수 있습니다. 혹시 kt 인터넷 쓰시나요? 며칠 기다리면 저절로 해결될 수 있습니다.” 을 보고 네임 서버를 수동으로 업데이트해야하는지 모르고 무작정 2~3일이 지나면 자동으로 업데이트되겠지 기다렸다.
- 하지만 여기서 말은 도메인의 네임서버가 일치할 때를 뜻하는 거였고 그걸 모른 나는 다시 검색을 하게 된다.
- 그렇게 검색을 하다가 AWS의 공식문서인 https://aws.amazon.com/ko/premiumsupport/knowledge-center/route-53-dns-website-unreachable/ 에서 아래와 같은 방법을 참조하게 된다.
- 그 결과 내가 잘못된 부분을 인지하고 네임서버를 변경 뒤 다음 날에 정상적으로 ACM 인증서가 발급이되었고, 도메인도 https를 통해 정상적으로 접속이 되었다.
- 정상적으로 네임서버가 업데이트된 상태
- DNS를 사용했지만 깊은 구조에 대한 학습이 미비해서 이런 문제가 발생했다.
DNS에 대한 보충
- 단순히 example.com에 접속하게 된다면 해당 주소를 통해 바로 접속이 되는 것이 아니고 위와 같은 여러가지 단계를 거쳐서 클라이언트에게 보여지게 된다.
- DNS 접속 과정은 다음과 같이 알 수 있다.
- 1. 사용자가 웹 브라우저를 열어 주소 표시줄에 www.example.com을 입력하고 Enter 키를 누릅니다.
- 2. www.example.com에 대한 요청은 일반적으로 케이블 인터넷 공급업체, DSL 광대역 공급업체 또는 기업 네트워크 같은 인터넷 서비스 제공업체(ISP)가 관리하는 DNS 해석기로 라우팅됩니다.
- 3. ISP의 DNS 해석기는 www.example.com에 대한 요청을 DNS 루트 이름 서버에 전달합니다.
- 4. ISP의 DNS 해석기는 www.example.com에 대한 요청을 이번에는 .com 도메인의 TLD 이름 서버 중 하나에 다시 전달합니다. .com 도메인의 이름 서버는 example.com 도메인과 연관된 4개의 Amazon Route 53 이름 서버의 이름을 사용하여 요청에 응답합니다.
- 5. ISP의 DNS 해석기는 Amazon Route 53 이름 서버 하나를 선택해 www.example.com에 대한 요청을 해당 이름 서버에 전달합니다.
- 6. Amazon Route 53 이름 서버는 example.com 호스팅 영역에서 www.example.com 레코드를 찾아 웹 서버의 IP 주소 192.0.2.44 등 연관된 값을 받고 이 IP 주소를 DNS 해석기로 반환합니다.
- 7. ISP의 DNS 해석기가 마침내 사용자에게 필요한 IP 주소를 확보하게 됩니다. 해석기는 이 값을 웹 브라우저로 반환합니다. 또한, DNS 해석기는 다음에 누군가가 example.com을 탐색할 때 좀 더 빠르게 응답할 수 있도록 사용자가 지정하는 일정 기간 example.com의 IP 주소를 캐싱(저장)합니다. 자세한 내용은 Time to Live(TTL)를 참조하세요.
- 8. 웹 브라우저는 DNS 해석기로부터 얻은 IP 주소로 www.example.com에 대한 요청을 전송합니다. 여기가 콘텐츠가 있는 곳으로, 예를 들어 웹 사이트 엔드포인트로 구성된 Amazon S3 버킷 또는 Amazon EC2 인스턴스에서 실행되는 웹 서버입니다.
- 9. 192.0.2.44에 있는 웹 서버 또는 그 밖의 리소스는 www.example.com의 웹 페이지를 웹 브라우저로 반환하고, 웹 브라우저는 이 페이지를 표시합니다.
- 3~6번인 ISP의 DNS 해석기가 사용자가 접속한 도메인에 대한 요청을 DNS 루트 네임 서버에 전달하고, 다음에는 .com 도메인의 TLD 네임서버 중 하나에 다시 전달한다. .com 도메인과 연관된 4개의 네임 서버의 이름을 사용하여 요청에 응답한다. 네임 서버 중 하나를 선택하여 도메인에 대한 요청을 그 네임 서버를 통해서 전달하고, 전달받은 네임 서버는 example.com 호스팅 영역에서 www.example.com 레코드를 찾아 웹 서버의 IP 주소와 연관된 값을 받고 이 IP 주소를 DNS해석기로 반환한다.
- 이렇게 하면 ISP의 DNS 해석기는 사용자에게 필요한 IP 주소를 확보하게 된다. 이렇게 확보한 IP주소가 Route53에 라우팅된 IP주소나 https의 값을 뜻하게 된다.
- 웹 브라우저는 DNS 해석기로부터 얻은 IP주소로 www.example.com에 대한 요청을 전송하게 된다.
마무리하며
개발자라면 뭐든지 어떠한 기술을 사용할 때 사용하기위한 방법과 기본적인 개념만 아는 것이 아니라고 생각된다. 나중에 에러가 발생했을 경우 어디가 문제가 되었고 그 문제를 어떻게 해결 할 수 있는지 알기위해서는 동작구조 등 기술에 대한 뎁스를 깊게해야하겠다는 걸 더 뼈저리게 느꼈다.
참조
https://aws.amazon.com/ko/route53/what-is-dns/
https://aws.amazon.com/ko/premiumsupport/knowledge-center/route-53-dns-website-unreachable/
'etc' 카테고리의 다른 글
Docker에서 localhost란 ? (0) | 2022.09.05 |
---|---|
캐싱 (Caching) (0) | 2022.04.11 |
6개월간의 회고, 8주간의 스터디와 현재 생각들 (0) | 2021.12.14 |
커밋 1일 1커밋 100일 회고록 (0) | 2021.10.29 |