로드 밸런서 배포 고려 사항

로드 밸런서 배포 고려 사항 (Load balancer deployment considerations)

Consul을 서비스 디스커버리로 사용하는 Nomad 배포에서 성능과 고가용성을 위한 로드 밸런서 배포 고려 사항을 알아봐요.

출처: 문서

본문

로드 밸런서는 들어오는 애플리케이션 트래픽을 여러 Nomad 클라이언트에 분산해요. 이 개요는 서비스 디스커버리에 Consul을 사용하는 Nomad 배포에서 성능과 고가용성을 위한 로드 밸런서 배포 고려 사항을 제공해요.

별도 데이터 센터의 시스템 작업으로 로드 밸런서 배포하기

로드 밸런서 애플리케이션이 system 스케줄러를 사용하고 인프라 애플리케이션 전용으로 잘 정의된 제한된 수의 노드가 있는 Nomad 데이터 센터에 배포하도록 구성해요. 이 접근 방식은 다음과 같은 장점이 있어요.

  • 인프라 관련 작업의 제출/수정과 핵심 애플리케이션 사이의 격리
  • 전체 클러스터에 걸친 리소스 과잉 사용 방지

특정 데이터 센터에 배포하는 시스템 작업을 구성하는 방법은 작업 명세의 type 블록과 datacenters 블록을 참고해요.

하나 이상의 인스턴스를 가진 서비스 작업으로 로드 밸런서 배포하기

로드 밸런서가 service 스케줄러를 사용하고 하나 이상의 인스턴스를 가지도록 구성해요. 이 접근 방식은 클러스터 리소스의 과잉 사용을 피하지만 다음을 염두에 두어야 해요.

  • 애플리케이션은 클러스터의 로드 밸런서 인스턴스를 발견하기 위해 Consul 서비스 디스커버리를 사용해야 해요.
  • 트래픽과 사용률에 따라 로드 밸런서의 작업 리소스와 인스턴스 수를 수동으로 조정해야 해요.

구성 정보는 작업 명세의 type, resources, count 블록을 참고해요.

클라우드 자동 확장 그룹에 로드 밸런서 배포하기

클라우드 제공자의 자동 확장 기능과 Nomad의 클라이언트 메타데이터 구성 옵션을 결합해요. 이 접근 방식은 로드 밸런서 가용성을 보장해요. 전용 로드 밸런서 노드 중 하나가 다운되면 클라우드 제공자가 필요한 인프라를 제공해요. 그러면 Nomad가 로드 밸런서를 올바른 노드에 배포해요.

다음은 높은 수준의 구현 개요예요.

  1. 클라우드 제공자에 자동 확장 그룹을 만들어요.
  2. 로드 밸런서를 실행할 Nomad 클라이언트를 구성해요. node_class를 지정해 Nomad가 이 노드들을 논리적으로 그룹화하게 해요. 클라우드 자동 확장 그룹 메타데이터를 client metadata로 추가해요.
  3. 로드 밸런서 작업을 구성해요. node_class에 대한 작업 제약 조건(job constraint)을 추가해요. 클라우드 자동 확장 메타데이터에 대한 제약 조건을 추가해요. 이는 메타데이터와 일치하는 노드에만 배포를 제한해요.
  4. 로드 밸런서 작업을 실행해요.

다음 단계

특정 로드 밸런싱 애플리케이션에 대한 가이드는 다음과 같아요.

이 모든 로드 밸런서 가이드는 Consul을 사용하도록 구성된 Nomad 설치를 필요로 한다는 점을 기억해요.

추가로 애플리케이션 로드 밸런싱으로 외부 트래픽 관리하기 튜토리얼에서 AWS에 Application Load Balancer를 배포해 Nomad에서 실행 중인 내부 로드 밸런싱 애플리케이션으로 외부 인터넷 트래픽을 허용하는 방법을 배울 수 있어요.

더 알아보기 (Learn more)