0

查看这个在 ECS 中为持久化 docker 卷挂载 EFS 卷的示例,我不确定如何为实例所在的可用区提供正确的挂载点。我的堆栈中有两个可用区,需要正确的挂载指向在cfn-init的这一部分插入:

01_mount:
    command: !Join [ "", [ "mount -t nfs4 -o nfsvers=4.1 ", !ImportValue '!Ref FileSystem', ".efs.", !Ref 'AWS::Region', ".amazonaws.com:/ /", !Ref MountPoint ] ]
02_fstab:
    command: !Join [ "", [ "echo \"", !ImportValue '!Ref FileSystem', ".efs.", !Ref 'AWS::Region', ".amazonaws.com:/ /", !Ref MountPoint, " nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 0 0\" >> /etc/fstab" ] ]
03_permissions:
    command: !Sub "chown -R ec2-user:ec2-user /${MountPoint}"
4

1 回答 1

1

如果您在 VPC 中使用 DNS 设置并且在 VPC 配置中有其他必要的先决条件,则在挂载 EFS 文件系统时不再需要使用特定于可用区的挂载目标。

文件系统 DNS 名称– 使用文件系统的 DNS 名称是您最简单的挂载选项。文件系统 DNS 名称将自动解析为连接的 Amazon EC2 实例可用区内的挂载目标 IP 地址。您可以从控制台获取此 DNS 名称,或者如果您有文件系统 ID,则可以使用以下约定构造它:

file-system-id.efs.aws-region.amazonaws.com

(重点补充)

http://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-cmd-dns-name.html

此功能于 2016 年 12 月推出,距该服务从预览版发布几个月后。以前,上面显示的主机名样式必须在前面加上您想要的可用区。该选项仍然受支持,但此选项有效地消除了这种尴尬的配置要求,无论是在 docker 还是在具有fstab挂载的普通实例上。

请参阅参考页面,了解为使该解决方案在您的 VPC 中工作必须具备的 VPC 配置元素。

于 2017-04-25T22:46:37.010 回答