我想在AWS上部署一个php / mysql网站。最终,我想要自动缩放(但不需要马上进行缩放)。
我正在看一个基于EBS的AMI。我看到默认情况下,当实例“终止”时,将删除“根设备卷”。我意识到我还可以将其他EBS设备/驱动器连接到一个实例(终止后会保留)但我要在S3中保存大部分用户内容,所以我不认为这是必要的。我不确定当我想要终止时,我会多久开始/停止vs。所以这有点令人困惑。
我对系统的更改保存位置感到困惑。假设我运行YUM安装或更新。这会保存在“根设备卷”中吗?如果我停止/启动实例,那么更改应该在那里?如果我设置cron作业怎么样?
如果我上传文件怎么样?我在某种程度上理解,这取决于我放置文件的位置以及是否附加了第二个EBS。假设我只是将它们放在根文件夹“/”中(未经修改,但为了简单起见)。我猜他们在技术上保存在“根设备卷”中?如果我开始/停止实例,他们应该还在那里吗?
但是,如果我终止实例,那么这些更改/上传将丢失。但是如果我将“根设备卷”设置为在终止时不删除,那么我可以启动一个带有更改的新实例吗?
在自动缩放方面。有人说要将“根设备卷”保留为默认删除,以便在新实例启动/关闭时,它们不会留下不再需要的僵尸EBS卷(并且需要手动清理)? / p>
这样的事情会起作用吗??
我最关心的是如何保存我的配置以便1)保存更改以防万一我需要终止实例(在使用自动缩放之前)和2)自动缩放将有权访问更改时我准备好了。我也不希望在所有自动缩放实例上运行相同的cron-job。
我想我很困惑“在#4中创建我自己的AMI图像”基本上取代终止时“保存EBS根设备卷”?我无法围绕事物的图像部分与事物的存储部分进行包围。
当我读到人们谈论你是否使用“亚马逊Linux”时,我会更加困惑,然后他们每6个月部署一次更新的方式使得它很难使用,因为你被迫使用新版本的软件。这对我的自定义AMI(使用我上传的代码)有何影响?我可以继续在我的自定义AMI上运行yum更新(用于安全补丁)并忽略对亚马逊标准AMI的任何更改吗? yum方法什么时候让我有过时的风险?
我知道有很多事情我没有涉及(dns /静态IP /扩展指标/等)。这不是上传文件然后创建AMI图像,有些人将他们的机器设置为在启动时从git中提取文件(我不介意我现在更多的手动方法)。或者我也可以在技术上将php / html / css / js放在S3上。
抱歉所有随机问题。我知道我的问题可能甚至不完全清楚,但我只是在寻找确认/建议。有很多概念可以联系在一起。
感谢并为这篇长篇文章感到抱歉!
答案 0 :(得分:1)
是的,如果您安装软件包,上传文件,设置cron作业等,然后停止基于EBS的实例,重启时一切都会存在。 因此,如果您从该实例创建AMI,然后将其用于自动扩展组,则自动扩展组的所有实例都将运行cron作业。
你的步骤看起来不错。在创建AMI时,您的更改将保存在该AMI中。如果实例终止,则可以通过AMI重新创建。但是,自AMI创建以来对该实例所做的修改将不会被保存。如果需要备份,则需要创建AMI或拍摄EBS卷的快照。
如果进行了更改并希望将其应用于自动扩展组中的所有实例,则需要创建新的AMI并将其应用于自动扩展组。
关于cron的工作,我想你有两个选择:
是的,创建自己的AMI图像基本上取代了保存EBS根设备卷"终止时
EBS启动AMI是EBS根卷的EBS快照加上一些 元数据,如体系结构,内核,AMI名称,描述,块 设备映射等等。
(来自:AWS Difference between a snapshot and AMI)
是的,您可以自动运行yum安全更新。要与最新的Amazon Linux AMI完全相同,您应该运行所有yum更新(不仅仅是安全性)。但是我不会自动运行它们。
如果我忘记回答您的一些问题或者某些问题仍然不清楚,请告诉我。