CastleJo의 개발일지

AWS 도메인으로 EC2에 HTTPS 연결하기

|

목차

직접 만든 EC2 서버를 배포하면서, 실시간 영상을 받아야 할 때가 있었습니다.
하지만 HTTP로는 인증서가 없어 웹캠을 받지 못하는 문제가 있었습니다.
기존에 있던 방법들은 AWS의 UI 업데이트 이후 복잡함이 있었기에 이를 해결한 방법을 다시 정리합니다.

본문은 해당 순서로 진행될 예정입니다.

  1. 도메인 등록
  2. 로드밸런서
  3. 도메인에 로드밸런서 등록

도메인 등록

도메인 구매

타 사이트에서 도메인을 구매하여 연결할 수도 있겠지만, 본문에서는 AWS 내에서 도메인 등록부터 시작하겠습니다.

AWS의 Route 53 서비스에 들어간 뒤, 도메인 등록 탭에 들어갑니다.
여러가지 선택지가 있지만, .click 도메인이 3$로 가장 저렴해보였습니다.

.click 도메인이 너무 광고 사이트같아 꺼려질 땐 .com과 같은 도메인은 12$정도로 구매할 수 있습니다.
참고로 해당 도메인의 1년 사용료이며 구매 즉시 일시불로 결제됩니다.

다음, 구매가 완료됐다는 가정 하에 다음 단계로 넘어가겠습니다.

호스팅

이제, 해당 도메인의 호스팅 영역을 설정할 차례입니다.
예를 들어, naver.com의 앞에 www. 가 들어가는 것 처럼요

Route 53 탭의 호스팅 영역 탭으로 들어갑니다.

도메인 이름 탭에는 구매한 도메인 이름을 적어주시면 됩니다.
이 후 퍼블릭으로 체크한 뒤, 나머지는 선택사항이니 원하시는대로 결정하면 됩니다.

이런 탭이 보이면 성공입니다. 일단 여긴 다음에 올거니까 잠시 다른데로 가봅시다.


인증서 발급

HTTPS에서의 S가 있는 이유가 있습니다.
인증서를 받으러 가봅시다.

AWS Certificate Manager

저는 이미 받아서 하나의 인증서가 있습니다. HTTPS 접속을 위해서는 해당 인증서가 필요합니다. 받으러 가봅시다. 요청 버튼을 눌러주세요.

해당부분에 정규식 형태로 넣어주면 됩니다.
예를 들어 저는 castleuk.click 도메인을 구매했으니, *.castleuk.click 형태로 만들어주는거죠.

그 다음 DNS 검증과 이메일 검증이 있는데, 저같은 경우에는 DNS 검증을 선택했습니다.
이후 10분정도 기다린 후에 승인이 됐고, 이메일 검증을 체크하면 타 블로그에서 aws에 가입할 떄 등록한 이메일로 전송한다는데 제 경우에는 오지 않고 admin.castleuk.click 과 같은 주소로 이메일이 전송됐다고 합니다. 이 때문에 오랜 시간 애먹었던 기억이 있습니다.
또한 가입한 이메일로 도메인 구매와 같은 이메일들이 실시간으로 전송되니 만약 검증이 늦어진다면 확인해보는것도 좋은 것 같습니다.

여기서 꼭 승인 표시가 생겨야 다음 단계로 넘어갈 수 있습니다.

로드밸런서

이제 로드밸런서를 만들어 줄 차례입니다.
예를 들어 서버가 123.45.67의 6006 포트에서 http로 열려있는 상태일 때, 사용자가 https://123.45.67:6006 을 입력한다면 인증서를 챙겨줘 카메라의 액세스 권한을 준 다음 http://123.45.56:6006 포트로 리다이렉팅 해주는 단계입니다.

EC2의 로드밸런서 탭에 들어갑니다.

로드밸런서 생성 탭에 들어갑니다.

여러 방법이 있는데, 맨 아래 가장 쉬운 Classic Loadbalancer를 클릭해줍니다.

일단 이름은 원하는대로 정하셔도 됩니다.
그 다음 중요한 포트를 정해야됩니다.
어떤 프레임워크던 서버를 열 때 포트를 지정할 수 있습니다. 그 서버의 HTTPS연결을 HTTP연결로 포트를 걸어줍시다.


그 다음 인증서를 고를 수 있을것입니다.

이 후 보안그룹 등은 평소 쓰던대로 하시면 됩니다. 잘 모르겠으면 전부클릭하셔도 될거에요

이 부분도 중요합니다.
현재 80 포트로 핑을 측정하는데, 만약 6006포트만 열려있어 80포트는 액세스가 거부된다면 해당 로드밸런스는 작동하지 않습니다.
이 부분도 포트를 맞춰주세요.

이렇게 한다면 로드밸런서의 생성이 완료됩니다.

만약 여기서 사진과 같이 서비스중인 인스턴스가 0/1이라면, 로드밸런서는 일하지 않습니다.

바로 위 핑의 중요성인데요, 핑을 던져보고 받지않는다면 로드밸런서는 켜지지 않습니다.

만약 1/1이 된다면 로드밸런서는 잘 작동하는겁니다. 자 이제 거의 다 왔습니다.


도메인에 로드밸런서 등록

로드밸런서를 도메인에 등록해주면 됩니다. 아까 넘어갔었던 Route 53의 그 창으로 돌아옵시다.

여기서 레코드 생성을 눌러줍니다.

해당 화면이 21.12. 기준 새로 생겼던거같습니다.
아무튼 빠른 생성을 눌러도 되고, 단순 라우팅을 선택해도 됩니다. 여기선 단순 라우팅으로 시작하겠습니다.

여기서 단순 레코드 정의를 눌러줍니다.

레코드 이름은 해당 도메인으로 이동할 별칭을 설정하는 곳입니다.
예를 들어 https://www.castleuk.click 이란 곳으로 이동하고싶다고 하면 앞에 www를 붙여주면 됩니다.

그 다음 값 또는 라우팅 대상 에서 아까 만든 로드밸런서를 붙여줍니다.

자 이렇게 레코드가 생긴다면 성공입니다.

서버를 키고 체감상 2~3분 후에 호스팅이 되는 것 같습니다.
이 경우 아직 추측만 있어 마땅한 솔루션은 없지만 로드밸런서가 핑을 던지고 확인한 뒤 다시 일하는 단계라고 생각합니다.

이렇게 HTTPS 사이트 호스팅법을 마치겠습니다. 감사합니다.