我一直在探索 Amazon EC2,对一些术语有点困惑。特别是关于 AMI、快照和卷以及 EBS
如果我错了,请纠正我,或者在我的以下陈述中填写任何严重的空白:
AMI(亚马逊机器映像)是操作系统和配置的完整“磁盘”捕获。启动实例时,您是从 AMI 启动它
EBS(弹性块存储)是一种保存从给定 AMI 启动后所做的任何修改的状态的方法。在我看来,这有点像您的实例与 AMI 的最终状态的差异。
快照是……好吧,我不确定。我只能假设它是特定实例的快照,但我不清楚这与存储在 EBS 中的状态有何不同。快照与从现有实例创建 EBS AMI 有何不同?
一个卷是......它似乎是装载了一个 AMI/EBS 对的磁盘空间?我也不确定这一点。我可以看到(从 AWS 控制台)您可以从快照创建卷,并且可以附加/分离卷,但我不清楚为什么或何时这样做。
在创建快照时使用 EBS 卷是否安全?
我目前安装了一个 100Gb EBS 卷。我正在对其进行快照。天哪来的慢!!最终将花费超过 45 分钟的时间来创建快照。
我的问题:EBS 卷是否已经复制并保存在某处?或者,快照现在是否正在从我安装的卷中主动复制?
基本上,如果我在快照完成之前开始使用它,我会被灌水吗?
我简直不敢相信复制需要这么长时间。实际上甚至没有使用 100GB。它更像是 25Gb。
我只是将另一个 ebs 卷附加到正在运行的实例上。但是如何访问该卷?我在/dev/sda
任何地方都找不到目录。我应该在哪里看?
在创建实例时,我对 EBS 和 SSD 的选择感到困惑。
在选择实例参数(步骤 2)时,您将在Instance Storage (GB)列中看到 2 个选项: 仅 EBS 或 SSD。
我不知道为什么会有这个选项,因为 SSD 和 EBS 是不同的东西,为什么我会选择一个而不是另一个。
下面的实例存储 (GB)的定义 与上面的矛盾,因为 all is persistant 。(如果您将鼠标悬停在列名称上,您会看到此定义)
实例可用的本地实例存储卷。实例存储中的数据不是永久性的 - 它仅在实例的生命周期内持续存在。
为什么在第 4 步中我需要在 SSD 或磁性之间进行选择?
任何澄清都会有所帮助。
根据 Amazon EC2 FAQ,当一个实例终止时,数据就会消失。如果我的实例重启,我可以采取哪些步骤来保留数据?我一直在研究 EBS 和 S3 - 它们中的任何一个对存储活动数据库有用吗?实例重启的频率如何?
我已经看到了这个关于 EBS 卷增长的答案,但我想缩小一个。
默认的 Ubuntu Server 映像是 15 GB,而我最多只需要 2 GB(我使用不同的数据卷)。有没有办法缩小卷的大小?
Amazon EBS 快照从基线捕获更改的块,因此快照通常比源卷小得多。按实际尺寸计费,很好。但是,我找不到确定快照实际大小的方法。ec2-describe-snaphots 仅提供已快照卷的大小。
如果没有其他原因,我需要此信息来验证帐单。但我也想拥有它,因为我可能会发现通过重新配置我的卷以及我如何处理它们,我可以减少增量快照的大小。
我想备份一个基于 Linux 的 EC2 实例,同时它没有停机运行,然后再启动一个新实例。(该实例正在运行 Web 服务器和 Postgres 数据库。)
我发现有两种方法可以做到这一点,但我对它们之间的结果有何不同感到困惑。
选项#1:直接从正在运行的实例创建一个 AMI:
选项#2:从快照手动创建 AMI:
现在令人困惑的是,当直接从实例创建 AMI 时,EC2 会默认重启实例。有一个带有以下工具提示的“不重启”复选框:
启用后,Amazon EC2 在创建映像之前不会关闭实例。使用此选项时,无法保证创建的映像上的文件系统完整性。
这两种方式选项的结果真的有区别吗?对我来说,感觉就像我手动做自动向导会做的事情一样。它生成快照,选择内核 ID 和架构。
为什么一个有警告文本而另一个没有?对正在运行的实例进行快照被认为是相对安全的,如果 AMI 创建在后台进行快照,是否比手动完成更危险?
我有许多未加密的旧 EBS 卷。为了满足新的公司安全措施,所有数据都需要“静态加密”,因此我需要转换所有要加密的卷。
实现这一目标的最佳方法是什么?
扩大 EC2 实例就像呼吸一样简单(例如,创建一个 AMI,从中启动一个实例,然后更改存储大小)。
但是减少它变得更加困难。我想减小 Amazon Web Services (AWS) EC2 实例 Elastic Block Store (EBS) 根卷大小。网上有几个旧的高级程序。我发现的更详细的版本是一个关于 StackOverflow 问题的一年前的答案:如何减少我的 ebs 卷容量,步骤有相当高的水平:
创建一个所需大小的新 EBS 卷(例如 /dev/xvdg)
启动一个实例,并将两个 EBS 卷附加到它
检查文件系统(原始根卷的):(例如)e2fsck -f /dev/xvda1
最大限度缩小原始根卷:(例如 ext2/3/4)resize2fs -M -p /dev/xvda1
用 dd 复制数据:
选择块大小(我喜欢 16MB)
计算块数(使用 resize2fs 输出中的块数): blocks*4/(chunk_size_in_mb*1024) - 为安全起见,四舍五入
复制数据:(例如)dd if=/dev/xvda1 ibs=16M of=/dev/xvdg obs=16M count=80
在新的(较小的)EBS 卷上调整文件系统的大小:(例如)resize2fs -p /dev/xvdg
检查文件系统(原始根卷的):(例如)e2fsck -f /dev/xvdg
分离您的新 EBS 根卷,并将其附加到您的原始实例
我无法找到详细的分步“如何”解决方案。
我的 EBS 根卷附加到 HVM Ubuntu 实例。
任何帮助将非常感激。
amazon-ebs ×10
amazon-ec2 ×8
amazon-ami ×3
encryption ×1
linux ×1
snapshot ×1
ssd ×1
ubuntu ×1