您如何在Amazon ECS中的负载均衡服务实例之间处理持久数据?使用仅数据容器或任务中指定的卷都无法工作,它们只会持久存在于实例本身。我一直在尝试阅读有关在启动配置中使用用户数据在实例创建时附加EBS,但我没有成功。
您可以使用Amazon EFS在ECS容器和实例之间共享文件系统。EFS基于NFS,因此可以同时挂载多个主机实例。这允许集群调度和扩展正常工作。在此处查看使用此方法持久化MySQL数据的教程: https://aws.amazon.com/blogs/compute/using-amazon-efs-to-persist-data-from-amazon-ecs-containers/
我建议使用Amazon EFS(https://aws.amazon.com/blogs/compute/using-amazon-efs-to-persist-data-from-amazon-ecs-containers/)。请注意,只有4个区域支持EFS:欧洲(爱尔兰)美国东部(北弗吉尼亚)美国东部(俄亥俄州)美国西部(俄勒冈州)如果您所在的地区不支持,则可以实现自己的NFS共享以在EC2实例之间共享持久文件夹。S3FS看起来很酷,但存在错误(我在两年前进行了测试,今天可能会有所改变)。
根据您的数据需求,我能想到两种选择: 将S3存储桶映射为本地驱动器 您可以共享一个S3存储桶并限制任意数量的实例访问。在Windows中,我们使用驱动器映射解决方案,将S3存储桶挂载为本地驱动器。Linux也有类似的驱动程序。因此,每个实例都会得到相同的映射驱动器,并共享该持久化数据。数据是读/写的,因此如果我们进行缩放,每个实例都可以以一致的格式访问S3数据。 从快照挂载卷 正如您所建议的,如果您需要访问只读数据,您可以使用Userdata脚本在启动时从快照挂载卷。您只需要一个脚本和凭据/IAM角色来运行适当的命令即可。