最新n1n v2.0.1 正式上线!企业级大模型接口聚合平台 (LLM API Gateway),为您接入 500+ AI Models,价格低至 1 折, 立即尝试

在 Amazon ECS 与 Amazon Bedrock 上使用 LiteLLM 部署 OpenAI ChatGPT Codex 指南

作者
  • avatar
    姓名
    Nino
    职业
    Senior Tech Editor

随着现代化软件工程团队全面引入 AI 编程助手与自动化 Coding Agent,如何统一管理大语言模型 API 接口、监控成本支出以及保障企业数据边界,成为了平台工程(Platform Engineering)团队的核心议题。

通过构建兼容 OpenAI 标准接口的企业级网关,不仅能够在不改变开发者现有 IDE、命令行工具(CLI)和 Codex 工作流的前提下提供无缝接入体验,还能实现精细化的预算控制与安全审计。本文将详细阐述如何在 Amazon ECS(AWS Fargate) 上部署自托管的 LiteLLM Gateway,将其连接至 Amazon Bedrock 托管的大模型,并配置 OpenAI Codex 及相关开发者工具进行高效路由。同时,我们将该方案与 AWS IAM Identity Center 直连以及托管型 Portkey 方案进行多维度对比。


架构设计与治理模式对比

企业在向内部开发者提供 AWS 平台上的基础大模型(Foundation Models)访问能力时,通常有以下三种可选架构:

  1. AWS IAM 统一直连:开发者直接通过 AWS SDK 或 SigV4 认证调用 Amazon Bedrock 原生 API。
  2. 自托管网关(LiteLLM on ECS Fargate):部署在私有 VPC 内部的轻量级开源代理层,将底层异构模型统一封装为 OpenAI 标准 API,支持虚拟 Key、团队预算限制与实时速率控制。
  3. 托管型 SaaS 网关(如 Portkey / 企业级 API 聚合平台):由外部服务商托管的控制平面,提供多云路由、自动重试与全局数据分析功能。

对于追求极致稳定性、希望避免单一云厂商绑定并获得弹性路由能力的企业,采用像 n1n.ai 这样高效、稳定的专业级 API 聚合平台,能够以极低接入成本实现全球高可用模型的统一调度。

常见架构模式对比

维度AWS IAM 直连LiteLLM on ECS(自托管)托管型 SaaS(如 Portkey)
OpenAI 协议兼容性否(需专用 SDK 或转换层)完全兼容(暴露 /v1/chat/completions完全兼容(统一 REST API)
细粒度成本控制仅支持 AWS Budgets(粗粒度)支持虚拟 API Key、单用户/团队预算限制提供企业级可视账单仪表盘
网络与数据边界严格限定在 AWS VPC 内严格限定在企业 AWS VPC 内数据需经过外部 SaaS 平台
速率限制(RPM/TPM)受限于 AWS Account 级别配额支持按用户、Key、模型设置独立限速支持高级策略控制
运维复杂度极低低至中等(Fargate 无服务器化运维)无需运维

环境准备与基础设施要求

在构建部署之前,请确保你的 AWS 环境已具备以下基础设施:

  • AWS 账号:已开通 Amazon Bedrock 中相关模型(如 Anthropic Claude 3.5 Sonnet、Amazon Nova 或 Bedrock 支持的其他模型)的调用权限。
  • Amazon ECS 集群:配置为 AWS Fargate 无服务器计算模式。
  • Amazon ElastiCache Redis(或 Serverless Redis):用于分布式速率限制与请求缓存。
  • Amazon Aurora PostgreSQL 或 RDS:用于存储 LiteLLM 的虚拟 API Key、用户身份元数据及审计日志。

第一步:配置 LiteLLM 路由与模型映射

LiteLLM 通过声明式的 config.yaml 文件将传入的通用模型请求(如 OpenAI 模型标识符)映射到 Bedrock 底层实际模型。

创建以下 config.yaml 配置文件:

model_list:
  - model_name: gpt-4o
    litellm_params:
      model: bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0
      aws_region_name: us-east-1
      max_tokens: 4096

  - model_name: codex
    litellm_params:
      model: bedrock/anthropic.claude-3-haiku-20240307-v1:0
      aws_region_name: us-east-1

  - model_name: text-embedding-3-small
    litellm_params:
      model: bedrock/amazon.titan-embed-text-v2:0
      aws_region_name: us-east-1

router_settings:
  routing_strategy: usage-based-routing-v2
  redis_host: "litellm-redis.internal.vpc.amazonaws.com"
  redis_port: 6379

general_settings:
  master_key: "os.environ/LITELLM_MASTER_KEY"
  database_url: "os.environ/DATABASE_URL"

通过将 gpt-4ocodex 等标准别名直接映射至 Amazon Bedrock,原本硬编码了 OpenAI 接口格式的本地开发者工具与 IDE 插件即可直接对接后端 Bedrock 模型。


第二步:使用 Terraform 部署至 AWS Fargate

接下来,将 LiteLLM 打包部署在 AWS Fargate 容器服务中。任务执行角色(Task Role)需要获得调用 Amazon Bedrock 及读取 Secrets Manager 的 IAM 权限。

以下为核心 Terraform HCL 配置代码片段:

resource "aws_iam_role