什么是正确的方式"在AWS上部署一个简单的应用程序/博客?

时间:2012-07-23 18:16:14

标签: deployment amazon-web-services

我是AWS的新手,做了我的研究,但没有得到一个好的答案,因此提出了一个简单的问题。

到目前为止我做了什么

  • 我启动了一个Linux AMI,安装了LAMP并部署了我的应用程序,运行正常
  • 弹性IP是AMI的设置
  • 域名也正确指出

事实上,如果您http://example-domain-name.com,您将能够看到该应用,并与之互动......

我的问题是,我现在完成了,是否正确部署了应用?我听过恐怖故事,包括AWS AMI崩溃等等。

请您分享一下您的专业知识。

3 个答案:

答案 0 :(得分:2)

根据您对您的问题的评论,所有可能情况中最好的是一个高可用性,多可用区,自动缩放的Web层,可以使用复制的mysql数据库支持,或者,如果您能负担得起,可以使用Amazon RDS。 Here's an example CloudFormation template that will build more or less what I just described in about two clicks, after you fill out a couple of variables.

这太过分了......我想......但如果你担心亚马逊无数的失败模式,那么高价格可以付出代价。该模板的默认实例(包括多可用区域RDS)come to about $270 a month for 24/7 uptime.如果您真的专注于您的博客,并且可以保证您多年来一直在写它,那么您可以save a fair bit of money using reserved instances.

那是很多钱,是的。但它也低于我在纽约市的每月汽车保险费率。这更多地说明了我可疑的保险公司或我的驾驶记录,而不是亚马逊的价格,但在一些个人应用程序中,高可用性设计可能是值得的。你的时间对你有多少价值?博客怎么样?

称之为黄金标准,因为你必须有一辆装满黄金的自卸卡才能买得起并仍在吃。当你开始出血时你会失去什么?

  • AZs:拍摄多可用区部署,可能会导致AZ中断。这种情况不会经常发生,但then again neither do derechos in the DC metro.不要担心,如果你围绕一个单独的AZ进行设计,那么你就会进入huge and perhaps unexpected company.

  • RDS /复制MySQL:丢失高可用性数据解决方案,您可能会丢失数据。即使它像偶尔的EBS快照一样简单,也很难从你最好的设计中恢复过来。

  • 多个网络服务器:与MySQL数据库一样,如果您将网络层放在一台计算机上,则需要中断。如果您能买得起替代品,您可以围绕它进行设计。否则,您将需要一种简单的编程方式来构建您的网络服务器。

  • 自动调节:我不明白为什么有人设计AWS应用程序而不使用CloudFormation或CLI工具进行自动调节,即使实例的最小数量和最大数量恰好是1。 free tier of AWS pricing包含大量CloudWatch指标,可以轻松实现实例监控,当然这取决于......

  • 配置管理:每个AWS设计中的共同线程是配置管理。无论您实际部署了多少台计算机,它都是部署过程中最重要的组件。无论您现在是在使用CloudFormation,Chef,Puppet,其他一些服务还是combination thereof,,您现在都可以在配置管理上花费时间,当您的机器构建仍然在您脑海中时,您将在以后获得奖励。

这些组件中的每一个都有助于您的应用程序的稳定性,并且所有这些组件都需要花费金钱或时间。这只是你想要花费的时间和时间的问题。

您可以通过亚马逊的free tier获得部分黄金标准。它包含足够的时间在单个AZ中连续运行微实例,ELB和小型RDS实例。它还允许在撰写本文时使用10个自定义CloudWatch指标。免费套餐仅适用于新客户的第一年使用。如果您将其产品与一些基本配置管理相结合,您可以合理地在AWS上运行一个小型博客,以避免许多停机情况。

答案 1 :(得分:1)

重要的是要了解您的AWS EC2服务器“可能”随时“失败”......这是“按设计”......他们在廉价的非冗余商品硬件上向您收取廉价租金......没有SLA ...

所以真正的问题是:您是否有完善的文档(理想脚本)流程从头开始快速重建服务器和/或从EBS快照中恢复它?

如果问题的答案是:是的!然后我会说你“做对了”......

如果没有,您可能需要花一点时间来了解AWS领域可能发生的不良事件......(再次“按设计”)。

答案 2 :(得分:0)

没有好办法。至少,您需要一个负载均衡器和两个应用实例。另外,根据您的应用程序,您将需要容错RDS实例和/或S3。

AWS是一个简单的应用程序或博客的错误解决方案。通过在另一个提供商处使用单个VPS或专用服务器,您可以以更低的成本获得更好的性能和耐用性。使用AWS,您可以为快速扩展应用程序的能力支付额外费用。如果您不需要这样做,那么这不是正确的选择。使用AWS的人中有90%不理解这一点。