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

AWS CDK创建含隔离私有子网的VPC及Fargate服务时Java服务部署卡住问题排查

AWS CDK创建含隔离私有子网的VPC及Fargate服务时Java服务部署卡住问题排查

嘿,我能理解你遇到这个部署卡住的问题有多头疼——毕竟刚接触VPC和CDK的时候,网络配置很容易踩坑。我看了你的代码,发现几个很可能导致Java Fargate服务卡住的问题,咱们一步步来梳理:

1. 缺失CloudWatch Logs的VPC接口端点

你的私有隔离子网没有NAT网关,所以任务要发送日志到CloudWatch Logs必须通过VPC接口端点,不然根本连不上日志服务。你只加了ECR和ECR Docker的端点,漏掉了CloudWatch Logs的,这会导致任务启动后无法上报日志,进而卡在创建状态。

修复代码:在你的接口端点部分加上这段:

this.vpc.addInterfaceEndpoint("aws-cloudwatch-logs-endpoint", {
  service: ec2.InterfaceVpcEndpointAwsService.CLOUDWATCH_LOGS,
  privateDnsEnabled: true,
  subnets: { subnetType: ec2.SubnetType.PRIVATE_ISOLATED },
  open: true,
});

2. Java服务的ECR仓库引用错误

你看这段代码:

//JAVA
const repoBackJava = Repository.fromRepositoryName(
  this,
  "pdf-java",
  "task-nodejs-test"
);

你Java服务的ECR仓库名字和Node服务的完全一样(都是task-nodejs-test),这明显是复制粘贴时的失误!如果你的Java镜像不在这个仓库里,Fargate任务根本拉取不到镜像,自然会卡住。

修复代码:把仓库名改成你实际存放Java镜像的ECR仓库名称,比如:

//JAVA
const repoBackJava = Repository.fromRepositoryName(
  this,
  "pdf-java",
  "task-java-test" // 替换成你的Java镜像仓库名
);

3. 未明确指定Fargate服务的子网类型

你的Java Fargate服务没有指定子网,CDK默认会让服务在VPC的所有子网(公有+私有隔离)里部署,但你本来只想让它跑在私有隔离子网里。虽然这不一定是卡住的直接原因,但明确指定子网能避免不必要的问题。

修复代码:在Java Fargate服务的配置里加上子网指定:

//JAVA
const pdfFargateService = new ecs.FargateService(
  this,
  `${this.servicePdf}Service`,
  {
    cluster: this.cluster,
    taskDefinition: pdfFargateTaskDefinition,
    desiredCount: 1,
    securityGroups: [pdfServiceSecGroup],
    subnets: { subnetType: ec2.SubnetType.PRIVATE_ISOLATED }, // 明确指定私有隔离子网
    cloudMapOptions: {
      name: this.servicePdf,
      cloudMapNamespace: this.dnsNamespace,
      dnsRecordType: servicediscovery.DnsRecordType.A,
    },
  }
);

额外检查点

  • 确认你的安全组配置:Java服务的安全组已经允许来自Node服务的80端口访问,这个没问题;另外因为你给VPC端点设置了open: true,所以安全组会自动允许对应端口的出站流量,不用额外配置。
  • 任务执行角色权限:你用的AmazonECSTaskExecutionRolePolicy已经包含了拉取ECR镜像和发送CloudWatch日志的必要权限,这部分是没问题的。

把这些问题修复后,重新部署应该就能解决Java服务卡住的问题了。另外你提到之前用全公有子网时服务发现正常,说明服务发现的配置是对的,主要问题还是出在私有子网的网络访问权限上。

备注:内容来源于stack exchange,提问作者RettoScorretto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 07:14:09