kisenon

연결 문자열

Kisenon 엔드포인트의 형식, TLS, 역할 및 비밀번호 규칙.

모든 Kisenon 엔드포인트는 표준 postgresql:// URI를 노출합니다:

postgresql://<role>:<pwd>@<endpoint_id>.<region>.kisenon.com:5432/<database>?sslmode=require

구성 요소

필드의미
<role>브랜치에 생성된 Postgres 역할. 엔드포인트 카드는 자동 생성된 app 역할을 보여줍니다; SQL을 통해 더 만들 수 있습니다.
<pwd>역할의 비밀번호. 생성 시 한 번 노출됩니다; SQL을 통해 교체하세요.
<endpoint_id>엔드포인트별로 안정적, 예: ep_4f3c12a9b8e6. SNI로 라우팅됩니다.
<region>프로젝트의 리전 슬러그 — 오늘은 usc1(미국 중부, GCP). 하드코딩되지 않고 파생됩니다; Regions를 참조하세요.
kisenon.com데이터 플레인 정점. TLS SNI를 통해 엔드포인트로 라우팅됩니다.
5432표준 Postgres 포트.
<database>기본값 main; CREATE DATABASE로 더 만드세요.
?sslmode=requireTLS는 필수입니다. verify-full도 작동하며 권장됩니다.

TLS

엔드포인트는 *.<region>.kisenon.com에 대한 Let's Encrypt 인증서로 TLS를 종료합니다. 표준 Postgres 클라이언트는 시스템 신뢰 저장소에 대해 검증하며, 사용자 정의 CA가 필요하지 않습니다.

sslmode=verify-full은 프로덕션 코드에 권장됩니다. 인증서 체인 그리고 호스트명을 확인합니다.

프록시가 엔드포인트로 라우팅하는 방식

데이터 플레인 프록시는 두 가지 신호로부터 연결이 어느 엔드포인트에 속하는지 순서대로 결정합니다:

  1. 클라이언트가 보내는 경우, neon.endpoint_id startup 옵션.
  2. 폴백으로서 TLS SNI 호스트명(<endpoint_id>.<region>.kisenon.com).

라우팅에는 사용자명 필드가 참조되지 않습니다 — 브랜치가 정의하는 아무 역할이나 고르세요. 콘솔이 생성한 연결 문자열은 호스트명에 엔드포인트를 담고 있으므로 SNI를 통해 자동으로 라우팅되며, 추가로 설정할 것이 없습니다.

neon.endpoint_id를 명시적으로 전달하는 것은 클라이언트가 SNI에 엔드포인트를 제시할 수 없을 때뿐입니다 — 예를 들어 Server Name 확장을 보내지 않는 TLS 스택이나, 호스트를 다시 쓰는 터널의 경우입니다. 대부분의 Postgres 드라이버는 기본적으로 SNI를 보내므로 이것은 거의 필요하지 않습니다.

연결 풀링

풀링은 GA이며 기본적으로 켜져 있습니다 — 모든 엔드포인트는 직접 호스트와 함께 풀링된 호스트를 가집니다(2026-07-18부터).

풀링된 호스트는 <endpoint_id>-pooler.<region>.kisenon.com입니다 — 동일한 엔드포인트이되 호스트 레이블에 -pooler가 삽입된 것 — 포트 5432에서 sslmode=require로:

postgresql://<role>:<pwd>@<endpoint_id>-pooler.<region>.kisenon.com:5432/<database>?sslmode=require

콘솔의 Connect 패널과 API 응답 모두 직접 connection_uri와 함께 connection_uri_pooled를 건네줍니다.

풀러는 트랜잭션 풀링 모드로 실행됩니다(컴퓨트마다 PgBouncer 사이드카). 이는 각 트랜잭션이 서버 연결을 빌리고 즉시 반환할 수 있는 수많은 수명이 짧은 연결 — 서버리스 함수, 엣지 런타임, 에이전트 — 에 이상적입니다.

대신 다음이 필요할 때는 직접(풀링되지 않은 :5432) 연결을 사용하세요:

  • LISTEN / NOTIFY.
  • 세션 수준 어드바이저리 락.
  • 단일 트랜잭션보다 오래 지속되어야 하는 세션 SET / GUC.
  • 서버 측 프리페어드 스테이트먼트.

직접 connection_uri는 항상 사용 가능하며 결코 제거되지 않으므로, 이들은 이전과 정확히 동일하게 계속 작동합니다. 직접 연결 앞에 있는 클라이언트 측 풀(PgBouncer 또는 드라이버의 내장 풀)도 여전히 유효합니다.

생성 시 pooler_enabled: false 필드로 또는 PATCH /v1/endpoints/{endpointId}를 통해 엔드포인트를 풀링에서 제외하세요. 기본값은 true입니다.

다중 엔드포인트

같은 브랜치에 여러 엔드포인트를 띄울 수 있습니다. 이들은 스토리지를 공유하지만 독립적인 연결 한도와 캐시를 가집니다. 다음을 격리하는 데 사용하세요:

  • 앱 대 분석 트래픽.
  • 읽기 복제본(브랜치의 어떤 엔드포인트든 쓰기를 하지 않으면 본질적으로 읽기 복제본입니다).
  • 개발 브랜치의 환경별 엔드포인트.