Infograb logo
데이터베이스 접근 고가용성 (HA)

고가용성 (HA) 구성에서 Teleport 데이터베이스 서비스를 배포할 수 있습니다. 두 가지 방법이 있으며, 모두 여러 데이터베이스 서비스 인스턴스를 동일한 데이터베이스 인스턴스에 포인팅하는 것을 포함합니다:

  • 동일한 동적 리소스 감시자를 가진 여러 데이터베이스 서비스 인스턴스 배포.
  • 동일한 데이터베이스 인스턴스를 프록시하도록 구성된 여러 데이터베이스 서비스 인스턴스 배포.

동적 리소스 감시자

동일한 동적 db 리소스를 감시하도록 여러 데이터베이스 서비스 복제본을 구성할 수 있습니다.

데이터베이스 서비스를 동적 리소스를 감시하도록 구성하려면, resources 구성에 labels 필드를 추가하십시오:

db_service:
  enabled: "yes"
  resources:
  - labels:
      "region": "us-east-1"

동적 db 리소스를 생성할 때, 그 db 리소스의 레이블을 감시하도록 구성된 모든 데이터베이스 서비스 복제본이 해당 데이터베이스 인스턴스를 프록시합니다. 예를 들어, 위의 db_service 구성은 데이터베이스 서비스에 region:us-east-1 레이블을 가진 모든 db 리소스를 프록시하도록 지시합니다.

연결 시, Teleport는 부하 균형을 제공하기 위해 무작위로 데이터베이스 서비스 인스턴스를 선택합니다. 선택된 인스턴스가 다운된 경우 (예: 데이터 센터 장애 발생 시), Teleport는 다른 인스턴스를 통해 연결을 시도합니다.

동적 데이터베이스 리소스 설정에 대한 자세한 정보는 동적 데이터베이스 등록을 참조하십시오.

정적 데이터베이스 서비스 구성

정적 구성을 사용하여 동일한 데이터베이스 인스턴스에 연결하도록 데이터베이스 서비스 복제본을 명시적으로 구성할 수 있습니다. 이 접근 방식은 Teleport를 통해 프록시할 데이터베이스가 시간이 지남에 따라 안정적으로 유지될 것으로 예상되는 경우 유용합니다.

정적 구성을 사용하여 데이터베이스 서비스를 고가용성으로 배포하는 두 가지 접근 방식이 있으며, 아래에서 설명합니다:

  • 결합된 복제본: Teleport가 데이터베이스 트래픽을 데이터베이스 서비스 복제본 간에 부하 균형을 맞춤
  • 별도의 복제본: 클라이언트가 데이터베이스에 연결하기 위해 사용할 에이전트를 선택

결합된 복제본

동일한 데이터베이스를 프록시하는 두 개의 데이터베이스 서비스가 있는 경우, 두 에이전트에 대한 구성은 동일합니다:

# 두 에이전트 모두에 대해 동일한 구성.
db_service:
  enabled: "yes"
  databases:
  - name: "postgres"
    protocol: "postgres"
    uri: "postgres.example.com:5432"

이 구성을 사용하면, tsh db ls에서 데이터베이스에 대한 단일 항목만 표시됩니다:

tsh db ls

이름

--------

postgres


tsh db connect postgres

동적 리소스와 마찬가지로, Teleport는 데이터베이스에 연결할 때 무작위로 데이터베이스 서비스 인스턴스를 선택하여 연결합니다.

별도의 복제본

별도의 복제본을 사용하면, 데이터베이스를 프록시하는 각 데이터베이스 서비스 인스턴스가 다른 이름을 부여합니다. 이를 통해 데이터베이스에 연결하려는 에이전트를 명시적으로 선택할 수 있습니다:

# 데이터베이스 서비스 인스턴스 #1.
db_service:
  enabled: "yes"
  databases:
  # 인스턴스 #2와 이름이 다르지만 URI는 동일합니다.
  - name: "postgres-us-east-1a"
    protocol: "postgres"
    uri: "postgres.example.com:5432"
# 데이터베이스 서비스 인스턴스 #2.
db_service:
  enabled: "yes"
  databases:
  # 인스턴스 #1과 이름이 다르지만 URI는 동일합니다.
  - name: "postgres-us-east-1b"
    protocol: "postgres"
    uri: "postgres.example.com:5432"

이 구성을 사용하면, 두 서비스는 tsh db ls 출력에서 두 개의 별도 항목으로 나타나고, 연결 시 하나를 명시적으로 선택해야 합니다:

tsh db ls

이름

-------------------

postgres-us-east-1a

postgres-us-east-1b


tsh db connect postgres-us-east-1a

이 접근 방식은 연결할 복제본을 제어하고 싶을 때 유용합니다.

다음 단계

  • 연결하기로 시작하여 데이터베이스를 연결합니다.
  • Teleport 데이터베이스 서비스와 Teleport 에이전트에서 실행되는 다른 서비스의 아키텍처를 검토하십시오.
Teleport 원문 보기