글로벌 로드밸런서 생성

이커머스 웹사이트를 운영하거나 액세스 가능한 상태를 유지해야 하는 애플리케이션을 호스팅하는 경우 가용성과 성능에 대해 걱정할 수 있습니다.

IBM Cloud Internet Services ( CIS )에서 제공되는 글로벌 로드 밸런서 기능은 애플리케이션 안정성과 확장성을 개선하는 동시에 최상의 사용자 경험을 제공하는 데 도움이 됩니다.

글로벌 로드 밸런서는 여러 지역에 걸쳐 사용자 트래픽을 분산하여 가용성과 성능을 개선합니다.

콘솔, CLI, API 또는 Terraform을 사용하여 글로벌 로드 밸런서를 구성할 수 있습니다.

시작하기 전에

  • CIS 인스턴스를 프로비저닝합니다.
  • CIS 에서 도메인을 구성합니다.
  • 애플리케이션 출처의 IP 주소 또는 FQDN을 식별합니다.

CIS 는 사설 IP 주소를 사용하는 로드밸런서 풀을 지원할 수 있습니다. 그러나 사설 IP 풀은 프록시 서비스나 상태 확인을 지원하지 않으며, DNS 기반 부하 분산만 지원됩니다. 공인 IP가 있는 풀의 경우, (1단계: 상태 확인 만들기 )에 설명된 대로 상태 확인을 구성할 수 있습니다.

빠른 설정

풀과 상태 확인을 이미 알고 있다면 로드 밸런서를 생성할 때 인라인으로 생성할 수 있습니다:

  1. CIS 콘솔에서 안정성 > 글로벌 로드 밸런서 > 오리진 풀을 클릭한 다음 생성을 클릭합니다.

  2. 풀 이름, 오리진을 입력하고 상태 검사를 선택하십시오.

    여기에서 상태 확인 목록 메뉴에서 새로 만들기를 선택하고 정보를 입력하면 새 상태 확인을 만들 수 있습니다.

  3. 저장 을 클릭하십시오.

다음 단계에서는 상태 확인, 풀 및 글로벌 로드 밸런서를 만드는 전체 절차를 설명합니다.

콘솔에서 글로벌 로드 밸런서 만들기

글로벌 로드 밸런서 페이지 (안정성 > 글로벌 로드 밸런서) 를 열면 로드 밸런서서버가 과부화되지 않도록 서버 세트에 워크로드를 분배하는 소프트웨어 또는 하드웨어입니다., 오리진 풀, 상태 확인시스템이 효율적으로 실행 중인지 판별하기 위해 시스템 리소스 및 조건을 모니터링하는 프로세스입니다. 및 이벤트 탭이 표시됩니다. 이 탭에는 글로벌 로드 밸런서를 생성하거나 업데이트할 때 글로벌 로드 밸런서와 해당 구성 요소가 표시됩니다.

다음 단계별 절차에서, 아래 다이어그램과 유사한 환경을 구성하는 방법을 알아보세요. 이 예에서는 애플리케이션 리소스가 두 개의 데이터 센터(미국 서부 및 미국 동부)에 배포되어 있으며, 사용자는 전 세계에서 애플리케이션에 액세스합니다. 사용자는 전 세계에서 이 애플리케이션에 액세스할 수 있습니다.

콘솔에서 글로벌 로드 밸런서를 생성하고 구성하려면 다음 단계를 따르세요:

1단계: 상태 확인 생성(선택 사항)

상태 검사는 오리진 풀에 대한 선택적 첨부 파일입니다. 구성 가능한 간격으로 실행되어 특정 응답 본문 또는 상태 코드를 확인하고 풀 상태를 모니터링합니다. 상태 검사를 작성한 후에는 상태 검사를 새 오리진 풀 또는 기존 오리진 풀에 추가할 수 있습니다.

사용자 정의 상태 확인을 정의하지 않으면, CIS 은 / 을 기본 상태 확인 경로로 사용합니다.

  1. CIS 콘솔에서 안정성 > 글로벌 로드 밸런서 > 상태 확인을 클릭한 다음 생성을 클릭합니다.

  2. 다음 필드를 구성하십시오.

    • 이름: 상태 확인의 이름입니다.
    • 모니터 유형: 상태 확인에 사용할 프로토콜. (기본값: HTTP).
    • 포트: 화살표를 클릭하여 포트 번호를 늘리거나 줄이십시오.
    • 경로: 상태 점검을 수행할 대상 엔드포인트의 경로입니다. (기본값: /)
  3. 고급 옵션을 확장하여 구성합니다:

    • 테스트 간격: 상태 검사 간의 간격(초)입니다. 간격을 더 짧게 설정하면 장애 조치 시간을 단축할 수 있지만, 여러 위치에서 확인 요청이 들어오기 때문에 원본 서버의 부하가 증가합니다. (기본값: 60).
    • 메서드: 상태 확인에 사용할 HTTP 메서드. (기본값: GET)
    • 시간 초과(초): 상태 확인을 실패로 표시하기 전까지의 시간입니다. (기본값: 5)
    • 재시도 횟수: 타임아웃이 발생했을 때, 원본을 비정상 상태로 표시하기 전에 시도할 재시도 횟수입니다. CIS 즉시 재시도를 시도합니다. (기본값: 2)
    • 예상 응답 코드: 상태 확인에서 예상되는 HTTP 응답 코드 또는 코드 범위입니다. 이 값은 200~299 사이여야 하며, 와일드카드는 x 로 표시됩니다.
    • 응답 본문: 응답 본문 내에서 일치시킬 대소문자를 구분하지 않는 부분 문자열입니다. CIS 에서 이 문자열을 찾지 못하면 원본을 건강하지 않은 것으로 표시합니다.
    • 건강 임계값: CIS 에서 정상으로 표시하기 전에 받아야 하는 연속 상태 확인 응답 성공 횟수입니다. 이 설정은 한 번의 프로브 성공 후 CIS 원점을 정상으로 표시하는 것을 방지하고 간헐적으로 복구하는 동안 플랩핑을 방지하는 데 도움이 됩니다. (기본값: 1)
    • 건강하지 않은 임계값: CIS 에서 원본을 건강하지 않은 것으로 표시하기 전에 발생해야 하는 연속적인 상태 확인 실패 응답 횟수입니다. 이 설정은 일시적인 네트워크 또는 애플리케이션 문제로 인해 장애 조치가 즉시 트리거되는 것을 방지하는 데 도움이 됩니다. (기본값: 1)
    • 리디렉션 팔로우: 상태 확인이 HTTP 3xx 리디렉션 응답을 자동으로 따를지 여부를 결정합니다. 활성화하면 상태 확인이 리디렉션된 위치로 계속 진행되며 구성된 성공 기준(상태 코드 및 선택적 응답 본문)에 따라 최종 응답을 평가합니다. 비활성화하면 리디렉션 응답은 예상 응답 코드에 대해 직접 평가됩니다.
  4. “요청 헤더 구성(선택 사항) ”을 확장하여 상태 확인 시 전송할 HTTP 요청 헤더를 추가하고 구성하십시오.

    기본적으로 Host 헤더를 설정합니다. User-Agent 헤더는 재정의할 수 없습니다.

  5. 작성을 클릭하여 상태 검사 구성을 완료합니다.

상태 확인 이벤트 작업

이벤트 탭을 사용하여 글로벌 로드 밸런서와 연결된 원본 및 풀의 상태 변경 사항을 모니터링하고 조사할 수 있습니다. 상태 확인 이벤트는 구성된 상태 확인이 감지한 상태 변화를 나타냅니다. 발신지 상태가 변경되면 해당 이벤트 항목이 세부 정보와 함께 표시됩니다.

다음과 같은 필터링 옵션을 사용할 수 있습니다:

  • 시작 날짜: 선택한 날짜 범위의 시작을 기준으로 이벤트를 필터링합니다.
  • 종료 날짜: 선택한 날짜 범위의 끝을 기준으로 이벤트를 필터링합니다.
  • 발신지 상태: 원본 상태(예: 정상 또는 위급)를 기준으로 이벤트를 필터링합니다.
  • 출처: 특정 출처를 기준으로 이벤트를 필터링합니다.
  • 풀 상태: 풀 상태(예: 정상 또는 심각)별로 이벤트를 필터링합니다.
  • 풀: 특정 오리진 풀을 기준으로 이벤트를 필터링합니다.

상태 확인 이벤트를 확인하려면 안정성 > 글로벌 로드밸런서 > 이벤트를 클릭합니다.

2단계: 오리진 풀 만들기

프로비저닝된 각각의 로드 밸런서마다 최소한 하나의 풀이 필요합니다. 로드 밸런서가 사용할 풀 그룹의 출처를 지정합니다.

  1. CIS 콘솔에서 안정성 > 글로벌 로드 밸런서 > 오리진 풀을 클릭한 다음 생성을 클릭합니다.

  2. 이 풀을 활성화할지 여부를 선택합니다. 비활성화된 풀은 트래픽을 수신하지 않으며 CIS 상태 확인에서 제외됩니다. 풀을 비활성화하면 해당 풀을 사용하는 모든 로드 밸런서가 다음 풀로 페일오버됩니다(있는 경우).

  3. 필수 필드를 구성합니다:

    • 이름: 풀의 단축 이름(태그)입니다. 영숫자 문자, 하이픈 및 밑줄만 사용할 수 있습니다.
    • 오리진: 이 풀 내의 오리진의 목록입니다. CIS 이 풀 자체가 정상 상태인 경우, 해당 풀로 유입되는 트래픽을 현재 정상 상태인 모든 발신지 간에 분산합니다.

    애플리케이션 서버가 IBM Cloud 로드 밸런서와 같은 로컬 로드 밸런서 뒤에 배치되어 있는 경우, 개별 서버를 추가하는 대신 해당 로드 밸런서의 FQDN 또는 가상 IP를 오리진으로 추가하십시오.

  4. 필요에 따라 선택 필드를 구성합니다:

    • 정상 상태인 오리진 임계값: 이 풀이 트래픽을 서비스하기 위해 정상 상태여야 하는 오리진의 최소 수입니다. 정상적인 오리진 수가 이 수치보다 낮아지면, CIS 는 해당 풀을 비정상 상태로 표시하고 사용 가능한 다음 풀로 페일오버합니다. (기본값: 1)
    • 풀 상태 점검 영역: 상태 점검이 모니터링을 수행하는 영역.
    • 상태 검사: 이 풀 내의 오리진을 확인하는 데 사용할 상태 검사입니다. (기본값: 상태 확인 없음 )
  5. 저장을 클릭하여 오리진 풀 구성을 완료합니다.

오리진 풀은 처음에 비정상으로 표시됩니다. CIS 에 의한 건강 상태 확인이 성공적으로 완료되면 이 상태는 ‘건강함 ’으로 변경됩니다. 브라우저를 새로 고쳐 상태 변경사항을 봐야 합니다.

가지고 있는 애플리케이션 팜의 수만큼 오리진 풀을 정의하십시오. 이러한 팜은 동일하거나 다른 지리적 지역 내에있을 수 있습니다.

3단계: 글로벌 로드 밸런서 구성

로드 밸런서는 트래픽을 여러 오리진 풀에 분산시키는 데 도움을 줍니다.

  1. CIS 콘솔에서 안정성 > 글로벌 로드 밸런서 > 로드 밸런서를 클릭한 다음 생성을 클릭합니다.

  2. 로드 밸런서를 활성화합니다.

  3. 프록시의 경우, CIS 에서 트래픽이 보안 및 성능 기능을 통과하는지 여부를 확인하십시오. '해제'는 이러한 시스템을 무시합니다.

  4. 다음 정보를 구성합니다:

    • 이름(선택 사항): 로드 밸런서와 연결할 이름입니다.

    • TTL: 이 로드 밸런서가 리턴한 IP 주소에 대한 DNS 항목의 TTL(Time-to-live)입니다. 이 옵션은 프록싱되지 않은 로드 밸런서에만 적용됩니다. 그렇지 않은 경우 기본적으로 Automatic으로 설정됩니다.

    • 트래픽 조정: CIS 에서 각 요청을 처리할 데이터 센터(풀)를 결정하는 데 사용하는 알고리즘을 결정하여 수신 사용자 요청이 구성된 원본 풀에 분산되는 방식을 제어합니다. 자세한 내용은 트래픽 조정 최적화를 참조하세요.

    • 세션 선호도: 항상 동일한 성능 및 메트릭 인스턴스를 통해 라우팅합니다. 이 옵션은 프록시가 활성화된 경우에만 사용할 수 있습니다.

    • 지리적 경로: 특정 지역에 대한 지역 또는 국가 코드를 해당 지역의 풀 목록(장애 조치 우선순위 순으로 정렬됨)에 매핑한 것입니다. 명시적으로 정의되지 않은 지역은 기본 풀을 사용하여 장애 복구됩니다.

      IBM 의 지리적 지역은 CIS 에서 사용하는 지역과 다릅니다. 지리적 지역에 대한 자세한 내용은 지역 조정을 참조하세요.

  5. '생성'을 클릭하여 글로벌 로드 밸런서 구성을 완료하십시오.

4단계: 연결 확인

마지막으로 브라우저에서 URL 에 접속하여 애플리케이션에 대한 연결을 확인합니다.

콘솔에서 글로벌 로드 밸런서, 상태 확인 및 원본 풀을 업데이트 및 삭제하는 방법에 대한 자세한 내용은 글로벌 로드 밸런서 관리하기를 참조하세요.

CLI에서 글로벌 로드밸런서 구성하기

CLI에서 글로벌 로드 밸런서를 생성하고 구성하려면 다음 단계를 순서대로 따르세요:

  1. 상태 점검을 생성합니다. (선택 사항)
  2. 오리진 풀을 작성하십시오.
  3. 글로벌 로드 밸런서를 작성하십시오.

1단계: CLI에서 상태 확인 생성하기(선택 사항)

상태 검사는 오리진 풀에 대한 선택적 첨부 파일입니다. 사용자 정의 상태 확인을 정의하지 않으면, 시스템은 / 을 기본 상태 확인 경로로 사용합니다.

CLI에서 상태 확인을 생성하려면 다음 명령을 실행하십시오:

ibmcloud cis glb-monitor-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]

여기서:

--json

상태 확인을 설명하는 데 사용되는 JSON 파일 또는 JSON 문자열입니다. 필수.

  • JSON 데이터의 필수 필드는 type입니다.
    • type: 상태 확인에 사용할 프로토콜. 유효한 값은 HTTP, HTTPSTCP 입니다.
  • 선택적 필드는 description, timeout, retries, interval입니다.
    • description: 건강 검진에 대한 설명.
    • timeout: 상태 확인을 실패로 표시하기 전까지의 대기 시간(초 단위).
    • retries: 원본이 비정상 상태로 표시되기 전에 타임아웃이 발생할 경우 시도할 재시도 횟수입니다.
    • interval: 각 상태 점검 사이의 간격.
  • TCP 유형 상태 검사의 경우, 추가 필수 필드는 port입니다.
    • port: 상태 확인에 사용할 TCP 포트로 설정합니다.
  • HTTP/HTTPS 유형 상태 검사의 경우, 추가 선택적 필드는 port, expected_body, expected_codes, method, path, header, follow_redirects, allow_insecure입니다.
    • port: 상태 확인에 사용할 TCP 포트로 설정합니다.
    • expected_body: 응답 본문에서 검색할 대소문자를 구분하지 않는 부분 문자열입니다.
    • expected_codes: 상태 확인에서 예상되는 HTTP 응답 코드 또는 코드 범위.
    • method: 상태 확인에 사용할 HTTP 메서드.
    • path: 상태 확인을 수행할 엔드포인트 경로.
    • header: 상태 확인 시 전송해야 할 요청 헤더 목록( HTTP ).
    • follow_redirects: 원본 서버에서 리디렉션을 반환한 경우 해당 리디렉션을 따릅니다.
    • allow_insecure: 모니터가 HTTPS 를 사용할 때는 인증서를 검증하지 마십시오.
    • probe_zone: 프로빙 중에 이 모니터가 지정된 구역을 에뮬레이트하도록 할당합니다.

샘플 JSON 데이터:

HTTP/HTTPS의 경우:

{
  "description": "Health monitor of web service",
  "type": "https",
  "method": "GET",
  "path": "/health",
  "header": {
     "Host": [
        "example.com"
     ],
     "X-App-ID": [
        "abc123"
     ]
  },
  "timeout": 5,
  "retries": 2,
  "interval": 90,
  "follow_redirects": true,
  "allow_insecure": false,
  "expected_codes": "2xx",
  "expected_body": "alive",
  "probe_zone": "example.com"
}

TCP의 경우:

{
  "description": "Health monitor of TCP",
  "type": "tcp",
  "port": 80,
  "timeout": 5,
  "retries": 2,
  "interval": 90
}
-i, --instance

인스턴스 이름 또는 ID입니다. 인스턴스 이름이나 ID를 설정하지 않으면 명령은 컨텍스트 인스턴스(ibmcloud cis instance-set INSTANCE)를 사용합니다.

--output

출력 형식입니다. 현재 json 만이 지원되는 값입니다.

2단계: CLI에서 오리진 풀 만들기

CLI에서 원점 풀을 생성하려면 다음 명령을 실행하십시오:

ibmcloud cis glb-pool-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]

여기서:

--json
오리진 풀을 설명하는 데 사용되는 JSON 파일 또는 JSON 문자열입니다. 필수.
  • JSON 데이터에서 필수 입력 항목은 name, originscheck_regions 입니다:
    • name: 풀의 약칭(태그).
    • origins: 이 풀에 포함된 출처 목록.
    • check_regions: 지리적 지역 코드 목록.
  • 선택적 필드는 description, minimum_origins, enabled, monitor입니다.

샘플 JSON 데이터:

{
   "name": "us-pool",
   "description": "application server pool in US",
   "origins": [
      {
            "name": "us-app-dal01",
            "address": "1.1.1.1",
            "enabled": true,
            "header": {
               "host": ["test.com"]
            }
      },
      {
            "name": "us-app-dal02",
            "address": "2.2.2.2",
            "enabled": true,
            "header": {
               "host": ["example.com"]
            }
      }
   ],
   "minimum_origins": 1,
   "check_regions": [ "WNAM" ],
   "monitor": "f1aba936b94213e5b8dca0c0dbf1f9cc",
   "enabled": true
}
-i, --instance
인스턴스 이름 또는 ID입니다. 인스턴스 이름이나 ID를 설정하지 않으면 명령은 컨텍스트 인스턴스(ibmcloud cis instance-set INSTANCE)를 사용합니다.
--output
출력 형식입니다. 현재 json 만이 지원되는 값입니다.

3단계: CLI에서 글로벌 로드밸런서 만들기

CLI에서 글로벌 로드 밸런서를 생성하려면 다음 명령을 실행하십시오:

cis glb-create DNS_DOMAIN_ID (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]

여기서:

DNS_DOMAIN_ID
DNS 도메인의 ID입니다. 필수.
--json
글로벌 로드 밸런서를 설명하는 데 사용되는 JSON 파일 또는 JSON 문자열입니다. 필수.
  • JSON 데이터에서 필수 입력 항목은 name, fallback_pooldefault_pools 입니다:
    • name: 로드 밸런서에 연결할 DNS 호스트 이름입니다.
    • fallback_pool CIS 에서 다른 모든 풀을 건강하지 않은 것으로 감지할 때 사용할 풀 ID입니다.
    • default_pools: 장애 조치 우선순위 순으로 정렬된 풀 ID 목록입니다.
  • 선택적 필드는 description, ttl, region_pools, proxied, enabled, session_affinity, session_affinity_ttl, steering_policy입니다.
    • description: 로드 밸런서에 대한 설명.
    • ttl: 이 로드 밸런서가 반환하는 IP 주소에 대한 DNS 레코드의 유효 기간(TTL).
    • region_pools: 해당 지역의 풀 ID 목록(페일오버 우선순위 순으로 정렬됨)에 대한 지역 및 국가 코드 매핑 정보.
    • proxied: CIS 의 보안 및 성능 기능을 통해 트래픽이 흐르도록 할지 여부를 제어합니다.
    • enabled: 이 부하 분산기를 활성화할지 여부(기본값).
    • session_affinity CIS 이 세션 중에 사용자의 요청을 동일한 백엔드 서버로 일관되게 보내도록 합니다. 유효한 값은 cookienone 입니다.
    • session_affinity_ttl: CIS 에서 이 로드밸런서의 세션 선호도 쿠키를 생성한 후 만료될 때까지의 시간(초)입니다. 유효한 값은 [1800, 604800] 사이여야 합니다. 기본값은 82800입니다.
    • steering_policy : steering_policy 의 유효한 값은 off, ` `geo, random, ` `dynamic_latency입니다.
      • off: default_pools 를 사용하세요.
      • geo: region_pools/pop_pools 를 사용하세요.
      • random: 풀을 무작위로 선택하세요.
      • dynamic_latency: 왕복 시간을 기준으로 default_pools 에서 가장 가까운 풀을 선택합니다(풀 상태 확인이 필요합니다).

샘플 JSON 데이터:

{
      "name": "www.example.com",
      "fallback_pool": "17b5962d775c646f3f9725cbc7a53df4",
      "default_pools": [
         "17b5962d775c646f3f9725cbc7a53df4",
         "9290f38c5d07c2e2f4df57b1f61d4196"
      ],
      "description": "Example global load balancer.",
      "ttl": 60,
      "region_pools": {
         "WNAM": [
               "de90f38ced07c2e2f4df50b1f61d4194",
               "9290f38c5d07c2e2f4df57b1f61d4196"
         ],
         "ENAM": [
               "00920f38ce07c2e2f4df50b1f61d4194"
         ]
      }
}
-i, --instance
인스턴스 이름 또는 ID입니다. 인스턴스 이름이나 ID를 설정하지 않으면 명령은 컨텍스트 인스턴스(ibmcloud cis instance-set INSTANCE)를 사용합니다.
--output
출력 형식입니다. 현재 json 만이 지원되는 값입니다.

글로벌 로드 밸런서, 상태 확인 및 원본 풀 생성, 업데이트 및 삭제에 대한 자세한 내용은 글로벌 로드 밸런서 CLI 명령어를 참조하세요.

API로 글로벌 로드 밸런서 구성하기

API를 사용하여 글로벌 로드 밸런서를 생성하고 구성하려면 다음 단계를 순서대로 따르세요:

  1. 상태 점검을 생성합니다. (선택 사항)
  2. 오리진 풀을 작성하십시오.
  3. 글로벌 로드 밸런서를 작성하십시오.

1단계: API로 상태 확인 생성하기(선택 사항)

상태 검사는 오리진 풀에 대한 선택적 첨부 파일입니다. 사용자 정의 상태 확인을 정의하지 않으면, 시스템은 / 을 기본 상태 확인 경로로 사용합니다.

API로 상태 확인을 만들려면 다음 단계를 따르세요:

  1. 올바른 변수로 API 환경을 설정하십시오.
  2. API 명령어에서 사용할 수 있도록 다음 값을 변수에 저장하십시오:

CRN: 서비스 인스턴스의 전체 URL 인코딩 CRN

  1. 모든 변수의 초기화가 완료되면 상태 확인을 생성합니다:

    curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/load_balancers/monitors
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{
        "description": "",
        "type": "http",
        "interval": 60,
        "retries": 2,
        "timeout": 5,
        "expected_body": "",
        "expected_codes": "200",
        "follow_redirects": true,
        "allow_insecure": false,
        "path": "/status",
        "header": {
     	   "Host": ["www.example.com"],
     	   "X-App-ID": ["abc123"]
        },
        "method": "GET"
    }'
    

2단계: API로 오리진 풀 만들기

API를 사용하여 오리진 풀을 생성하려면 다음 단계를 따르세요:

  1. 올바른 변수로 API 환경을 설정하십시오.
  2. API 명령어에서 사용할 수 있도록 다음 값을 변수에 저장하십시오:

CRN: 서비스 인스턴스의 전체 URL 인코딩 CRN

  1. 모든 변수의 초기화가 완료되면 원점 풀을 생성합니다:

    curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/load_balancers/pools
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{
        "description": "",
        "enabled": true,
        "minimum_origins": 1,
        "monitor": "92859a0f6b4d3e55b953e0e29bb96338",
        "name": "eu-pool",
        "notification_email": "",
        "check_regions": [
            "EEU"
        ],
        "origins": [
            {
                "name": "eu-origin1",
                "address": "150.0.0.1",
                "enabled": true,
                "weight": 1
            },
            {
                "name": "eu-origin2",
                "address": "150.0.0.2",
                "enabled": true,
                "weight": 1
            }
        ]
    }'
    

3단계: API로 글로벌 로드밸런서 만들기

API를 사용하여 글로벌 부하 분산 장치를 만들려면 다음 단계를 따르세요:

  1. 올바른 변수로 API 환경을 설정하십시오.
  2. API 명령에 사용할 변수에 다음 값을 저장하십시오.

CRN: 서비스 인스턴스의 전체 URL 인코딩 CRN

ZONE_ID: 도메인 ID.

  1. 모든 변수가 시작되면 글로벌 로드 밸런서를 생성합니다:

    curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/zones/:zone_id/load_balancers
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{
        "description": "",
        "proxied": true,
        "enabled": true,
        "name": "www.example.com",
        "session_affinity": "none",
        "session_affinity_ttl": 5000,
        "steering_policy": "geo",
        "fallback_pool": "4112ba6c2974ec43886f90736968e838",
        "default_pools": [
         "6563ebae141638f92ebbdc4a821bef8c",
         "4112ba6c2974ec43886f90736968e838"
        ],
        "pop_pools": {},
        "region_pools": {
            "EEU": [
                "4112ba6c2974ec43886f90736968e838"
            ],
            "ENAM": [
                "6563ebae141638f92ebbdc4a821bef8c"
            ],
            "WEU": [
                "4112ba6c2974ec43886f90736968e838"
            ],
            "WNAM": [
                "6563ebae141638f92ebbdc4a821bef8c"
            ]
        }
    }'
    

글로벌 로드 밸런서, 상태 확인 및 오리진 풀 생성, 업데이트 및 삭제에 대한 자세한 내용은 API 글로벌 로드 밸런서를 참조하세요.

Terraform으로 글로벌 로드 밸런서 구성하기

시작하기 전에 테라폼 설정 CIS 으로 이동하는 단계를 완료해야 합니다.

Terraform으로 글로벌 로드 밸런서를 생성하고 구성하려면 다음 단계를 순서대로 따르세요:

  1. 상태 확인 작성
  2. 오리진 풀 만들기
  3. 글로벌 로드 밸런서 작성

1단계: 테라폼으로 상태 확인 생성하기(선택 사항)

상태 검사는 오리진 풀에 대한 선택적 첨부 파일입니다. 사용자 정의 상태 확인을 정의하지 않으면, 시스템은 / 을 기본 상태 확인 경로로 사용합니다.

테라폼으로 상태 확인을 만들려면 ibm_cis_healthcheck 리소스를 사용하세요:

resource "ibm_cis_healthcheck" "health_check" {
  cis_id         = ibm_cis.instance.id
  description    = "Health check for web servers"
  expected_body  = "alive"
  expected_codes = "200"
  method         = "GET"
  timeout        = 5
  path           = "/health"
  interval       = 60
  retries        = 2
  type           = "http"
  port           = 80
  allow_insecure = false
  follow_redirects = true
}

2단계: Terraform으로 오리진 풀 만들기

테라폼으로 오리진 풀을 만들려면 ibm_cis_origin_pool 리소스를 사용하세요:

resource "ibm_cis_origin_pool" "origin_pool" {
  cis_id = ibm_cis.instance.id
  name   = "us-pool"
  origins {
    name    = "us-app-dal01"
    address = "1.1.1.1"
    enabled = true
  }
  origins {
    name    = "us-app-dal02"
    address = "2.2.2.2"
    enabled = true
  }
  description        = "Application server pool in US"
  enabled            = true
  minimum_origins    = 1
  monitor            = ibm_cis_healthcheck.health_check.id
  notification_email = ""
  check_regions = [
    "WNAM"
  ]
}

3단계: Terraform으로 글로벌 로드 밸런서 만들기

Terraform으로 글로벌 로드 밸런서를 만들려면 ibm_cis_global_load_balancer 리소스를 사용하세요:

resource "ibm_cis_global_load_balancer" "global_load_balancer" {
  cis_id           = ibm_cis.instance.id
  domain_id        = ibm_cis_domain.domain.id
  name             = "www.example.com"
  fallback_pool_id = ibm_cis_origin_pool.origin_pool.id
  default_pool_ids = [
    ibm_cis_origin_pool.origin_pool.id
  ]
  description      = "Global load balancer for example.com"
  proxied          = true
  enabled          = true
  session_affinity = "cookie"
  steering_policy  = "geo"
  pop_pools {
    pop = "LAX"
    pool_ids = [
      ibm_cis_origin_pool.origin_pool.id
    ]
  }
  region_pools {
    region = "WNAM"
    pool_ids = [
      ibm_cis_origin_pool.origin_pool.id
    ]
  }
}

글로벌 로드 밸런서, 상태 확인 및 오리진 풀에 대한 Terraform 리소스에 대한 자세한 내용은 IBM Cloud 제공자 Terraform 레지스트리에서 다음 리소스를 참조하세요: