对AWS存储设置的建议(使用自动扩展的php / mysql)

时间:2017-01-20 14:42:50

标签: amazon-web-services amazon-ec2

我想在AWS上部署一个php / mysql网站。最终,我想要自动缩放(但不需要马上进行缩放)。

我正在看一个基于EBS的AMI。我看到默认情况下,当实例“终止”时,将删除“根设备卷”。我意识到我还可以将其他EBS设备/驱动器连接到一个实例(终止后会保留)但我要在S3中保存大部分用户内容,所以我不认为这是必要的。我不确定当我想要终止时,我会多久开始/停止vs。所以这有点令人困惑。

我对系统的更改保存位置感到困惑。假设我运行YUM安装或更新。这会保存在“根设备卷”中吗?如果我停止/启动实例,那么更改应该在那里?如果我设置cron作业怎么样?

如果我上传文件怎么样?我在某种程度上理解,这取决于我放置文件的位置以及是否附加了第二个EBS。假设我只是将它们放在根文件夹“/”中(未经修改,但为了简单起见)。我猜他们在技术上保存在“根设备卷”中?如果我开始/停止实例,他们应该还在那里吗?

但是,如果我终止实例,那么这些更改/上传将丢失。但是如果我将“根设备卷”设置为在终止时不删除,那么我可以启动一个带有更改的新实例吗?

在自动缩放方面。有人说要将“根设备卷”保留为默认删除,以便在新实例启动/关闭时,它们不会留下不再需要的僵尸EBS卷(并且需要手动清理)? / p>

这样的事情会起作用吗??

  1. 设置S3存储桶(用于共享图像上传)
  2. 设置Amazon RDS / mysql
  3. 设置DynamoDB(用于共享php会话)
  4. 启动EBS支持的AMI(默认情况下保留以删除“根设备卷”) 终止)。使用yum / etc进行系统更新。通过sftp上传 PHP / HTML / JS / CSS文件(例如:/ var / www / html)。验证网站可以保存 图像到S3,通过DynamoDB共享会话,通过RDS访问mysql。
  5. 从当前正在运行/已配置的位置制作/克隆您自己的AMI图像 一。使用指示站点版本/日期/等的名称保存它。
  6. 设置自动缩放以启动在#5
  7. 中创建的图像

    我最关心的是如何保存我的配置以便1)保存更改以防万一我需要终止实例(在使用自动缩放之前)和2)自动缩放将有权访问更改时我准备好了。我也不希望在所有自动缩放实例上运行相同的cron-job。

    我想我很困惑“在#4中创建我自己的AMI图像”基本上取代终止时“保存EBS根设备卷”?我无法围绕事物的图像部分与事物的存储部分进行包围。

    当我读到人们谈论你是否使用“亚马逊Linux”时,我会更加困惑,然后他们每6个月部署一次更新的方式使得它很难使用,因为你被迫使用新版本的软件。这对我的自定义AMI(使用我上传的代码)有何影响?我可以继续在我的自定义AMI上运行yum更新(用于安全补丁)并忽略对亚马逊标准AMI的任何更改吗? yum方法什么时候让我有过时的风险?

    我知道有很多事情我没有涉及(dns /静态IP /扩展指标/等)。这不是上传文件然后创建AMI图像,有些人将他们的机器设置为在启动时从git中提取文件(我不介意我现在更多的手动方法)。或者我也可以在技术上将php / html / css / js放在S3上。

    抱歉所有随机问题。我知道我的问题可能甚至不完全清楚,但我只是在寻找确认/建议。有很多概念可以联系在一起。

    感谢并为这篇长篇文章感到抱歉!

1 个答案:

答案 0 :(得分:1)

是的,如果您安装软件包,上传文件,设置cron作业等,然后停止基于EBS的实例,重启时一切都会存在。 因此,如果您从该实例创建AMI,然后将其用于自动扩展组,则自动扩展组的所有实例都将运行cron作业。

你的步骤看起来不错。在创建AMI时,您的更改将保存在该AMI中。如果实例终止,则可以通过AMI重新创建。但是,自AMI创建以来对该实例所做的修改将不会被保存。如果需要备份,则需要创建AMI或拍摄EBS卷的快照。

如果进行了更改并希望将其应用于自动扩展组中的所有实例,则需要创建新的AMI并将其应用于自动扩展组。

关于cron的工作,我想你有两个选择:

  • 有1个实例不属于运行它们的自动扩展组(并在为自动扩展组创建AMI之前禁用cron作业)
  • 做一些聪明的事情,因此只有一个自动缩放组的实例运行它们。以下是我在Google上发布的第一页:https://gist.github.com/kixorz/5209217(未经过测试)

是的,创建自己的AMI图像基本上取代了保存EBS根设备卷"终止时

  

EBS启动AMI是EBS根卷的EBS快照加上一些   元数据,如体系结构,内核,AMI名称,描述,块   设备映射等等。

(来自:AWS Difference between a snapshot and AMI

是的,您可以自动运行yum安全更新。要与最新的Amazon Linux AMI完全相同,您应该运行所有yum更新(不仅仅是安全性)。但是我不会自动运行它们。

如果我忘记回答您的一些问题或者某些问题仍然不清楚,请告诉我。