在ECS群集 - CloudFormation上为EFS卷指定正确的AZ装入点

时间:2017-04-25 19:41:47

标签: amazon-vpc amazon-ecs amazon-cloudformation amazon-efs

查看this在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}"

1 个答案:

答案 0 :(得分: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配置元素。