목표
1. HTTP통신의 프로토콜로 배포한 웹 서비스를 HTTPS통신의 프로토콜로 배포하기
2. 배포 전 Load Balancer의 역할과 방식 습득하기
배포하려는 어플리케이션의 자원 풀 전체에 여러 대의 server를 이용해 네트워크 트래픽을 균등하게 배포하여 용량(동시 사용자)과 신뢰성을 높이기 위해 사용하는 방법을 로드밸런싱(load balancing)이라 하며, 이를 수행하는 장비를 로드 밸런서라고 합니다.
- 왜 로드밸런서일까요?
동시에 접속한 client가 1000명 이상이라고 가정해봅시다. 과연 server는 1000명 이상이 요청의 결과를 빠르게 낼 수 있을까요?
이를 해결하기 위한 방법으로 두 가지가 있습니다.
- Scale-up : 하드웨어 성능을 올리는 방법
- Scale-out : 여러 대의 server로 일을 나눠서 하는 방법
Scale-up은 한계가 있으며, scale-out보다 비용이 더 많이 듭니다.
그렇기 때문에 효율적인 방식인 load balancing을 많이 도입합니다.
로드 밸런서는 여러 가지 타입이 있는데 주로 layer 4와 layer 7의 종류를 많이 선택합니다.
- Layer 4(L4)
** 패킷(packet)
우체국에서 화물을 적당한 덩어리로 나눠 행선지를 표시하는
꼬리표를 붙이는데서 유래한 단어로 컴퓨터 간의 네트워크를 통해
전송하기 쉽도록 자른 데이터의 전송 단위입니다.
패킷은 헤더/데이터부로 이루어져 있으며 헤더는 주로 패킷의
수신지 정보를 포함합니다.
- Layer 7(L7)
저는 AWS에서 제공하는 EC2내 로드밸런서 기능을 통해 L7을 선택하여 설정을 하였습니다.
1) AWS의 EC2를 검색하여 접속합니다.
2) 아래의 스크린샷과 같은 메뉴를 선택하여 들어갑니다.
3) 로드 밸런서 생성버튼을 누르고 Application Load Balancer를 생성합니다.
4) 로드 밸런서 이름을 설정합니다.
5) 인스턴스의 네트워크 가용영역 정보를 확인
6) 네트워크 매핑에 해당되는 영역 체크(4개 다 체크해도 무방)
7) 보안그룹은 적용하려는 EC2에 해당되는 보안그룹을 적용
8) 리스너에 리스너 추가 후 HTTPS 설정하고 http, https 각각 target group을 설정합니다.
9) AWS에서 제공해주는 Certificate Manager에서 발급받은 인증서를 적용합니다.
10) 로드 밸런서 생성 완료!
좋은 정보 감사합니다!