You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS CDK创建无负载均衡器的Fargate Service

如何通过AWS CDK创建无负载均衡器的Fargate Service

不需要依赖ecsPatterns中的封装模式(这类模式默认会自动创建负载均衡器),直接使用AWS CDK的底层ecs.FargateService构造器即可实现,它不会强制关联负载均衡器,配置更灵活。

核心实现步骤(以TypeScript为例)

  1. 准备基础资源(VPC、ECS集群)
  2. 定义Fargate任务定义并添加容器
  3. 创建Fargate Service时跳过负载均衡器相关配置
import * as cdk from 'aws-cdk-lib';
import * as ecs from 'aws-cdk-lib/aws-ecs';
import * as ec2 from 'aws-cdk-lib/aws-ec2';

const app = new cdk.App();
const stack = new cdk.Stack(app, 'FargateNoLBStack');

// 创建VPC(若已有可用VPC,可直接通过ec2.Vpc.fromLookup引用)
const vpc = new ec2.Vpc(stack, 'FargateVpc', {
  maxAzs: 2,
});

// 创建ECS集群
const cluster = new ecs.Cluster(stack, 'FargateCluster', {
  vpc: vpc,
});

// 定义Fargate任务定义
const taskDefinition = new ecs.FargateTaskDefinition(stack, 'TaskDef', {
  memoryLimitMiB: 512,
  cpu: 256,
});

// 向任务定义添加容器(替换为你的业务镜像和端口)
taskDefinition.addContainer('BusinessContainer', {
  image: ecs.ContainerImage.fromRegistry('nginx'),
  portMappings: [{ containerPort: 80 }],
});

// 创建无负载均衡器的Fargate Service
const fargateService = new ecs.FargateService(stack, 'FargateService', {
  cluster: cluster,
  taskDefinition: taskDefinition,
  desiredCount: 1,
  // 无需配置loadBalancer属性,即可避免创建负载均衡器
  // 如需服务发现,可添加serviceDiscovery配置,否则省略
});

app.synth();

关键注意事项

  • 不要使用ecsPatterns下的ApplicationLoadBalancedFargateService或NetworkLoadBalancedFargateService,这些封装类会自动创建并绑定负载均衡器
  • ecs.FargateService是底层构造器,完全由开发者控制所有配置,包括是否启用负载均衡、服务发现、自动扩缩容等

内容的提问来源于stack exchange,提问作者Sushant Adhikari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:10:33