Load Balancer 적용 후 아키텍처 도식도
Load Balancer가 필요한 이유
클라이언트에 대한 단일 접점 역할을 수행한다. 로드 밸런서는 여러 가용 영역에서 여러 인스턴스 대상에 수신 애플리케이션 트래픽을 분산한다. 이렇게 하면 애플리케이션의 가용성이 향상된다.
Load Balancer 적용
1. 로드밸런서 생성 - 1
2. 로드밸런서 유형 선택
사용하는 환경에 따라 3가지 Load Balancer 유형을 제공한다. 나는 애플리케이션 로드밸런서를 선택했다.
3. 로드밸런서 생성 - 2
클라이언트에 대한 단일 접점 역할을 하기 위해선 Public IP를 받는다. 부하 처리 성능은 Small, Medium, Large 순서대로 각각 3만, 6만, 9만 초당 연결 수를 보장한다.
그리고 VPC를 선택하고, 해당 VPC 안에 로드밸런서용 subnet이 존재해야한다.
4. 로드밸런서 생성 - 3
리스너를 설정한다. 리스너는 외부 에서 어떤 프로토콜의 어떤 포트로 클라이언트로 부터 받는 것이다. 즉 클라이언트 에게 귀를 귀울이고 있다.
HTTP 혹은 HTTPS로 받을지 설정하고 포트를 설정한다. Load Balancer가 제공하는 DNS를 통해 들어올 때 기본 포트인 80 포트로 들어오기 때문에 나는 HTTP, 80 으로 설정하고 추가했다.
더 나아가, HTTPS로 받기 위해서는 인증서가 필요하다. 그리고 기본 포트는 443이다.
5. 타겟 그룹 선택
타겟 그룹을 설정한다.
Target Group 적용
1. 타겟 그룹 생성 - 1
2. 타겟 그룹 생성 - 2
이름을 설정하고, Target 유형에 VPC server를 선택한다.(VPC server 밖에 없다.) 그리고 로드밸런서가 있을 예정인 VPC를 선택한다.
그리고 프로토콜을 선택해야 한다. TCP, Proxy TCP, HTTP, HTTPS가 있다. 그 전에 알아두어야 할 것이 어떤 프로토콜을 선택하느냐에 따라 로드밸런서의 유형이 결정된다.
프로토콜 | 로드 밸런서 유형 |
---|---|
TCP | Network Load Balancer |
Proxy TCP | Network Proxy Load Balancer |
HTTP, HTTPS | Application Load Balancer |
그리고 포트를 설정해준다.
나는 HTTP 프로토콜에 포트 80으로 설정했다.
3. Health Check 설정
로드 밸런서가 주기적으로 관리하고 있는 서버에 핼스 체크를 날리는데, 핼스 체크를 하기 위해 포트와 HTTP 메소드를 설정해준다.
그리고 핼스 체크 주기와 정상, 실패 임계값을 설정한다. 핼스체크를 몇번을 성공해야 로드 밸런서가 해당 서버는 안전하다고 생각하는지의 수치가 정상 임계값이고 실패 임계값은 그 반대이다.
4. 타겟 추가
전체 Target 영역에서 Target Group에 포함시킬 Target을 선택한다. 전체 Target은 VPC 내 모든 서버를 대상으로 한다.
[>] 버튼을 클릭하여 적용 Target 영역으로 이동하여 타겟을 적용한다.
그렇게 이제 타겟 생성이 완료 되었고 로드 밸런서에 적용 되어 있을 것이다.
결과
'난중(개발)일기 > 삽질기록' 카테고리의 다른 글
[Github Actions] bash syntax 오류 (0) | 2023.02.08 |
---|---|
[NCP] Pinpoint 적용기 (1) | 2023.02.02 |
[NCP] Auto Scaling 적용기 (0) | 2023.01.30 |
[NCP] CI/CD 적용 (0) | 2023.01.29 |
[Mybatis] Cause: java.lang.NumberFormatException: For input string: "t” (0) | 2022.10.06 |