관리형 연결 풀링 개요

이 페이지에서는 관리형 연결 풀링의 정의와 Cloud SQL 인스턴스에서 이를 사용하는 방법을 설명합니다.

관리형 연결 풀링을 사용하면 풀링을 통해 PostgreSQL용 Cloud SQL 인스턴스의 리소스 사용률과 연결 지연 시간을 최적화하여 워크로드를 확장할 수 있습니다. 관리형 연결 풀링은 가능하면 수신 요청에 서버 연결을 동적으로 할당합니다. 이렇게 하면 갑작스러운 연결 급증을 흡수하고 기존 데이터베이스 연결을 재사용하여 특히 확장된 연결의 성능을 크게 개선할 수 있습니다. 관리형 연결 풀링은 특정 데이터베이스에 연결하는 대신 풀러 클러스터에 연결하므로 워크로드의 연결 시간과 확장성이 단축됩니다. 사용되는 풀러 수는 인스턴스의 vCPU 코어 수를 기준으로 합니다.

관리형 연결 풀링은 모든 트랜잭션 워크로드에 사용할 수 있지만, 관리형 연결 풀링은 단기 연결이 포함된 애플리케이션 또는 연결 급증을 일으키는 애플리케이션에서 가장 높은 처리량과 지연 시간 이점을 제공합니다.

장기 연결의 경우 관리형 연결 풀링을 사용하는 연결 성능이 직접 연결을 사용할 때보다 약간 낮을 수 있습니다. 이 경우 관리형 연결 풀링은 연결 수가 매우 많은 경우 연결 확장을 제공합니다. 그러나 일반적으로 장기 연결을 설정하는 애플리케이션의 경우 인스턴스에 대한 직접 연결을 대신 사용할 수 있습니다.

관리형 연결 풀링을 사용 설정하는 방법에 관한 자세한 내용은 관리형 연결 풀링 구성을 참고하세요.

요구사항

관리형 연결 풀링을 사용하려면 인스턴스가 다음 요구사항을 충족해야 합니다.

  • 인스턴스가 Cloud SQL Enterprise Plus 버전 인스턴스여야 합니다.
  • 직접 연결 또는 Cloud SQL 인증 프록시만 사용하여 인스턴스에 연결되어 있어야 합니다.
  • 유효한 사용자 이름과 비밀번호를 사용하여 인스턴스에 연결되어 있어야 합니다. 관리형 연결 풀링을 사용할 때는 IAM 및 IAM 그룹 사용자가 지원되지 않습니다.
  • 인스턴스가 비공개 서비스 액세스를 위해 설정되어 있거나 공개 IP를 사용하거나 Private Service Connect가 사용 설정된 새 인스턴스여야 합니다.
  • 인스턴스가 새 Cloud SQL 네트워크 아키텍처를 사용해야 합니다.
  • 관리형 연결 풀링에는 최소 유지관리 버전 번호 POSTGRES_$version.R20250302.00_04가 필요합니다. 자세한 내용은 셀프서비스 유지보수를 참고하세요.

사용 가능한 구성 옵션

관리형 연결 풀링은 pool_mode 매개변수를 사용하여 설정할 수 있는 다음과 같은 풀링 옵션을 제공합니다.

  • transaction (기본값): 트랜잭션 수준에서 연결을 풀링합니다.
  • session: 세션 수준에서 연결을 풀링합니다.

다음 구성 매개변수를 사용하여 관리형 연결 풀링을 맞춤설정할 수도 있습니다.

  • max_pool_size: 연결 풀의 최대 크기입니다. 기본값은 연결 50개입니다.
  • min_pool_size: 연결 풀의 임곗값 크기입니다. 서버 연결 수가 min_pool_size보다 적으면 풀에 서버 연결을 더 추가합니다. 기본값은 연결 0개입니다.
  • max_client_connections: 인스턴스에 허용되는 최대 연결 수입니다. 기본값은 연결 5,000개입니다.
  • client_connection_idle_timeout: 클라이언트 연결이 타임아웃되기 전에 유휴 상태로 유지되는 시간입니다. 이 값의 범위는 0~2,147,483초이며 기본값은 0초입니다.
  • server_connection_idle_timeout: 서버 연결이 타임아웃되기 전에 유휴 상태로 유지되는 시간입니다. 이 값은 0~2,147,483초 범위에서 지정할 수 있으며 기본값은 600초입니다.
  • query_wait_timeout: 쿼리가 타임아웃될 때까지 대기하는 시간입니다. 이 값은 0~2,147,483초 범위에서 지정할 수 있으며 기본값은 120초입니다.
  • max_prepared_statements: 트랜잭션 풀링 모드에서 지원되는 프로토콜 수준의 이름이 지정된 준비된 문 명령어의 최대 개수입니다. 기본값은 0입니다.
  • ignore_startup_parameters: 기본적으로 관리형 연결 풀링의 시작 패킷에서 추적되지 않는 무시할 매개변수입니다.
  • server_lifetime: 관리형 연결 풀링이 서버 연결을 닫기 전에 서버 연결이 사용되지 않는 최대 시간입니다. 기본값은 3,600초입니다.

제한사항

Cloud SQL Enterprise Plus 버전 인스턴스에서 관리형 연결 풀링을 사용할 때는 다음 제한사항을 고려하세요.

  • 기존 인스턴스에서 관리형 연결 풀링을 사용 설정하면 데이터베이스가 다시 시작됩니다.
  • Cloud SQL API를 사용하여 관리형 연결 풀링을 사용 설정, 사용 중지 또는 구성하는 경우 instance.update API는 다른 인스턴스 구성 업데이트를 포함할 수 없습니다.
  • 관리형 연결 풀링은 Cloud SQL 인증 프록시 버전 2.15.2 이상에서만 사용할 수 있습니다.
  • Cloud SQL Go 언어 커넥터를 사용하는 경우 최소 Go 버전 1.24을 사용하는 것이 좋습니다. Go 버전 1.23 이하를 사용하는 경우 관리형 연결 풀링을 사용할 때 성능이 제한될 수 있습니다.
  • transaction 풀링 모드에서 관리형 연결 풀링을 사용하는 경우 다음 SQL 기능은 지원되지 않습니다.

    • SET/RESET
    • LISTEN
    • WITH HOLD CURSOR
    • PREPARE/DEALLOCATE
    • PRESERVE/DELETE ROW 임시 테이블
    • LOAD
    • 세션 수준의 권장 잠금
  • PostgreSQL용 Cloud SQL 버전 17을 사용하는 경우 sslnegotiation=direct 옵션은 지원되지 않습니다.

다음 단계