서비스를 만드는데 도메인 등록하는 과정 필수이다. 도메인은 접속하고자 하는 IP 주소를 사람이 읽고 기억하기 쉬운 형태로 변환해 준다. 또한 도메인을 등록한다면 IP 주소의 변경에도 유연하게 처리할 수 있고, SSL/TLS 인증서를 발급 받아 보안을 강화할 수 있다. 이러한 이유로 현재 개발 중인 프로젝트에 도메인을 구매하여 등록해 보았다.
roccia-901.com이라는 도메인을 구매하려고 한다. api.roccia-901.com라는 서브 도메인으로 api 서버와 통신하기 위함이다. (도메인 구매를 마치고 글을 작성하는 거라 콘솔에 도메인이 존재한다.)
콘솔에서 Route 53을 검색한 후, 도메인 등록을 선택한다.

사용하려는 도메인을 검색하고 선택한다.

사용하려는 기간을 선택한 후 다음을 진행한다.

연락처 정보를 입력 후 제출을 한다. 도메인 등록하는데 약간의 시간이 필요하다.

구매한 도메인은 사용할 목적에 맞게 설정을 해야 실제 인터넷 상에서 접근이 가능하다. DNS 레코드 설정을 하여 도메인 이름을 실제 서버의 IP 주소와 연결해보자.
좌측 탭에서 호스팅 영역을 선택한다. 생성된 도메인 이름을 클릭한다.

기본 레코드 이외에, 사용하려고 하는 서브 도메인에 대한 레코드 생성을 해야한다.

레코드 생성을 통해 리전을 선택하고 aws의 다양한 서비스의 엔드포인트와 연결할 수 있다. 또한 라우팅 정책을 통해 서비스의 특성에 맞는 라우팅도 설정할 수 있다.

아래와 같이 도메인과 서브 도메인을 A 타입의 레코드로 생성했다. 참고로 @로 시작하는 도메인은 해당 도메인 자체를 가르킨다. roccia-901.com과 같이 도메인을 사용할 일이 없다면 생성하지 않아도 무방하다.

이렇게 등록한 (서브)도메인을 Nginx의 서버 블록에 설정을 하면 도메인으로 서버에 접속 가능하다.
혹시 모를 과금 청구로 인해 주기적으로 청구서를 확인하던 중, 특이한 점을 발견했다. 아직 서비스 중이 아닌데도 불구하고 3만건의 호출로 인해 과금이 발생한 것이다.

찾아본 결과 도메인이 등록되고 DNS 레코드가 생성되면, 이는 봇에 의해 스캔되고 해킹의 대상이 된다. 실제로 서버의 로그 파일을 살펴보면 다음과 같은 요청이 무수히 많이 찍혀있다. 여러 source ip에서 환경 변수 파일을 찾기 위해 굉장히 많은 호출을 한 것이다.

만약 이를 간과하고 중요한 정보가 담긴 환경 변수 파일을 정적 파일 디렉토리에 위치했다면 보안상 매우 위험했을 것이다.(약간의 서버 지식만 있어도 이를 피할 수 있지만, 서버 개발 초심자 입장에서는 위험할 수 있을 것 같다.) 물론 aws에서 제공하는 WAF, Shield와 같은 서비스를 사용해 악의적인 접근을 차단할 수 있지만, 현재 상황에선 오버 엔지니어링이라 판단하여 별 조취를 취하지 않았다.