상황

Nuxt 서버와 Node 서버 두 개를 각각 front, back으로 AWS elastic beanstalk에 배포한 뒤, 배포한 도메인으로 접속했을 때 ERR Name not Resolved Error가 발생하면서 서버에서 어떤 응답도 받을 수 없었다.

시도 1

처음에는 이 문제가 CORS 이슈라고 판단하고 Node 서버에 cors 미들웨어를 붙여봤다.

물론 문제의 진단이 잘못 됐기 때문에 실패..

시도 2

이번에는 Nginx 설정에서 cors를 붙여줘야하나 하고 설정을 건드려봤지만 또다시 실패.

원인/해결

기존에 운영하던 사이트가 쇼핑몰 솔루션 아임웹과 cafe24 도메인 조합으로 운영되고 있었는데, 이를 빈스톡 서버의 도메인으로 이전해야 했다.

적절히 설정하고 네임서버를 옮겨줬는데, 그 이후 갑자기 사이트 접속이 불가능해졌다.

서버 배포 후 몇 시간 동안 ERR Name not Resolved Error를 겪었는데,
문제는 cafe24의 네임서버를 route 53의 네임서버로 변경하면서
프론트엔드와 백엔드를 다른 호스팅 존에 둔 것이었다. 다른 호스팅 존이 되면 네임서버도 다른 것을 쓰게 되므로 서로 연결이 안 된다. 해결은 프론트엔드와 백엔드는 서로 서브 도메인 관계이므로 같은 호스팅 존 안에 두어야 하며, 백엔드는 aws Route53에서 제공하는 alias를 백엔드 서버 도메인(빈스톡 도메인)으로 설정해주어야한다.(CName으로 설정하는 것도 가능하지만 aws 리소스를 사용할 경우 alias를 사용하는 것이 조금 더 편하다.)

추가: https 리다이렉션

  1. ec2 대시보드에 들어간다.
  2. 로드밸런서 세팅에서 https 포트를 추가하고 액션탭에 https 주소로 리다이렉트 행동을 넣음.