연결 문자열
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=require | TLS는 필수입니다. verify-full도 작동하며 권장됩니다. |
TLS
엔드포인트는 *.<region>.kisenon.com에 대한 Let's Encrypt 인증서로 TLS를
종료합니다. 표준 Postgres 클라이언트는 시스템 신뢰 저장소에 대해 검증하며,
사용자 정의 CA가 필요하지 않습니다.
sslmode=verify-full은 프로덕션 코드에 권장됩니다. 인증서 체인 그리고
호스트명을 확인합니다.
프록시가 엔드포인트로 라우팅하는 방식
데이터 플레인 프록시는 두 가지 신호로부터 연결이 어느 엔드포인트에 속하는지 순서대로 결정합니다:
- 클라이언트가 보내는 경우,
neon.endpoint_idstartup 옵션. - 폴백으로서 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입니다.
다중 엔드포인트
같은 브랜치에 여러 엔드포인트를 띄울 수 있습니다. 이들은 스토리지를 공유하지만 독립적인 연결 한도와 캐시를 가집니다. 다음을 격리하는 데 사용하세요:
- 앱 대 분석 트래픽.
- 읽기 복제본(브랜치의 어떤 엔드포인트든 쓰기를 하지 않으면 본질적으로 읽기 복제본입니다).
- 개발 브랜치의 환경별 엔드포인트.