ECS CLI - 启动容器实例时挂载 EFS

Posted

技术标签:

【中文标题】ECS CLI - 启动容器实例时挂载 EFS【英文标题】:ECS CLI - Mount EFS when launching container instance 【发布时间】:2017-04-01 00:13:57 【问题描述】:

我正在使用 ecs-cli 和一个 docker compose 文件和定义我的密钥对、VPC、子网、安全组、AMI 等的参数...

但是,在实例上运行的容器将需要访问我的 EFS。因此,当 ECS 启动了一个新的容器实例时,我希望它在启动容器之前将 EFS 挂载到实例/主机上的特定路径。我没有看到实现这一点的方法,有人知道如何获得这种行为吗?

【问题讨论】:

只是为了确保我正确地找到了您要查找的内容...您希望 ECS 服务也安装 EFS 驱动器吗?我不认为这是可能的。当您的 ECS 主机启动以挂载 EFS 驱动器时,您是否有某些原因不能在用户数据中使用脚本?如果您的路径是动态的,您还可以使用用户数据来部署某种应用,以便在需要时为您挂载 EFS。 是否可以将用户数据脚本与 ecs-cli 一起使用?如果是这样,那将解决问题 您不会在 ECS 级别使用它,而是在启动实例主机 EC2 时使用它。我认为 ecs-cli 只与 ECS 服务交互,而不是与底层实例主机交互,这听起来像是您需要映射 EFS 驱动器的地方。 哦,知道了。我尝试使用 ECS-CLI 的原因是因为我希望集群自动扩展,并且当添加新实例时,EFS 会自动挂载在它们上 我会通过运行一个用户数据脚本来解决这个问题: mkdir efs/ sudo mount -t nfs4 -o nfsvers=4.1 :/efs/ as part of用于自动缩放或在 CloudFormation 脚本中的 AMI。 【参考方案1】:

我最终做的是:

创建启动配置:创建时,在“高级”部分中,设置用户数据以挂载 EFS(基于此 documentation 中的示例)。 注意:确保在启动配置中为实例提供 IAM 角色,以便能够访问 EFS,即AmazonElasticFileSystemFullAccessAmazonElasticFileSystemReadOnlyAccess

创建一个自动缩放组并将其与上面创建的启动配置相关联。

将上面创建的自动缩放组与 Elastic Beanstalk 应用程序一起使用

【讨论】:

以上是关于ECS CLI - 启动容器实例时挂载 EFS的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在 AWS ECS docker 容器上挂载 EFS 吗?

ECS 任务。如何在容器中使用 AWS CLI

ECS 中的 EFS 挂载“无法解决”

ECS Fargate 上的 EFS 挂载 - 非 root 用户的读/写权限被拒绝

ECS实例数据盘挂载时填写UUID错误造成系统无法正常启动

ECS实例数据盘挂载时填写UUID错误造成系统无法正常启动