【发布时间】:2021-10-30 02:02:18
【问题描述】:
我创建了一个 AWS Fargate ECS 集群来运行任务。该任务是一个包装 C++ 处理应用程序的 nodejs 脚本。我成功地设置了我的 EFS 的挂载点,我可以在我的任务开始时从中读取。
当我的处理结束时,似乎 EFS 已断开连接并且没有响应。我的程序在fs.existsSync(pathInEfs); 上阻塞,没有任何错误,也没有超时。
我知道我的程序正在运行。我知道处理不是问题,因为如果我用睡眠替换它,问题仍然存在。如果我移除睡眠(通过在 docker 映像中提供 C++ 处理的预期结果作为测试),它会正常工作并按预期将文件写入 EFS。
我在 EFS 故障排除页面 (https://docs.aws.amazon.com/efs/latest/ug/troubleshooting-efs-mounting.html#mount-unresponsive) 上没有发现任何与我的问题相对应的问题
最短处理时间约为 2min30s 到 30min。 我要求的跑步者是 20G 内存和 4 个 vCPU。 EFS 也安装在正在运行的 EC2 实例上。
在 EFS 监控选项卡上,我可以看到正在运行的任务的附加“客户端连接”,但在我关闭任务之前连接消失了,我认为这是问题所在。
【问题讨论】:
-
在 EFS 挂载上设置特定的传输加密端口时,我看到了类似的问题。您是否在 ECS 任务定义中指定了特定的传输加密端口?
-
是的,我正在将传输加密端口设置为端口 2049 上的默认端口。我会尝试不使用它
-
经过调查,我认为这不是问题所在。我将继续搜索安全组/角色方面
-
您是否通过删除该设置对其进行了测试?我现在在多个项目中都看到了这个问题,通过消除过程,我发现一旦我停止设置特定的传输加密端口,这个问题就消失了。
-
我实际上无法删除该设置,因为我设置了
Access point ID,它需要Encryption in transit,它需要Transit port
标签: amazon-web-services amazon-ecs aws-fargate amazon-efs