TheKoguryo's 기술 블로그

 Version 2024.04.01

10.5 Load Balancer 만들기

Load Balancer 생성

  1. OCI 콘솔에서 내비게이션 메뉴를 엽니다. Networking > Load Balancers 항목으로 이동합니다.

  2. Create Load Balancer 클릭합니다.

  3. Load Balancer 를 타입으로 선정합니다.

    • Load Balancer Type: L7 로드밸런서로 HTTP Listener로 분배할때 사용합니다.
    • Network Load Balancer Type: L4 로드밸런서로 일반 IP, Port로 분배할때 사용합니다.

    image-20230509131145882

  4. 기본 생성정보 입력

    • 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를 사용하는 경우

      image-20230509131342667

    • Bandwidth: 여기서는 일단 기본값을 사용

      image-20230509131448599

    • Choose Networking: LB 테스트용으로 앞서 만든 VCN과 Subnet 선택

      • VCN: load-balancer-vcn
      • Subnet: public-lb-subnet

      image-20230509131532082

  5. Backend 설정

    • Load Balancing Policy: 분배규칙을 선택합니다. 여기서는 이후 테스트를 위해 라운드 로빈을 선택합니다.

      • Weighted Round Robin: 가중치 기반 라운드 로빈 분배 방식
      • IP Hash: 클라이언트 IP 주소의 해쉬값을 이용해 분배
      • Least Connections: Backend의 연결 갯수를 기준으로 적은 쪽으로 분배

      image-20230509131643071

    • Add Backend

      로드밸런서가 부하분산할 대상을 추가하는 부분입니다. 앞서 미리 만들어 둔 WebServer 2개를 추가합니다.

      image-20230509132703135

    • Health Check Policy: 현재 WebServer의 기본 포트(80)으로 헬스 체크할 것이므로 기본값을 그대로 사용합니다.

    • Use SSL: 지금은 Apache HTTP Server를 HTTP로만 서비스 중이므로 여기서는 체크안함

      image-20230509132807202

    • Advanced Option

      • Security List: 클라이언트->LB간, LB->Backend간 각각 서비스 포트를 개방하기 위한 Security List 업데이트 필요합니다. 기본적으로 자동으로 설정되며, 아래 고급옵션에서 자동 여부 및 대상 Security List를 변경할 수 있습니다. 추가로 만든 LB Security List를 선택합니다.

        image-20230509133923181

      • Session Persistence: 세션 쿠키값에 따른 Persistent를 사용할 경우 방법 설정, 이후 원활한 분배 테스트 확인을 위해서 여기서는 생략

  6. Configure Listener

    • Listener Name: 이름 입력, 예) ExampleLB-Listener
    • Specify the type of traffic your listener handles: HTTP 선택
      • HTTP, HTTPS, HTTP/2가 선택옵션이나, HTTPS, HTTP/2 선택이 SSL 인증서를 추가설정이 필요합니다. 여기서는 테스트용으로 HTTP를 사용합니다.

    image-20230509134759184

  7. Manage Logging

    • 에러 로그와 액세스 로그를 OCI Log 서비스를 사용하도록 설정할 수 있습니다. 일단 여기서는 사용하지 않습니다.
  8. Submit을 클릭하여 Load Balancer를 생성합니다.

  9. Load Balancer가 생성되고 조금 지나면 Backend 서버의 헬스체크가 성공하고 Overall Health가 OK 상태가 되게 됩니다.

    image-20220115203440719

Load Balancer 생성 결과 확인

  1. 생성된 Load Balancer 이름을 클릭하여 상세 화면으로 이동합니다.

  2. 생성시 입력한 정보를 기준으로 Backend Sets과 Listeners가 만들어져 있습니다.

  3. 분배 규칙 및 Backend 서버 추가 등 업데이트를 지원합니다.

    • 이름 길이는 19자리가 최대인듯 합니다.

    image-20230509135226907

  4. Listener 또한 생성된 것을 볼 수 있으며, 해당 설정은 업데이트를 지원합니다.

    image-20230509135313769

Security List 자동 업데이트 결과 확인

  1. Load Balancer의 Security List인 lb-security-list의 상세 화면으로 이동합니다.

  2. Egress Rule이 1개 추가 되었습니다. Add Backend Set으로 추가된 WebServer 2대와 서비스 포트 80에 해당되는, 즉 해당 서브넷(10.0.0.0/24)의 80 포트로 개방된 것을 알 수 있습니다.

    image-20230509135429416

  3. Backend인 WebServer 2대가 포함된 서브넷의 Security List인 Default Security List에 public-lb-subnet(10.0.2.0/24)에서 WebServer 포트인 80으로 들어 올 수 있게 마지막에 규칙이 하나 추가되었습니다.

    image-20230509135640172

  4. 자동으로 추가된 위 2개의 규칙으로 Load Balancer -> WebServer간 80 포트 통신은 개방되었습니다. 하지만, 실제 클라이언트가 Load Balancer로 올 수 있게 lb-securit-list의 Ingress에는 80 포트가 개방되지 않았습니다.

  5. 다시 lb-securit-list의 상세 화면으로 돌아가 클라이언트 -> Load Balancer간의 개방을 위한 규칙을 설정합니다. Ingress Rule을 아래와 같이 추가 합니다.

    image-20230509135817208



이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.

Last updated on 6 Feb 2019