BYOC 아키텍처

BYOC 아키텍처

LangSmith BYOC 배포가 LangChain 컨트롤 플레인과 여러분의 AWS 계정의 데이터 플레인에 걸쳐 어떻게 구성되는지 설명해요.

출처: 문서

본문

컨트롤 플레인과 데이터 플레인 모델

BYOC 배포는 두 개의 플레인으로 나뉩니다. 이 페이지는 각 플레인의 구성 요소, 통신 방식, 그리고 LangChain이 여러분의 계정에 프로비저닝하는 것을 설명합니다.

컨트롤 플레인은 LangChain의 클라우드에서 실행되며 인증, 조직 구성, 결제를 처리합니다. 배포를 프로비저닝, 모니터링, 오케스트레이션하지만 민감한 애플리케이션 데이터를 보유하지는 않습니다.

데이터 플레인은 여러분의 AWS 계정에서 실행되며 모든 민감한 애플리케이션 데이터를 수집, 저장, 쿼리합니다. VPC, EKS 클러스터, 데이터베이스 및 기타 리소스를 보유합니다.

분할을 요약한 표는 다음과 같습니다:

플레인 실행 위치 보유 내용
컨트롤 플레인 LangChain의 클라우드, us-east-2 인증, 조직 및 워크스페이스 구성, 결제 및 사용량 메타데이터, LangSmith API 키, 정적 프론트엔드 자산
데이터 플레인 여러분의 AWS 계정, 선택한 지역 트레이스, 프롬프트, 데이터셋, 평가기, 실험, 인사이트 런, 어노테이션 큐, 에이전트 배포, 워크스페이스 시크릿 및 기타 애플리케이션 데이터

BYOC architecture diagram

프로비저닝된 리소스

LangChain은 여러분의 계정에 다음을 프로비저닝합니다:

  • VPC: 기본적으로 지역의 가용 영역에 걸쳐 퍼진 전용 VPC로, 비공개 수신을 사용합니다. AWS 서비스와의 비공개 통신에는 VPC 엔드포인트를, 데이터 플레인과 컨트롤 플레인 간 통신에는 PrivateLink를 사용합니다. BYOVPC를 사용하면 대신 VPC와 기본 네트워크 리소스를 직접 만들고 관리합니다.
  • 관리형 데이터베이스: 관계형 워크로드용 RDS, 캐싱용 ElastiCache.
  • 저장소: 트레이스 데이터, VPC 플로우 로그, ClickHouse 백업을 보유하는 blob store용 S3 버킷.
  • EKS: 관리형 애드온이 있는 비공개 EKS 클러스터.
  • 컴퓨트: 플랫폼 워크로드용 시스템 노드 그룹과 Karpenter를 통한 애플리케이션 노드 그룹.
  • 클러스터 내 리소스: LangSmith Helm 차트, Istio, KEDA 및 기타 클러스터 내 리소스.
  • IAM 역할: Kubernetes 리소스에 필요한 역할과 권한.

교차 계정 IAM 권한

LangChain은 여러분의 AWS 계정 내 리소스를 프로비저닝하고 관리하려면 교차 계정 IAM 권한이 필요합니다. 이 권한으로 LangChain은 다음을 할 수 있습니다:

  • 인프라 프로비저닝: VPC, 서브넷, 보안 그룹 및 기타 네트워킹 구성 요소를 만들고 구성합니다. BYOVPC로는 역할이 워크로드 네트워킹 권한을 유지하는 반면, 기본 네트워크는 여러분이 관리합니다.
  • Kubernetes 클러스터 관리: EKS 클러스터, 노드 그룹, 클러스터 애드온을 배포하고 유지합니다.
  • 저장소 리소스 생성: 애플리케이션 데이터와 백업에 사용되는 RDS, ElastiCache, S3 버킷을 프로비저닝합니다.
  • IAM 역할 생성: Kubernetes 서비스 계정과 지원 서비스가 사용하는 역할을 만들고 구성합니다.
  • 지원 서비스 운영: 수신과 자동 스케일링의 배포 및 관리, LangSmith 워크로드의 스케일링과 업그레이드.

권한은 온보딩 중 langsmith-byoc-role Terraform 모듈을 적용해 만드는 단일 교차 계정 IAM 역할을 통해 부여됩니다.

BYOVPC의 경우 기본 VPC 생성 권한을 비활성화하고 제공한 VPC ID로 보안 그룹 생성을 범위 지정합니다. 축소 권한 IAM 역할 만들기를 참고하세요.

LangChain은 역할의 신뢰 정책에 사용되는 외부 ID를 제공합니다. Settings > Data PlanesData Planes 헤더 옆 버튼으로 복사하고 모듈을 적용할 때 사용하세요. 역할의 ExternalId 조건이 이 값과 일치해야 합니다.

최소 권한이 어떻게 적용되는지

역할은 BYOC 운영에 필요한 것에만 범위가 지정됩니다:

  • LangSmith 소유 리소스로 범위 지정: AWS가 리소스 수준 범위 지정을 지원하는 곳이면, 특정 태그와 이름 접두사를 가진 리소스로 권한이 제한되어 역할이 계정의 관련 없는 리소스에 작용할 수 없습니다.
  • 인프라 범위, 데이터 범위 아님: 역할은 데이터를 보유한 리소스를 관리할 수 있지만 AWS 데이터 API를 통해 데이터 자체를 읽을 수는 없습니다. 트레이스 버킷에 대한 s3:GetObject, PostgreSQL에 대한 rds-db:connect, Redis에 대한 elasticache:Connect를 보유하지 않습니다.

네트워킹

데이터 트래픽

민감한 데이터는 여러분의 VPC를 벗어나지 않으며 LangChain의 VPC를 통과하지도 않습니다.

  1. 사용자가 aws.smith.langchain.com을 열면 브라우저가 LangChain의 클라우드에서 LangSmith UI 번들(HTML, JavaScript, CSS, 이미지)을 가져옵니다. 이 자산은 모든 BYOC 및 Cloud 테넌트가 실행하는 동일한 코드이며 고객 데이터를 포함하지 않습니다.
  2. 로드되면 애플리케이션이 선택한 워크스페이스의 데이터 플레인 엔드포인트를 해결하고, 민감한 데이터에 대한 모든 요청을 여러분의 VPC로 라우팅합니다.

데이터를 프로그래매틱하게 수집하거나 쿼리하려면 클라이언트를 데이터 플레인에 직접 지정하세요. 데이터 흐름은 항상 브라우저 또는 클라이언트 → 데이터 플레인 → 클라이언트로 복귀입니다.

Data traffic diagram

연결성

컨트롤 플레인과 데이터 플레인 간의 모든 통신은 양방향으로 AWS PrivateLink를 통해 이동합니다. LangChain은 공개 인터넷을 통해 여러분의 환경에 접근하지 않습니다. BYOC는 두 개의 PrivateLink 연결을 설정합니다:

  • 컨트롤 플레인 → 데이터 플레인 (관리 경로): 클러스터의 Kubernetes API 서버만 노출하며, LangChain이 LangSmith 구성 요소를 설치하고 조정하는 데 사용합니다. 여러분의 데이터는 이 연결을 통해 접근할 수 없습니다.
  • 데이터 플레인 → 컨트롤 플레인 (런타임 경로): 데이터 플레인이 컨트롤 플레인을 호출해 요청을 인증하고, API 키를 검증하고, 역할과 권한을 해결하고, 조직 및 워크스페이스 구성을 로드합니다.

컨테이너 이미지는 LangChain의 컨트롤 플레인 ECR 저장소에서 VPC 엔드포인트를 통해 읽기 전용으로 가져옵니다.

BYOVPC를 사용하면 고객 측 AWS 서비스 엔드포인트와 데이터 플레인→컨트롤 플레인 PrivateLink 엔드포인트를 구성합니다. LangChain은 클러스터 관리 경로의 엔드포인트 서비스를 관리합니다. 연결성 구성을 참고하세요.

DNS 및 수신

트래픽은 Route 53을 DNS 해석에 사용하여 AWS NLB가 앞에 있는 Istio 수신을 통해 LangSmith에 도달합니다. 데이터 플레인이 생성되면 그 API URL이 LangSmith UI의 Settings > Data Planes 아래에 나열됩니다.

참고 자료

더 알아보기

  • BYOC 개요는 BYOC 문서를 참고하세요.
  • 운영 절차는 BYOC operations 문서를 확인해 보세요.