- 基础设施:Terraform 配置 VPC、EKS、RDS、ElastiCache、S3 和 IAM。
- 应用程序:Helm 在集群上安装 LangSmith chart。
前提条件
必需工具
在 macOS 上安装:
PATH 中:
所需的 AWS IAM 权限
运行 Terraform 的 IAM 用户或角色需要创建和管理云基础架构的权限。以下托管策略涵盖了所有方面。将它们作为起点,并在部署稳定后调整为最小权限原则。身份验证
使用 CLI 配置 AWS 凭证:许可证密钥和域名
在terraform apply 之前,必须准备好两个非 AWS 项目:
- LangSmith 许可证密钥。 联系销售团队获取。密钥由安装脚本存储在 AWS SSM Parameter Store 中,而不是在
tfvars文件中。 - 域名或子域名,该域名解析到 AWS 账户,以及覆盖该域名的 ACM 证书(或者将
tls_certificate_source变量设置为letsencrypt/none)。
集群大小参考
两个独立的设置控制容量:- 基础设施容量通过基础设施变量
eks_managed_node_groups、postgres_instance_type和redis_instance_type直接设置实例类型和节点数量。模块默认值是一个m5.4xlarge节点组(最小 3,最大 10),RDS 使用db.t3.large,ElastiCache 使用cache.m6g.xlarge。 sizing_profile选择 Helm 大小覆盖层(Pod 资源请求和限制)。init-values.sh和deploy.sh会读取它;Terraform 不会。
对于生产工作负载,还计划配置外部的 LangChain 托管 ClickHouse 或自管理的外部 ClickHouse 集群。集群内 ClickHouse 仅支持用于开发/概念验证。
快速入门
要获得从零到运行 LangSmith 实例的最快路径,请按顺序运行以下命令:make quickdeploy 按顺序运行 terraform apply → kubeconfig → init-values → helm deploy。如果任何步骤失败,命令将退出并提供从该步骤恢复的说明。
以下部分将详细介绍每个阶段。
配置基础设施
Terraform 配置以下 AWS 资源:克隆和配置
modules/aws/ 运行。运行 make help 获取完整的目标列表。
使用交互式向导生成 terraform.tfvars:
infra/terraform.tfvars。重新运行向导会预先选择现有值;在每个提示处按 Enter 保持当前配置。
更喜欢手动编辑?复制示例并填写必填字段:
将密钥加载到 SSM Parameter Store
terraform.tfvars,派生 SSM 路径 /langsmith/{name_prefix}-{environment}/,然后对于每个密钥,要么重用导出的值,读取现有的 SSM 参数,自动生成一个(用于盐和令牌),要么提示您输入。许可证密钥和管理员密码是您需要交互式提供的两个值。该脚本必须通过 source 执行(而不是直接执行),因为 make 无法将环境变量导出回父 shell。
脚本管理以下 SSM 参数:
验证密钥是否存在并且
TF_VAR_* 环境变量已导出:
应用
在干净账户上配置 AWS 云基础架构大约需要 20 到 25 分钟。不要中断应用过程。
make plan 显示建议的差异。应用前请检查输出。make apply 按依赖顺序进行配置:VPC 和安全组,然后是 EKS(约 12 分钟)和 RDS(约 8 分钟,并行进行),然后是节点组、ElastiCache、S3 和 ALB。
配置 kubectl
Ready,核心附加组件(CoreDNS、kube-proxy、VPC CNI、KEDA、ESO)应为 Running。cert-manager 仅在 tls_certificate_source = letsencrypt 或 create_cert_manager_irsa = true 时运行。
部署 LangSmith
支持两种部署路径。选择其一。脚本驱动的 Helm 部署(推荐)
适用于大多数部署。交互式提示引导您完成大小和产品选择。init-values.sh 会提示输入管理员电子邮件,然后读取 sizing_profile 和 terraform.tfvars 中的 enable_* 标志,并将匹配的值文件从 helm/values/examples/ 复制到 helm/values/。重新运行时,它会保留您的选择并刷新 Terraform 输出。
make deploy 运行 helm/scripts/deploy.sh,该脚本:
- 刷新 kubeconfig。
- 运行预检(AWS 凭证、集群可达性、
langchainHelm 仓库)。 - 应用 External Secrets Operator
ClusterSecretStore和ExternalSecret,以便集群直接从 SSM 读取密钥。 - 使用分层值文件安装 LangSmith Helm chart。
验证
Running 且入口显示 ALB DNS 名称时,部署即准备就绪。使用您在 langsmith_domain 中配置的域名(或 ALB DNS 名称)访问 UI。
如果您完成了脚本驱动的部署,则已完成。以下部分是替代部署路径,不是额外的步骤。
Terraform 管理的 Helm 部署
最适合希望将完整部署置于 Terraform 状态中的团队,或用于“自带基础设施”场景。app/ 模块直接管理 External Secrets Operator 布线、helm_release 和功能开关。
app/terraform.tfvars 文件控制应用程序配置:
make init-app,并在 app/terraform.tfvars 中手动设置所有变量。
启用附加组件
每个附加组件都由infra/terraform.tfvars 中的一个标志控制。设置标志后,重新运行 make init-values 以复制匹配的值文件,然后重新运行 make deploy。
Fleet
Fleet 是之前称为 Agent Builder 的功能的当前形式,作为独立服务部署(chart v0.15+)。
enable_fleet 启用 Fleet。在 AWS 上,它需要 enable_deployments = true,因为 Fleet 聊天 UI 通过随 LangSmith Deployment 一起提供的宿主后端解析 OAuth 提供商和令牌连接。它还需要外部 Postgres 和 Redis(postgres_source = "external" 和 redis_source = "external")。
Terraform 在 RDS 上创建一个专用的 langsmith_fleet 数据库,并将 langsmith-fleet-postgres 和 langsmith-fleet-redis 密钥连接到现有的 RDS 和 ElastiCache 实例。Fleet 复用 langsmith_agent_builder_encryption_key,因此从 enable_agent_builder 迁移会保留相同的密钥和数据。
Fleet 需要 LangSmith Helm chart
>=0.15.0 以及您许可证中的 Agent Builder 或 Fleet 授权。standalone-fleet-api-server、standalone-fleet-tool-server、standalone-fleet-trigger-server 和 standalone-fleet-queue 服务。
可选:带堡垒机的私有 EKS 集群
对于必须运行完全私有 EKS API 端点的部署,模块提供了堡垒机主机模式:- 首先,从您的工作站运行,设置
create_bastion = true和enable_public_eks_cluster = true,以便创建堡垒机。 - 初始部署后,设置
enable_public_eks_cluster = false并重新应用。EKS API 端点变为仅私有。 - 所有后续的 Terraform 工作都在堡垒机上进行。通过 SSM 进入堡垒机,克隆存储库,复制您的
terraform.tfvars和 SSM 密钥,然后从那里运行部署。
堡垒机位于公共子网中以实现 SSM 代理连接,但如果您的 VPC 具有 SSM、SSMMessages 和 EC2Messages VPC 端点,则不需要公共 IP。堡垒机预装了
kubectl、helm、terraform、git 和 jq,并且 kubeconfig 已配置为连接到 EKS 集群。在您的工作站上安装 Session Manager 插件。可选:Envoy Gateway 入口
默认入口是 AWS Load Balancer Controller (ALB)。在terraform.tfvars 中设置 enable_envoy_gateway = true 以改为安装 Envoy Gateway。Envoy Gateway 是多命名空间数据平面部署所必需的,其中 langgraph-dataplane chart 在其自己的命名空间中运行。
tls_certificate_source = "acm" 时,部署脚本会自动为 Envoy Gateway NLB 服务添加 ACM 证书 ARN 的注释。TLS 在 NLB 处终止;Envoy 内部看到的是纯 HTTP。
在单独的命名空间中运行数据平面 chart 时,请为每个数据平面命名空间应用一次 RBAC 清单:
langsmith-host-backend ServiceAccount 对数据平面命名空间中的 Pod、Pod 日志、Deployments 和 ReplicaSets 的读取权限。没有它,代理运行日志将不会在 LangSmith UI 中流式传输。
后续步骤
- 参考 AWS 变量 和 快速参考。
- 查看 AWS 架构,了解平台层、IRSA 和模块依赖关系。
- 当出现问题时,请查看 AWS 故障排除指南。
- 通过 LangSmith 部署 在 UI 中启用代理部署。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

