애플리케이션 접근 고가용성 (HA)
애플리케이션 서비스를 고가용성 (HA) 구성으로 배포할 수 있는 일반적인 두 가지 방법은 결합 인스턴스 및 분리 인스턴스입니다. 두 가지 방법 모두 여러 애플리케이션 서비스를 동일한 애플리케이션에 포인팅하는 방식입니다.
결합 인스턴스
가장 일반적인 접근 방법은 각 애플리케이션 서비스에
동일한 name
을 할당하여 애플리케이션을 프록시하는 것입니다.
동일한 애플리케이션을 프록시하는 두 개의 애플리케이션 서비스가 있는 경우, 두 에이전트의 구성은 동일해야 합니다:
# 두 에이전트를 위한 동일한 구성.
app_service:
enabled: "yes"
apps:
- name: "elastic"
uri: https://elasticsearch.example.com:9200
이 구성에서는 tsh apps ls
에서 애플리케이션의 단일 항목만 표시됩니다:
tsh apps lsApplication Description Type Public Address Labels----------- ----------- ---- ------------------------- -------------------elastic HTTP elastic.proxy.example.com teleport.dev/origin
연결할 때, Teleport는 로드 밸런싱을 제공하기 위해 무작위로 연결할 애플리케이션 서비스 인스턴스를 선택합니다. 선택된 인스턴스가 다운되면 (예: 가용 영역 중단 시), Teleport는 다른 인스턴스를 통해 연결을 시도합니다.
분리 인스턴스
분리 인스턴스의 경우, 각 애플리케이션 서비스 인스턴스가 애플리케이션을 프록시하며 서로 다른 이름을 할당합니다. 이렇게 하면 연결하려는 에이전트를 명시적으로 선택할 수 있습니다:
# 애플리케이션 서비스 인스턴스 #1.
app_service:
enabled: "yes"
apps:
# 인스턴스 #2와 이름이 다르지만 URI는 동일합니다.
- name: "elastic-us-east-1a"
uri: https://elasticsearch.example.com:9200
# 애플리케이션 서비스 인스턴스 #2.
app_service:
enabled: "yes"
apps:
# 인스턴스 #1과 이름이 다르지만 URI는 동일합니다.
- name: "elastic-us-east-1b"
uri: https://elasticsearch.example.com:9200
이 구성에서는 두 서비스가 tsh apps ls
출력에서 두 개의 별도 항목으로 나타나며
연결할 때 명시적으로 하나를 선택해야 합니다:
tsh apps lsApplication Description Type Public Address Labels------------------- ----------- ---- ------------------------- -------------------elastic-us-east-1a HTTP elastic.proxy.example.com teleport.dev/originelastic-us-east-1b HTTP elastic.proxy.example.com teleport.dev/origin
이 접근 방식은 연결하려는 인스턴스를 제어하고 싶을 때 유용합니다.