_data plane_은 LangGraph Server (배포), 지원 인프라, 그리고 LangSmith control plane으로부터 업데이트를 지속적으로 폴링하는 “listener” 애플리케이션으로 구성됩니다.

Server 인프라

LangGraph Server 자체 외에도, 각 서버에 대한 다음 인프라 구성 요소들이 “data plane”의 광범위한 정의에 포함됩니다:
  • PostgreSQL: 사용자, 실행 및 메모리 데이터를 위한 영속성 계층.
  • Redis: worker들을 위한 통신 및 임시 메타데이터.
  • Secrets store: 환경 시크릿의 안전한 관리.
  • Autoscalers: 부하에 따라 서버 컨테이너를 확장.

”Listener” 애플리케이션

data plane “listener” 애플리케이션은 주기적으로 control plane API를 호출하여:
  • 새로운 배포가 생성되어야 하는지 결정합니다.
  • 기존 배포가 업데이트되어야 하는지 결정합니다 (즉, 새로운 revision).
  • 기존 배포가 삭제되어야 하는지 결정합니다.
다시 말해, data plane “listener”는 control plane의 최신 상태(원하는 상태)를 읽고, 미해결 배포(현재 상태)를 최신 상태와 일치시키기 위한 조치를 취합니다.

PostgreSQL

PostgreSQL은 LangGraph Server의 모든 사용자, 실행 및 장기 메모리 데이터를 위한 영속성 계층입니다. 이는 checkpoint(여기에서 자세한 정보 참조), 서버 리소스(thread, run, assistant 및 cron), 그리고 장기 메모리 저장소에 저장된 항목(여기에서 자세한 정보 참조)을 모두 저장합니다.

Redis

Redis는 각 LangGraph Server에서 서버와 queue worker가 통신하고 임시 메타데이터를 저장하는 방법으로 사용됩니다. 사용자 또는 실행 데이터는 Redis에 저장되지 않습니다.

통신

LangGraph Server의 모든 실행은 각 배포의 일부인 백그라운드 worker 풀에 의해 실행됩니다. 이러한 실행에 대한 일부 기능(취소 및 출력 스트리밍 등)을 활성화하려면 서버와 특정 실행을 처리하는 worker 간의 양방향 통신 채널이 필요합니다. 우리는 Redis를 사용하여 해당 통신을 구성합니다.
  1. Redis list는 새로운 실행이 생성되는 즉시 worker를 깨우는 메커니즘으로 사용됩니다. 이 list에는 센티널 값만 저장되며, 실제 실행 정보는 저장되지 않습니다. 실행 정보는 worker가 PostgreSQL에서 검색합니다.
  2. Redis string과 Redis PubSub channel의 조합은 서버가 적절한 worker에게 실행 취소 요청을 전달하는 데 사용됩니다.
  3. Redis PubSub channel은 worker가 실행을 처리하는 동안 에이전트의 스트리밍 출력을 브로드캐스트하는 데 사용됩니다. 서버의 모든 열린 /stream 요청은 해당 channel을 구독하고 도착하는 모든 이벤트를 응답으로 전달합니다. 어떤 이벤트도 Redis에 저장되지 않습니다.

임시 메타데이터

LangGraph Server의 실행은 특정 실패에 대해 재시도될 수 있습니다(현재는 실행 중 발생한 일시적인 PostgreSQL 오류에 대해서만). 재시도 횟수를 제한하기 위해(현재 실행당 3회 시도로 제한) 실행이 선택될 때 Redis string에 시도 번호를 기록합니다. 이는 ID 외에 실행별 정보를 포함하지 않으며, 짧은 지연 후 만료됩니다.

Data plane 기능

이 섹션에서는 data plane의 다양한 기능을 설명합니다.

Data region

Cloud 전용 Data region은 Cloud 배포에만 적용됩니다.
배포는 2개의 data region에서 생성될 수 있습니다: US와 EU 배포의 data region은 배포가 생성된 LangSmith organization의 data region에 의해 암시됩니다. 배포 및 배포의 기본 데이터베이스는 data region 간에 마이그레이션할 수 없습니다.

Autoscaling

Production 타입 배포는 자동으로 최대 10개의 컨테이너까지 확장됩니다. 확장은 3가지 메트릭을 기반으로 합니다:
  1. CPU 사용률
  2. 메모리 사용률
  3. 대기 중인(진행 중인) run
CPU 사용률의 경우, autoscaler는 75% 사용률을 목표로 합니다. 이는 autoscaler가 CPU 사용률이 75%에 가깝도록 컨테이너 수를 늘리거나 줄인다는 것을 의미합니다. 메모리 사용률의 경우에도 autoscaler는 75% 사용률을 목표로 합니다. 대기 중인 실행 수의 경우, autoscaler는 10개의 대기 중인 실행을 목표로 합니다. 예를 들어, 현재 컨테이너 수가 1개이지만 대기 중인 실행이 20개인 경우, autoscaler는 배포를 2개의 컨테이너로 확장합니다(20개의 대기 중인 실행 / 2개의 컨테이너 = 컨테이너당 10개의 대기 중인 실행). 각 메트릭은 독립적으로 계산되며 autoscaler는 가장 많은 수의 컨테이너를 초래하는 메트릭을 기반으로 확장 작업을 결정합니다. 축소 작업은 조치를 취하기 전에 30분 동안 지연됩니다. 다시 말해, autoscaler가 배포를 축소하기로 결정하면 먼저 30분을 기다린 후 축소합니다. 30분 후 메트릭이 다시 계산되고, 재계산된 메트릭이 현재 수보다 적은 수의 컨테이너를 초래하면 배포가 축소됩니다. 그렇지 않으면 배포는 확장된 상태로 유지됩니다. 이 “쿨다운” 기간은 배포가 너무 자주 확장 및 축소되지 않도록 보장합니다.

정적 IP 주소

Cloud 전용 정적 IP 주소는 Cloud 배포에만 사용할 수 있습니다.
2025년 1월 6일 이후에 생성된 배포의 모든 트래픽은 NAT gateway를 통해 전달됩니다. 이 NAT gateway는 data region에 따라 여러 개의 정적 IP 주소를 갖습니다. 정적 IP 주소 목록은 아래 표를 참조하세요:
USEU
35.197.29.14634.13.192.67
34.145.102.12334.147.105.64
34.169.45.15334.90.22.166
34.82.222.1734.147.36.213
35.227.171.13534.32.137.113
34.169.88.3034.91.238.184
34.19.93.20235.204.101.241
34.19.34.5035.204.48.32
34.59.244.194
34.9.99.224
34.68.27.146
34.41.178.137
34.123.151.210
34.135.61.140
34.121.166.52
34.31.121.70

커스텀 PostgreSQL

커스텀 PostgreSQL 인스턴스는 hybridself-hosted 배포에만 사용할 수 있습니다.
control plane에 의해 자동으로 생성되는 것 대신 커스텀 PostgreSQL 인스턴스를 사용할 수 있습니다. 커스텀 PostgreSQL 인스턴스를 사용하려면 POSTGRES_URI_CUSTOM 환경 변수를 지정하세요. 여러 배포가 동일한 PostgreSQL 인스턴스를 공유할 수 있습니다. 예를 들어, Deployment A의 경우 POSTGRES_URI_CUSTOMpostgres://<user>:<password>@/<database_name_1>?host=<hostname_1>로 설정하고, Deployment B의 경우 POSTGRES_URI_CUSTOMpostgres://<user>:<password>@/<database_name_2>?host=<hostname_1>로 설정할 수 있습니다. <database_name_1>database_name_2는 동일한 인스턴스 내의 서로 다른 데이터베이스이지만, <hostname_1>은 공유됩니다. 동일한 데이터베이스를 별도의 배포에 사용할 수 없습니다.

커스텀 Redis

커스텀 Redis 인스턴스는 HybridSelf-Hosted 배포에만 사용할 수 있습니다.
control plane에 의해 자동으로 생성되는 것 대신 커스텀 Redis 인스턴스를 사용할 수 있습니다. 커스텀 Redis 인스턴스를 사용하려면 REDIS_URI_CUSTOM 환경 변수를 지정하세요. 여러 배포가 동일한 Redis 인스턴스를 공유할 수 있습니다. 예를 들어, Deployment A의 경우 REDIS_URI_CUSTOMredis://<hostname_1>:<port>/1로 설정하고, Deployment B의 경우 REDIS_URI_CUSTOMredis://<hostname_1>:<port>/2로 설정할 수 있습니다. 12는 동일한 인스턴스 내의 서로 다른 데이터베이스 번호이지만, <hostname_1>은 공유됩니다. 동일한 데이터베이스 번호를 별도의 배포에 사용할 수 없습니다.

LangSmith tracing

LangGraph Server는 LangSmith로 trace를 전송하도록 자동으로 구성됩니다. 각 배포 옵션에 대한 세부 정보는 아래 표를 참조하세요.
CloudHybridSelf-Hosted
필수
LangSmith SaaS로 trace.
선택 사항
tracing 비활성화 또는 LangSmith SaaS로 trace.
선택 사항
tracing 비활성화, LangSmith SaaS로 trace, 또는 Self-Hosted LangSmith로 trace.

Telemetry

LangGraph Server는 청구 목적으로 telemetry 메타데이터를 보고하도록 자동으로 구성됩니다. 각 배포 옵션에 대한 세부 정보는 아래 표를 참조하세요.
CloudHybridSelf-Hosted
LangSmith SaaS로 telemetry 전송.LangSmith SaaS로 telemetry 전송.air-gapped license key에 대한 자체 보고 사용량(감사).
LangSmith License Key에 대해 LangSmith SaaS로 telemetry 전송.

Licensing

LangGraph Server는 license key 검증을 수행하도록 자동으로 구성됩니다. 각 배포 옵션에 대한 세부 정보는 아래 표를 참조하세요.
CloudHybridSelf-Hosted
LangSmith API Key가 LangSmith SaaS에 대해 검증됨.LangSmith API Key가 LangSmith SaaS에 대해 검증됨.Air-gapped license key 또는 Platform License Key가 LangSmith SaaS에 대해 검증됨.

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I