본문 바로가기
AWS

[AWS] AWS 서버 배포 + HTTPS 적용 간단한 이해

by 붕어사랑 티스토리 2022. 10. 18.
반응형

자세한 내용은 나와 있지 않고 큰그림 수준에서 정리하는 내용입니다.

세부적인 내용을 찾으시는거라면 뒤로가기

 

 

회사에서 내부적으로 테스트하던 개발서버를 직접 배포할 일이 생겼습니다. 서버를 직접 배포해보는 것은 처음이라 많이 삽질하였습니다. 또한 HTTPS를 반드시 적요해야 했기에 많이 힘들었네요. 세부적으로 하는 방법은 인터넷에 많으나 전체적인 flow를 설명하는 내용은 없어서 살짝 정리하고 갑니다. 큰그림만 이해하면 세부적인건 쉽게 따라갈 수 있다는게 제 철학이라 도움되셨으면 좋겠습니다.

 

완전 초보적인 내용이니 너그럽게 봐주시면 감사하겠습니다.

 

 

1. 서버 배포에 대한 간단한 이해

본인이 만들어본 서버를 모든 사람들이 접속해 사용해 볼 수 있는 과정입니다. Deploy 또는 Hosting 이라고도 하며, 아마존의 AWS, 구글의 Firebase에서 리눅스 컴퓨터 하나를 빌려줍니다. 그러면 여러분은 거기에 여러분의 서버코드를 돌리면 됩니다.

 

 

 

2. EC2 인스턴스

앞서 리눅스 컴퓨터를 빌려준다고 하였습니다. EC2인스턴스가 바로 AWS에서 제공하는 리눅스 컴퓨터 한대라고 이해하시면 편합니다.

 

 

 

3. HTTPS 적용방법

HTTPS를 적용하려면 두가지 준비물이 필요합니다.

 

  • 도메인
  • 인증서

 

도메인은 AWS의 Route53 이라는 서비스를 통해 구입할 수 있습니다.

인증서는 AWS의 ACM이라는 서비스를 통해 구입합니다.

 

 

두가지 준비물을 얻으셨다면 EC2인스턴스에 로드밸런서 라는것을 정의합니다. 그리고 이 로드밸런서에 리스너라는것을 정의할 수 있는데 여기서 http로 들어오는 요청들을 모두 https로 리다이렉트 시켜줍니다. 그리고 https로 들어오는 요청들을 타켓그륩(EC2인스턴스들의 모음) 으로 전달해주도록 합니다.

 

 

로드밸런서를 만들었다면 이후 Route53 서비스로 다시 들어가서 호스팅영역으로 들아간 뒤 구입했던 도메인에 앞서 정의한 로드밸런서를 물려줍니다.

 

이렇게 하면 HTTPS 환경구성은 완성입니다.

 

 

로드밸런서 만들 때 보안그륩 설정 주의해줍시다! 디폴드로 해줬다가 엄청 해메었습니다

 

 

로드밸런서란?

영어 뜻 그대로 업무를 분담시켜줍니다. 여러개의 EC2인스턴스들이 있고 요청이 들어오면 로드밸런서가 여러 인스턴스들에게 업무를 분담해줍니다.

 

 

 

4. 웹서버, 웹어플리케이션 서버

용어부터 간단히 설명하겠습니다

 

  • 웹서버 : nginx, 아파치 같은 서버, 정적웹에 유리하다
  • 웹어플리케이션 서버(Web Application Server) : 여러분이 만드신 서버(Django, Spring, Nodejs등으로 만든), WAS라고 불리기도 한다. 동적웹에 유리하다

두 용어를 명확히 구분해주세요.

 

여러분이 만드신 서버를 웹어플리케이션이라고 부릅니다. 서버를 배포할 때 단순히 이 웹 어플리케이션 서버를 EC2인스턴스에 동작하면 안됩니다. 앞에다가 웹서버를 붙이고 웹서버에서 웹 어플리케이션 서버로 리다이렉트 시켜주도록 구성해야 됩니다.

 

이를 통해 주소를 감춰서 보안적인 면을 높일 수 있고, 앞서 배운 AWS의 로드밸런서가 컴퓨터들에게 업무분담을 해주는 HW 로드밸런서라면, nginx는 WAS를 여러개 돌려 웹서버가 들어오는 트래픽을 WAS에 분담해주는 sw적인 로드밸런서를 구현할 수 있습니다.

 

처음에 이건 또 뭐야 하면서 많이 부담이 되었는데요, 막상 해보니깐 아주 간단하고 어렵지 않습니다. 여러분의 서버(WAS)를 돌려놓고, nginx나 아파치 서버의 config에서 리다이렉트만 해주면 됩니다. 생각보다 간단하였습니다.

 

 

 

 

허접한 글 봐주셔서 감사합니다.

반응형

댓글