10.5 Load Balancer 만들기
Load Balancer 생성
OCI 콘솔에서 내비게이션 메뉴를 엽니다. Networking > Load Balancers 항목으로 이동합니다.
Create Load Balancer 클릭합니다.
Load Balancer 를 타입으로 선정합니다.
- Load Balancer Type: L7 로드밸런서로 HTTP Listener로 분배할때 사용합니다.
- Network Load Balancer Type: L4 로드밸런서로 일반 IP, Port로 분배할때 사용합니다.
기본 생성정보 입력
Name: Load Balancer 이름 입력, 예) ExampleLB
Choose visibility type: 여기서는 Public 선택
- Public: Public IP를 부여할지 여부 선택
- Private: Private IP 만 가집니다. 내부용 로드밸런서인 경우 선택 용 로드밸런인지 설정합니다.
Assign a public IP address: Public IP로 외부 서비스를 하는 고정된 Public IP를 사용할지 여부를 지정합니다. 여기서는 테스트이므로 Ephemeral IP Address 선택
- Ephemeral IP Address: Load Balancer 생성시 부여된 Public IP를 사용하는 경우
- Reserved IP Address: 사용자 예약한 Public IP를 사용하는 경우
Bandwidth: 여기서는 일단 기본값을 사용
Choose Networking: LB 테스트용으로 앞서 만든 VCN과 Subnet 선택
- VCN: load-balancer-vcn
- Subnet: public-lb-subnet
Backend 설정
Load Balancing Policy: 분배규칙을 선택합니다. 여기서는 이후 테스트를 위해 라운드 로빈을 선택합니다.
- Weighted Round Robin: 가중치 기반 라운드 로빈 분배 방식
- IP Hash: 클라이언트 IP 주소의 해쉬값을 이용해 분배
- Least Connections: Backend의 연결 갯수를 기준으로 적은 쪽으로 분배
Add Backend
로드밸런서가 부하분산할 대상을 추가하는 부분입니다. 앞서 미리 만들어 둔 WebServer 2개를 추가합니다.
Health Check Policy: 현재 WebServer의 기본 포트(80)으로 헬스 체크할 것이므로 기본값을 그대로 사용합니다.
Use SSL: 지금은 Apache HTTP Server를 HTTP로만 서비스 중이므로 여기서는 체크안함
Advanced Option
Security List: 클라이언트->LB간, LB->Backend간 각각 서비스 포트를 개방하기 위한 Security List 업데이트 필요합니다. 기본적으로 자동으로 설정되며, 아래 고급옵션에서 자동 여부 및 대상 Security List를 변경할 수 있습니다. 추가로 만든 LB Security List를 선택합니다.
Session Persistence: 세션 쿠키값에 따른 Persistent를 사용할 경우 방법 설정, 이후 원활한 분배 테스트 확인을 위해서 여기서는 생략
Configure Listener
- Listener Name: 이름 입력, 예) ExampleLB-Listener
- Specify the type of traffic your listener handles: HTTP 선택
- HTTP, HTTPS, HTTP/2가 선택옵션이나, HTTPS, HTTP/2 선택이 SSL 인증서를 추가설정이 필요합니다. 여기서는 테스트용으로 HTTP를 사용합니다.
Manage Logging
- 에러 로그와 액세스 로그를 OCI Log 서비스를 사용하도록 설정할 수 있습니다. 일단 여기서는 사용하지 않습니다.
Submit을 클릭하여 Load Balancer를 생성합니다.
Load Balancer가 생성되고 조금 지나면 Backend 서버의 헬스체크가 성공하고 Overall Health가 OK 상태가 되게 됩니다.
Load Balancer 생성 결과 확인
생성된 Load Balancer 이름을 클릭하여 상세 화면으로 이동합니다.
생성시 입력한 정보를 기준으로 Backend Sets과 Listeners가 만들어져 있습니다.
분배 규칙 및 Backend 서버 추가 등 업데이트를 지원합니다.
- 이름 길이는 19자리가 최대인듯 합니다.
Listener 또한 생성된 것을 볼 수 있으며, 해당 설정은 업데이트를 지원합니다.
Security List 자동 업데이트 결과 확인
Load Balancer의 Security List인 lb-security-list의 상세 화면으로 이동합니다.
Egress Rule이 1개 추가 되었습니다. Add Backend Set으로 추가된 WebServer 2대와 서비스 포트 80에 해당되는, 즉 해당 서브넷(10.0.0.0/24)의 80 포트로 개방된 것을 알 수 있습니다.
Backend인 WebServer 2대가 포함된 서브넷의 Security List인 Default Security List에 public-lb-subnet(10.0.2.0/24)에서 WebServer 포트인 80으로 들어 올 수 있게 마지막에 규칙이 하나 추가되었습니다.
자동으로 추가된 위 2개의 규칙으로 Load Balancer -> WebServer간 80 포트 통신은 개방되었습니다. 하지만, 실제 클라이언트가 Load Balancer로 올 수 있게 lb-securit-list의 Ingress에는 80 포트가 개방되지 않았습니다.
다시 lb-securit-list의 상세 화면으로 돌아가 클라이언트 -> Load Balancer간의 개방을 위한 규칙을 설정합니다. Ingress Rule을 아래와 같이 추가 합니다.
이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.