InfoGrab DocsInfoGrab Docs

Teleport 데이터베이스 상태 확인

Teleport 데이터베이스 상태 확인을 구성하고 타깃 상태 정보를 확인하는 방법.

Teleport 18부터 제공되는 데이터베이스 상태 확인(health check)은 Teleport Database Service 인스턴스에서 Teleport 클러스터에 등록된 데이터베이스로의 연결 상태를 모니터링하는 데 사용됩니다. 이 페이지에서는 데이터베이스 상태 확인의 작동 방식과 health_check_config 리소스를 사용하여 이를 구성하는 방법을 설명합니다. 상태 확인으로 데이터베이스 연결을 모니터링해야 하는 이유는 무엇일까요? 관찰 가능성(Observability) : 사용자가 데이터베이스에 연결을 시도하기 전에 네트워킹 문제를 발견할 수 있습니다. 상태가 불량한(unhealthy) 데이터베이스는 Teleport 웹 UI에서 강조 표시되며, Teleport 클러스터의 API를 통해 프로그래밍 방식으로도 확인할 수 있습니다. 고가용성(High Availability) : 동일하게 등록된 데이터베이스에 대한 연결을 프록시하기 위해 여러 개의 Teleport Database Service 인스턴스를 배포할 수 있습니다. Teleport는 데이터베이스 엔드포인트에 도달할 수 없는 인스턴스보다 도달할 수 있는 Database Service 인스턴스를 통해 사용자 연결을 우선적으로 라우팅합니다. 작동 방식 # 사용자가 Teleport를 통해 데이터베이스에 연결하면, 해당 연결은 Teleport Database Service 인스턴스를 통해 라우팅됩니다. Database Service는 연결을 프록시하기 위해 데이터베이스의 엔드포인트에 도달할 수 있어야 합니다. 상태 확인 구성(health check config)은 특정 라벨을 가진 등록된 데이터베이스에 대해 상태 확인을 활성화하는 Teleport 동적 리소스입니다. 구성이 생성, 업데이트 또는 삭제되면, 모든 Teleport Database Service 인스턴스는 자신이 프록시하는 각 등록된 데이터베이스에 어떤 상태 확인 구성이 적용되는지를 다시 평가합니다. 일치하는 데이터베이스에 대해 Teleport Database Service 인스턴스는 정기적으로 상태 확인을 수행합니다. 데이터베이스와 일치하는 상태 확인 구성이 없으면, 해당 데이터베이스에 대한 상태 확인은 활성화되지 않습니다. Database Service 인스턴스가 상태 확인을 실행할 때, 확인의 성격은 데이터베이스가 Teleport에 등록될 당시의 프로토콜에 따라 달라집니다. MySQL 데이터베이스의 경우 Database Service는 데이터베이스에 연결을 시도하고 MySQL 인증 핸드셰이크를 수행하는데, 이 핸드셰이크는 데이터베이스 서버의 수신 연결 제한을 우회하기 위한 것으로 성공할 필요는 없습니다. 다른 프로토콜의 경우 Database Service 인스턴스는 데이터베이스의 엔드포인트로 TCP 연결을 설정하려고 시도하고 연결 성공 여부를 보고합니다. 데이터베이스가 등록되면 처음에는 상태가 "unknown"(알 수 없음)으로 설정됩니다. 상태 확인이 비활성화된 경우 상태는 계속 "unknown"으로 유지됩니다.