brunch

You can make anything
by writing

C.S.Lewis

by 한상훈 Sep 29. 2019

AWS HTTPS 연결하기

도메인을 저렴하게 구하는 방법부터 무료 인증서 사용하기

HTTPS를 지원하기 위해선 인증서를 발급받아야 합니다. 인증서는 무료와 유료가 있는데, 무료 인증서의 경우 인증서가 있음에도 HTTPS가 제대로 되지 않는 경우가 있어서 유료를 많이 사용합니다. 만약 AWS를 통해서 서비스를 서버를 운영하신다면 인증서는 무료로 발급받을 수 있는데 certification manager를 통해서 가능합니다.


우선 도메인 연결의 기본적인 부분부터 해보도록 하겠습니다.


1. 도메인 구입

저는 도메인을 Godaddy에서만 구매합니다. 이유는 가격이 저렴합니다. 특히 .com 도메인을 사용하실 때에 Godaddy에서 처음 구입하신다면 5900원 정도로 구입할 수 있습니다. 한가지 팁을 드리자면 Godaddy에서 도메인을 구입하실 때는 가격을 낮추는 방법이 있습니다. 바로 장바구니에 넣고 기다리기입니다.


할인 코드 이메일

도메인을 장바구니에 넣고 며칠 기다리시면 가입하신 이메일로 할인 코드가 포함된 이메일이 옵니다. 20~30% 할인 코드가 발급되는데 이를 활용해서 거래하시면 최저가에 구매하실 수 있습니다. 이보다 저렴하게 도메인을 구매하는 방법을 알고 계신분은 댓글로 알려주세요.


한가지 팁

구매 절차 중 개인 정보 보호 항목이 있습니다. 저는 개인적으로 사용하시길 권장드리는데, 이유는 도메인을 구입하면 경우에 따라서 스펨 메일이 엄청나게 오기도 합니다. 특히 도메인 분쟁이나 허위 도메인 구매 등 혼란을 줄 수 있는 이메일을 보내는 사기꾼들이 많아서 개인 정보 보호를 해두는걸 추천드립니다. 


2. 네임서버 변경

도메인을 구입하고, 내 제품을 확인하면 위와 같이 나타납니다. AWS에 연결하기 위해선 DNS를 변경해주면 됩니다. DNS 버튼을 눌러 네임서버 항목으로 갑니다.


네임서버 항목을 보시면 2개의 네임서버가 이미 설정되있는걸 보실 수 있습니다. 이 값을 AWS와 맞춰주기 위해 aws route53에 들어갑니다. 

호스팅 영역을 클릭하고, 새로운 호스팅 영역을 생성해줍니다.

도메인 이름에 구입한 도메인 주소를 입력해줍니다. 유형은 퍼블릭 호스팅 영역을 선택해줍니다. 이후 생성을 눌러줍니다.


생성된 호스팅 영역을 클릭해 들어가봅니다. 레코드 세트가 나타나는데 이중 NS 값이 있습니다. 4개의 NS값이 있는데, 하나하나 복사해서 고대디 네임서버 변경창에서 추가해줍니다. 4개가 모두 추가되고 확인을 누릅니다. 원래는 고대디에 네임서버 항목 위에 레코드가 있었는데 이제 사라졌습니다. 이는 레코드 관리를 AWS에서 하도록 설정됐기 때문입니다.


3. 서버와 도메인 연결하기

route53으로 돌아와 레코드 세트를 추가해줍니다. 이름 항목은 작성하지 말고, 별칭 항목을 예로 전환하시면 서버를 선택할 수 있습니다. 연결할 서버를 선택하시고 레코드 세트를 생성합니다.


4. 도메인 연결 완료

이제 도메인이 연결됐습니다. 도메인은 종류에 따라 연결되는 시간이 차이가 있는데, 짧게는 몇 분 이내에서 길게는 몇 시간이 걸리기도 합니다. 여러분이 구입한 도메인이 연결까지 얼마나 걸리는지 캐싱 시간을 인터넷에서 쉽게 검색해보실 수 있습니다. 일정 시간이 지난 후 구입한 도메인 주소를 인터넷 창에 치고 들어가면 문제없이 연결된 것을 확인할 수 있습니다.


5. HTTPS 연결하기 - 인증서 발급

HTTPS를 사용하기 위해선 인증서가 필요합니다. 여러분이 사설 인증서를 이미 가지고 계신다면 해당 인증서를 AWS에 가져와 사용하셔도 좋고, 새로 만들어도 됩니다. 글에선 인증서를 발급받는 경우만 설명드리겠습니다. AWS certification manager에 들어갑니다.



인증서 요청을 누릅니다. 공인인증서를 선택하고, 인증서 요청 버튼을 누릅니다. 도메인 이름에 여러분의 도메인을 작성하고, 다른 이름 추가를 눌러 www.도메인명.com 형태의 이름을 추가해줍니다. (저는 보통 www 만 추가해서 사용합니다.) 다른 이름 추가로 www.도메인명.com 을 안 넣게 되면 www를 누르고 들어오는 사용자는 사이트를 찾지 못하게 됩니다.


확인을 누르면 DNS검증과 이메일 검증이 있습니다. DNS 검증을 선택하고 확인을 눌러 생성합니다.


DNS 검증은 무척 간단합니다. 아까전 route53 호스팅 영역에 레코드 필드를 추가해 검증하는 방법입니다. 요청이 생성된 후에 클릭해보면 아래와 같이 나타날 것입니다.

도메인을 눌러보면 Route53에서 레코드 생성이라는 버튼이 있습니다. 해당 버튼을 눌러주면 알아서 레코드 필드에 해당 CNAME 레코드 필드가 추가됩니다. 


6. HTTPS 연결하기 - 로드밸런서 연결

잠시 기다리시면 인증서 검증이 완료됩니다. 이제 마지막 단계입니다. 바로 로드밸런서 연결입니다. 로드밸런서는 http 요청이 왔을 때 https로 리디렉션하게 만들어주며, https인 경우 https를 그대로 사용하도록 해줍니다.


 EC2 항목에 들어가서 좌측 사이드바 하단에 있는 로드밸런서 항목을 눌러줍니다.

로드밸런서 생성을 눌러 주시면 아래와 같은 화면이 나타납니다.


가장 우측의 Classic Load Balencer를 생성합니다. 

HTTPS 로드밸런서 프로토콜을 추가합니다.


보안 그룹 설정이 나타납니다. 보안 프로토콜은 접속 허용범위를 인바운드와 아웃바운드로 설정하는 것을 뜻합니다. 보편적인 웹사이트의 경우 누구나 방문할 수 있도록 HTTP와 HTTPS를 열어둡니다. 상단의 새 보안그룹 생성을 눌러주고 위와 같이 HTTP, HTTPS 규칙을 추가한 후 소스 항목을 위치 무관으로 설정합니다.


이제 인증서를 연결할 차례입니다. ACM에서 인증서 선택을 누르고 발급받은 인증서를 선택해줍니다. 그리고 남은 단계는 수정없이 진행하시면 로드밸런서 생성이 완료됩니다.


7. 마무리

로드밸런서가 AWS의 연결된 서비스에 모두 전파되기까지 약간의 시간이 소요됩니다. 한 5분이면 완료되고, 이렇게 완료된 사이트를 방문해봅시다. 그냥 주소만 입력해서 들어갈 때 https로 방문되고, https를 넣고 접속했을 때 상태가 유지되면 성공입니다.


만약 주소만 입력해서 들어갔을 때 https로 넘어가지 않는다면 로드밸런서에서 아래의 항목을 확인해주세요.

위의 이미지처럼 HTTP가 다음으로 리디렉션이 이뤄져야 합니다. 만약 다른 형태로 되어있는 분들은 규칙보기/편집을 눌러 주고, 아래처럼 수정해줍니다.

이렇게 변경하고 잘 안되시는 경우 Classic 로드밸런서가 아닌 애플리케이션 로드밸런서를 사용한건 아닌지, 또는 서버만 있고, elastic IP는 연결되지 않아 문제가 생긴건 아닌지 확인해보시면 됩니다. elastic IP는 이 글에선 설명하진 않았지만 개념이 간단해서 쉽게 무슨 내용인지 확인하실 수 있을 겁니다.



매거진의 이전글 랜덤 유머 링크 사이트 만들기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari