我正在尝试为Beanstalk构建安装相同的卷,但无法弄清楚如何使用volume-id。
我可以附加一个新卷,我可以根据快照ID附加一个,但我不能追求。
我目前的.ebextension
commands:
01umount:
command: "umount /dev/sdh"
ignoreErrors: true
02mkfs:
command: "mkfs -t ext3 /dev/sdh"
03mkdir:
command: "mkdir -p /media/volume1"
ignoreErrors: true
04mount:
command: "mount /dev/sdh /media/volume1"
option_settings:
- namespace: aws:autoscaling:launchconfiguration
option_name: BlockDeviceMappings
value: /dev/sdh=:20
当然会安装新卷,而不是附加现有卷。也许快照是我想要的,我只是不明白这里的术语?
当自动缩放开始在每个可扩展的EC2时刻时,我需要与卷上相同的数据...快照肯定只是创建快照时存在的数据?
任何想法或更好的方法?
答案 0 :(得分:1)
Elastic Block Store(EBS)允许您为EC2实例创建,快照/克隆和销毁虚拟硬盘驱动器。这些驱动器("卷")可以连接到EC2实例或从EC2实例分离,但它们不是"共享"或共享卷...因此在第一个实例启动后,通过ID附加卷成为一个无用的想法。
EBS卷是硬盘。这种类比是不精确的(因为它们在SAN上),但与您在多个服务器中物理安装相同硬盘的方式大致相同,您无法将EBS卷附加到多个实例(SAN!= NAS)。
使用云思维设计,当您发布新版本然后用于生成每个新的自动缩放实例时,所有固定资源实际上都位于您部署的快照(磁盘映像)上...并且没有任何持久性存储在那里因为 - 与扩展一样重要,正在缩小。当不需要时,自动调整的实例会消失。
AWS有Simple Storage Service (S3),它通常用于存储需要在分布式环境中访问的文档,头像,图像,视频和其他资源等内容。它不是一个文件系统,无法与文件系统进行比较,因为它是一个对象存储......但它是一个高度可扩展且高度可用的存储服务,非常适合分布式应用程序。 s3fs允许S3"桶"要安装到您机器的文件系统中,但这不是灵丹妙药。该机制应该保留给后端进程使用,如果您根本使用它,因为它不适合代码或模板等资源,并且不能像提供内容那样执行,如果使用S3将执行按照设计,客户可以通过https直接访问它。您可以通过多种机制保护内容,如文档所述。
AWS现在还拥有Elastic File System (EFS),可以使用NFS设置您可以从所有计算机挂载的存储阵列。 AWS提供NFS服务器和后端存储。与EBS不同,您不需要知道预先配置多少存储空间,因为它会根据您存储的内容进行扩展和缩小,向您收费此服务仍处于"预览状态"在撰写本文时,不应将其用于生产数据。
或者,您可以手动配置自己的NFS服务器并从自动扩展计算机安装它。但是,设置故障安全是有点棘手的。