develog
AWS EC2에 HTTPS 적용하기 #2 (도메인 연결하기) 본문
이전 포스팅에서 Node 서버를 AWS EC2에 배포하고, 이를 확인해보는 것까지 진행하였다.
이 글을 시작하기 전에, http://{자신의 IP}:{자신의 port}
를 했을 때, 원하는 값이 출력되는 상태여야한다.
1. 도메인 구매
필자는 원하는 도메인이 googoo.blog이다.
가비아, AWS Route53, Google domain 등등 도메인 구매처는 많다.
필자는 그 중 googoo.blog 가격이 가장 싼 호스팅케이알을 이용했다.
구매 과정은 어느 서비스를 이용하는지에 따라 다르므로 생략하겠다.
구매까지는 어렵지 않을 것이다.
2. AWS Route53에 도메인 연결
필수적인 작업은 아니다. 각자의 도메인 사이트에서 직접 인스턴스와 연결시켜줘도 무방하다.
하지만 https를 연결시킬 때, AWS Route53을 사용하고 있다면 조금 더 편리하다.
우선 AWS Route53페이지로 들어가자.
위 사진 순서대로, 호스팅 영역 탭에 들어가서 호스팅 영역 생성 버튼을 누르자.
위 사진대로 자신의 도메인을 입력하고, 퍼블릭 호스팅 영역을 선택 후 호스팅 영역을 생성하자.
이런 화면이 뜰 것이다.
여기서 저 NS(네임서버)가 중요하다. 이 네가지 값은 바로 아래서 쓰일 것이다.
레코드 생성은 그후에 진행하겠다.
저 네임서버를 이용해서 도메인을 구매한 곳과 AWS Route53을 연결시켜줘야한다.
이제 도메인을 구매한 사이트로 각자 이동하자.
도메인 관리 or 네임서버 관리 등등 분명 도메인에 관한 설정을 하는 페이지가 있을 것이다.
그 페이지로 이동하자.
네임서버를 변경하는 버튼을 누르고, 기존에 네임서버가 있었다면 모두 지우자.
그 후에 AWS Route53에서 NS 레코드에 있는 4가지 값을 모두 입력하자.
예시로,
- ns-0000.aaaaa-00.org
- ns-0000.aaaaa-00.net
- ns-0000.aaaaa-00.com
- ns-0000.aaaaa-00.co.uk
이런식으로 네개가 있을 것이다. 이를 모두 도메인 관리사이트에서 네임서버에 추가해주면 된다.
이 때, 순서는 상관없다.
사실 2개만 추가해줘도 괜찮지만, 4개 모두 해주면 좀 더 안정적으로 도메인과 IP가 연결될 수 있다.
이제 다시 AWS Route53으로 돌아가자.
IP만 연결시켜주면 끝이다.
위 사진에서 저 레코드 생성 버튼을 누르자.
위 사진처럼 설정하면 된다. 값에는 자신 인스턴의 퍼블릭 IP 주소를 입력하자.
적용되는데 시간이 조금 소요될 것이다. (약 1분)
이제 도메인과 AWS Route53, 내 인스턴스가 연결이 완료되었다.
3. 인스턴스 보안그룹 변경
우리는 이제 Http://{도메인 이름}:{포트 번호} 이렇게 요청을 보낼 것이다.
필자를 예시로 들면, http://server.googoo.blog:8080
이 때, http에 대한 요청을 인바운드 규칙으로 열어줘야한다. (이미 열려있다면 패스해도 된다.)
아마 필자를 1챕터부터 따라온 사람이라면, 80포트가 열려있지 않을 것이다.
각자의 인스턴스 설정 페이지로 넘어가자.
자신의 보안그룹 고유번호를 기억하자. 저 보안그룹 설정을 변경할 것이다.
보안 그룹 탭으로 넘어가서, 자신의 인스턴스에서 사용하고 있는 보안그룹을 선택하여 클릭하자.
현재 22포트와 8080포트만 열려있는 상태이다.
인바운드 규칙 편집 버튼을 눌러 인바운드 규칙을 변경해주자.
위 사진처럼 4가지 규칙을 추가해주면 된다.
https는 이번 포스팅에서는 굳이 추가해주지 않아도 되지만, 다음 포스팅에서 https를 적용해줄 것이므로 미리 열어두자.
4가지 규칙을 추가하고 규칙 저장을 누르면 된다.
이제 끝이다.
http://{자신의 도메인}:{자신의 포트}
를 주소창에 입력해서 접속해보자.
혹은 터미널에
curl http://{자신의 도메인}:{자신의 포트}
필자의 경우 curl http://server.googoo.blog:8080
응답이 잘 올것이다.
만약 내 포스팅을 잘 따라했는데, 응답이 안온다면 다음을 의심해보자.
- 네임서버 4가지를 잘못 입력한 경우
- 레코드 생성시 *.도메인.com 이런식으로 A레코드를 열었는데, 요청은 도메인.com으로 보낸경우
이런 경우엔 www.도메인.com 이런식으로 요청을 보내면 해결될 것이다.
- A레코드에 인스턴스 ip를 잘못 입력한 경우
- 서버가 실행되지 않은 경우
이런경우, http://{ip번호}:{포트번호} 이런식으로 요청을 보내보자.
응답이 안온다면 서버가 죽어있는 것이다. 인스턴스에 접속해서 서버를 다시 열어주자.
- 요청을 보냈을 때, 엄청 오래걸리며 타임아웃 에러가 발생하는 경우
인바운드 규칙에 80포트나 자신의 서버 포트(필자의 경우 8080)가 설정되어 있지 않을 가능성이 높다. 확인해보자.
이제 HTTPS를 적용할 차례다.
'백엔드' 카테고리의 다른 글
AWS EC2에 HTTPS 적용하기 #3 (로드밸런서 및 ACM) (0) | 2022.02.02 |
---|---|
AWS EC2에 HTTPS 적용하기 #1 (Express 서버 HTTP로 배포하기) (0) | 2022.02.02 |