我即将开始首次使用 AWS。据我所知,当您终止实例或启动新实例时,所有数据都会丢失。对于用户数据,我理解您应该使用 S3 等云存储。没关系。
现在所有的配置怎么办?假设我花了 2 个小时设置所有的 apache 和 PHP 配置或诸如此类的东西。我如何确保在终止实例或启动新实例时它仍然存在?
其次,我的实际应用程序、PHP 代码以及运行它所需的文件权限怎么办?终止实例时会发生什么?如果我有 3 个实例并更改了我的代码怎么办?
抱歉,我对这个概念还很陌生。
谢谢
答案1
创建 EBS 卷并将其附加到您的实例。安装服务(例如 Apache、MySQL、PHP 等)后,将相应文件移动到您的 EBS 存储。
例如,我在实例上运行 Ubuntu,因此每个服务的所有必要配置信息都包含在 /etc 下的相应目录中(例如 /etc/apache2、/etc/php 等)。将 EBS 卷安装到 /vol 后,我将 /etc/{service} 目录移动到 /vol。因此 PHP 从 /etc/php5 移动到 /vol/etc/php5。然后我将 /etc/php5 符号链接到 /vol/etc/php5。唯一的“陷阱”是使用 MySQL 时,您还应该执行 /var/lib/mysql 的实际数据目录。
现在,如果我的实例死机或我终止它,所有配置都会保存在 EBS 上,然后我可以将其克隆或附加到任何其他实例。由于我还将 /var/www/ 放在了 EBS 卷上,所以我的网站及其所有数据也都在那里。
答案2
EC2 实例有两种类型:(a) 实例存储 - 这种类型的实例在硬件硬盘上有根卷。您无法停止这种类型的实例,只能终止它。终止后,该硬盘上的所有数据都将丢失。(b) EBS 支持 - 这种类型的实例在 EBS 卷上有根卷。EBS 卷持久化并存储在 EC2 实例之外。这些类型的实例可以停止和重新启动,而不会丢失 EBS 卷中的数据。
EBS 支持的实例是首选的实例类型,因为它具有备份和恢复卷的能力以及停止和启动实例的能力。
无论是哪种情况,如果您终止实例,数据都会丢失。您可以创建 EC2 实例的 AMI 映像,然后可以使用这些映像创建实例的新副本。