Amazon ECS - 实例之间的持久数据

时间:2016-01-26 23:34:34

标签: amazon-web-services amazon-ec2 persistent-storage amazon-ecs

如何在Amazon ECS中使用负载均衡服务在实例之间处理持久数据?仅数据容器不起作用,您可以在任务中指定的卷也不起作用,它们只会在实例本身上持久存在。我一直在尝试阅读在启动配置中使用用户数据创建实例时附加EBS,但我没有运气。

3 个答案:

答案 0 :(得分:9)

您可以使用Amazon EFS跨ECS容器和实例共享文件系统。 EFS基于NFS,因此可以同时安装在多个主机实例上。这允许群集调度和扩展按预期工作。请参阅此处以这种方式保存MySQL数据的教程:

https://aws.amazon.com/blogs/compute/using-amazon-efs-to-persist-data-from-amazon-ecs-containers/

答案 1 :(得分:3)

我建议使用Amazon EFS(https://aws.amazon.com/blogs/compute/using-amazon-efs-to-persist-data-from-amazon-ecs-containers/)。

只需添加一个限制,即只有4个区域可以支持EFS。

欧盟(爱尔兰)

美国东部(弗吉尼亚北部)

美国东部(俄亥俄州)

美国西部(俄勒冈州)

如果您的区域不受支持,那么我们可以实现您自己的NFS共享以在EC2实例之间共享永久文件夹。 S3FS看起来很酷,但它有些错误(我在2年前测试过。今天可能会发生变化)

答案 2 :(得分:2)

根据数据需求,您可以考虑两个选项:

将S3存储区映射为本地驱动器

您可以共享S3存储桶并限制对任意数量实例的访问。我们在Windows中使用drive mapping solution将S3存储桶作为本地驱动器安装。 Similar drivers exist for Linux。因此,每个实例都获得相同的映射驱动器,并共享该持久数据。数据是可读/写的,因此如果我们扩展或缩小,每个实例都可以以一致的格式访问S3数据。

从快照装载卷

如您所知,如果它是您需要访问的只读数据,则可以使用Userdata脚本在启动时从快照装入卷。您只需要一个脚本和凭据/ IAM角色即可在启动时运行相应的命令