亚马逊EC2作为Web服务器?

63

最近我一直在思考可用的不同类型的主机。我们可以从欧洲的EC2实例中获得相当不错的延迟(平均值)(我们位于瑞典),而成本也相当不错。显然,对于我们当前处于扩张阶段的公司来说,能够扩大或缩小实例的可能性非常棒。

从逻辑角度来看,我还相信Amazon可能会比市场上的大多数托管公司提供更好的可用性和稳定性。可能这也会超过需要拨打电话号码以询问任何事情并强迫我们自己搜索的需求 :)

那么,如果我们要在EC2上运行Web服务器,应该关注什么?有哪些优点和缺点呢?

为了澄清,我们将运行一个相当标准的LAMP配置,并可能添加memcached。

谢谢


1
“Decent latency”有点模糊不清 :) - Tom Gullen
8个回答

67
那么,如果我们要在EC2上运行Web服务器,我们应该关注什么?有哪些利弊呢?
EC2的优缺点有些取决于您的业务。以下是我认为影响大型组织的问题列表:
- 分工明确:您现有的公司可能已经拥有独立的网络和服务器操作团队。但使用EC2时可能难以分离这些职责。例如,定义您的安全组(防火墙)的人可能是可以启动服务器的同一人。 - 家庭访问您的服务器:企业环境通常在本地或通过具有双重身份验证的虚拟专用网络(VPN)进行管理。具有访问您的EC2控制面板权限的管理员可能可以从家中进行更改。请注意,您的EC2访问密钥/帐户可能仍然可用于已离职或被解雇的员工,从而使家庭访问成为一个更大的问题...... - 难以验证安全性:某些安全控件可能无意间变得脆弱。在您的位置内部,您可以99%确定所有服务器都在防火墙后面,并限制了外部管理员访问。当您处于云中时,确保所有系统都采用此类控件要困难得多。 - 设备和专业工具无法进入云:专业工具无法进入云中。这可能会影响您的安全姿态。例如,您可能拥有某种网络入侵检测设备,放置在本地服务器前面,而您将无法将其移入云中。 - 法规和法规:我不确定您所在国家的法规,但您应该注意跨境问题。例如,在美国EC2土壤上运行欧洲系统可能会使您面临《爱国者法案》(Patriot Act)的管制。如果您处理信用卡号或个人身份信息,则如果基础设施在组织外部,则还可能需要处理各种问题。
  • 组织流程 谁有访问EC2的权限以及他们可以做什么?有人可以启动一个特大型机器并安装自己的软件吗?(附注:我们的公司http://LabSlice.com实际上添加了一些策略来防止这种情况发生)。如何备份和恢复数据?您会简单地开始在公司内部复制流程,只是因为您有了一个单独的云基础架构吗?
  • 审计挑战 如果数据在云中,您通常进行的任何审计活动可能会变得复杂。一个很好的例子是PCI - 如果数据托管在您环境之外的某个地方,您是否能始终证明数据在您的控制之下?
  • 公共/私有连接是一个挑战 您是否需要在公共和私有环境之间混合使用数据?在这两个环境之间发送数据并确保其安全性可能成为一个挑战。
  • 监控和日志记录 您可能会有中央系统监控您的内部环境并从服务器收集日志。如果您在场外运行服务器,您是否能够实现监控和日志收集活动?
  • 渗透测试 一些公司在公共基础架构上定期运行渗透测试活动。我可能错了,但我认为针对亚马逊基础架构运行渗透测试是违反他们合同的(这很有道理,因为他们只会看到攻击他们拥有的基础架构的公共活动)。
  • 我认为EC2对于中小型企业绝对是一个好主意。他们很少受到上述问题的影响,通常亚马逊可以提供比SMB自己实现更好的服务。对于大型组织,EC2显然会引起一些难以应对的问题和关注。

    Simon @ http://blog.LabSlice.com


    1
    我相信亚马逊在英国有欧洲EC2数据中心,因此不适用美国《爱国者法案》的规定。尽管如此,您应该了解可能存在的类似法律。 - rmcnew
    2
    很高兴看到关于云使用的真实问题清单。 - Jim T
    亚马逊的安全性已经通过SAS 70 Type II审计得到了独立验证。虽然这并不是安全验证的全部和终极标准,但可以肯定地说,他们比普通初创公司拥有更好的安全实践。您可以在自己的实例上进行渗透测试,但需要提前通知。在谷歌搜索AWS渗透测试的结果中,排名最靠前的是通知要求页面:http://aws.amazon.com/security/penetration-testing/。 - Eric J.
    我猜想这个列表上的大部分内容都可以适用于任何云托管服务,我的理解正确吗? - Peter Berg
    @rmcnew,爱国者法案适用于国际数据中心,因为亚马逊是一家美国公司,受到强制执行的 NSLs 影响,即使物理数据中心位于海外。 - fabspro
    显示剩余2条评论

    11

    主要的负面影响是您需要全面负责所有服务器管理。包括:安全补丁、防火墙、备份、服务器配置和优化。

    亚马逊将不为您提供任何操作系统或更高级别的支持。

    如果您完全熟悉运行自己的硬件,那么这可以带来很大的成本节约。


    嗨!感谢您的回答 - 缺乏支持非常明显,因此我们可能每周要花费额外的时间来保持一切运行,但也许这是值得的。我不知道... - Industrial
    1
    添加优点:更大的实例类型可用于测试。 如果您的应用程序需要从1到100甚至1000个服务器进行扩展,我相信Amazon AWS是最好的选择。 - Rodney Quillo

    7

    另一个未被提及的缺点:

    使用原始的EC2服务器,如果某个实例关闭了,它就“消失”了。本地磁盘上的任何信息都将永久丢失。您需要额外负责确保您希望在服务器重新启动时保留的任何信息都已持久化到EC2实例之外(存储到S3、RDS、EBS或其他离线服务器服务中)。


    1
    这已经不再是真的了。使用支持EBS的实例(除了持久性之外,在许多方面都更好)即使基础服务器硬件出现故障,也不会“消失”。 - Eric J.
    2
    "...使用标准的EC2服务器...". EBS可用,但它不是默认选项,也不包含在EC2定价中。 - Will Hartung

    7
    我在一家公司工作,我们使用亚马逊EC2进行托管,我们运行一个高CPU实例和两个小实例。 我不会说亚马逊EC2好坏,只是给你列出一些时间的经验清单。
    • 可靠性:不好。他们有很多停机时间。主要是部分区域,但确实存在...

    • 成本:昂贵。这是云计算而不是服务器托管!我的一个朋友在一家公司工作,他们进行复杂的计算,每天必须在特定时间完成,并且计算时间取决于他们获得的数据量...他们自己运行一些服务器,如果它变得稀缺,他们就会启动一堆EC2。 这是完美的用例,但如果您始终运行服务器24/7,则最好使用专用根服务器

    • 专用根服务器也将为您提供更好的性能。例如,磁盘读取速度将更快,因为它具有本地磁盘!

    • 流量也很昂贵

    • 支持:良好、快速和灵活,绝对非常好。 我们推出了一个大型产品,并且有很多新闻发布活动,发件人电子邮件的反向DNS存在问题。亚马逊的人很快就解决了它们。

    • 如果需要,亚马逊S3托管服务也很好

    在欧洲,我建议选择德国的托管提供商,他们的连通性非常好。

    例如这里: http://www.hetzner.de/de/hosting/produkte_rootserver/eq4/ http://www.ovh.de/produkte/superplan_mini.xml http://www.server4you.de/root-server/server-details.php?products=0 http://www.hosteurope.de/produkt/Dedicated-Server-Linux-L http://www.klein-edv.de/rootserver.php 我已经在所有这些主机上托管过,并获得了良好的体验。最好的肯定是HostEurope,但他们的价格有点贵。
    我运行了一个CDN,在那里有约40个服务器,两年来从未遇到任何宕机问题。
    亚马逊在过去的两个月内,在我们的业务领域中出现了3次故障。

    我并不同意其中一些内容,尤其是第三点。EBS磁盘分布在多个硬盘上,比真实磁盘更可靠。我之前使用过另一家提供商的真实计算机,但硬件出现故障的概率更高。 - Diego Jancic

    7

    我离开Amazon EC2的原因之一:

    • spamhaus.org将整个Amazon EC2块列入策略阻止列表(PBL)

    这意味着,所有使用spamhaus.org的邮件服务器在发送电子邮件时会报告“使用zen.dnsbl被阻止”在您的/var/log/mail.info中。
    我运行的服务器使用电子邮件为用户注册和重置密码,现在这已经不起作用了。

    在Spamhaus网站上阅读更多信息:http://www.spamhaus.org/pbl/query/PBL361340

    总结:需要发送电子邮件吗?不要使用Amazon EC2。


    1
    这是我们之前肯定不知道的一件事。谢谢Bjornrun! - Industrial
    4
    这并不是负面的,实际上有助于大幅减少全球垃圾邮件。只需使用一个SMTP提供程序即可。 - Eric J.
    9
    亚马逊提供简单电子邮件服务(SES),其定价基于流量。同时也有免费的层级可供选择。http://aws.amazon.com/ses/ - Martijn Heemels
    1
    这是无稽之谈。我每天从我的EC2实例发送数百封电子邮件。您可以轻松地从spamhaus列表中删除您的IP地址:http://www.spamhaus.org/lookup/ - Kai Pommerenke

    4
    我没有在生产中尝试过Amazon EC2,但我理解它的吸引力。 我对EC2的主要问题是,虽然它确实提供了一个很好且经济的方式将服务器房间中所有闪烁的灯移动到云端,但他们并没有为您提供更高级别的架构来随着需求增加扩展您的应用程序。这一切都留给您自己去解决。
    这对于更有经验的商店来说不是问题,他们可以自行维护所需的基础设施,但我认为较小的商店最好选择类似于Microsoft的Azure或Google的AppEngine之类的东西:平台会强制执行对您的架构的约束以换取一键式可扩展性。
    我认为优质支持的重要性不可低估。看看BitBucket博客。似乎有一段时间,他们每篇 文章 都在谈论他们遭遇的停机时间以及亚马逊花费的长时间来解决问题。

    相比之下,Github使用Rackspace云托管服务。我不使用Github,但我知道他们也有停机时间。然而,似乎这些停机时间都没有归咎于Rackspace缓慢的客户支持。


    4

    有两个优点值得一提:

    1)成本 - 使用亚马逊EC2,您只需支付所使用的费用,而且价格难以被打败。根据您的需求/用例,能够快速扩展以满足需求,然后稍后缩小并“返回”不需要的容量是一个巨大的优势。

    2)与其他亚马逊网络服务的集成 - 这个优势经常被忽视。与亚马逊SimpleDB或亚马逊关系数据存储的集成意味着您的数据可以与EC2提供的计算能力分开存储。这是一个巨大的优势,使EC2与其他服务区别开来。


    1

    亚马逊云监控服务和支持需要额外收费 - 第一个服务非常有用,如果您的应用程序是关键任务,则应考虑第二个服务。


    3
    自从这条评论最初发布以来,亚马逊现在提供了默认的免费指标和一个免费使用层次结构,用于更高级的CloudWatch自定义指标。http://aws.amazon.com/cloudwatch/ - Daniel Lopez

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接