首先,虽然我很早就了解 AWS,但这是我第一次使用它。
我了解到 EBS 卷用于持久数据存储,而实例存储卷仅供一次性使用。我使用这些实例进行数据挖掘,因此它们在 Spot 实例上启动,并在满足主服务器请求时使用大量 I/O。
我无法使用 EBS,因为 I/O 成本很高,而且我不需要实例来生存,它从主服务器获取作业,处理作业并返回,实例上不需要保存任何数据。我觉得我需要使用实例存储,但似乎没有办法保存 AMI 并将其加载为实例存储。我该如何设置它?我无法每次都登录实例来设置它们,而且安装所需的依赖项需要 10 分钟。我以为我可以设置实例存储实例,然后保存并加载它的副本。有人能告诉我我哪里做错了或者在这种情况下我应该怎么做吗?
谢谢你!
答案1
我们有类似的使用情况。这就是我们所做的
- 仅使用 OS/应用程序构建 EBS 支持的实例。
- 将实例存储附加到新实例,并将其安装到临时数据应该去的地方。
- 用它制作一个 AMI。
- 启动新实例时,选择将临时存储附加到文件系统中正确位置的选项。
这样,我们就可以拥有非常小的 OS/应用程序卷(10GB)和非常大的工作卷,用于存放我们不关心的临时内容。这里的技巧是确保让实例启动脚本将实例存储映射到正确的块设备,以便操作系统中的挂载脚本可以处理它。
答案2
我相信你想做的是从现有实例创建您自己的 AMI。下面简要概述一下这些步骤:
- 我经常使用 Ubuntu 的Amazon EC2 AMI 定位器找到我想要的 AMI。例如搜索以
instance-store precise us-east
查找 us-east-1 中由实例存储支持的 12.04 版本 - 启动实例,登录为
ubuntu
并根据需要进行自定义。注意:您必须安装 Java 和Amazon EC2 AMI 工具以便执行后续步骤。 - 将您的 Amazon EC2 私钥和 X.509 证书上传至
/tmp/cert
实例。如果您没有它们,您需要创建并上传您的签名证书 - 使用ec2-bundle-vol创建当前系统的图像
- 使用ec2-上传包将图像放在 S3 上进行注册
- 使用ec2-注册将上传的捆绑包转换为您可以启动的 AMI。
另外,您可以使用环回设备并ec2-bundle-image从头开始安装操作系统。
答案3
我不知道 EBS花费一大笔钱。虽然您可以配置高 IOPS,但您不必这么做。
虽然您可以保存系统快照,但还有另一种方法。您可以使用脚本自动设置 EC2。您可以通过 EC2 User-Data 提供脚本,并让其安装所有必需的依赖项。您还可以利用 Puppet、Chef、SaltStack 等软件来实现自动化。