60

目前正在从另一个 VPS 提供商迁移到 Amazon EC2。我们有您典型的 Web 服务器/数据库服务器需求。我们的数据库服务器前面的 Web 服务器。不能从 Internet 直接访问数据库服务器。

我想知道是否有任何理由将这些服务器放入 AWS 虚拟私有云 (VPC) 中,而不仅仅是创建实例并使用安全组将它们隔离开来。

我们并没有做任何花哨的事情,只是一个典型的网络应用程序。

有什么理由使用 VPC 或不使用 VPC?

谢谢。

4

6 回答 6

58

注意:AWS 中的新账户会立即启动并启用“默认 VPC”,并使“EC2-Classic”不可用。因此,与 2012 年 8 月相比,这个问题和答案现在更没有意义了。我将按原样保留答案,因为它有助于界定“EC2-Classic”和 VPC 产品线之间的差异。有关更多详细信息,请参阅亚马逊的常见问题解答

是的。如果您有安全意识、重度 CloudFormation 用户,或者想要完全控制自动缩放(与 Beanstalk 不同,Beanstalk 抽象了它的某些方面但仍然让您可以完全访问缩放参数),请使用 VPC。这篇文很好地总结了利弊。博客文章中的一些亮点(由kiip.me撰写):

EC2 有什么问题?

所有节点均可通过 Internet 寻址。这对于没有理由存在于全球互联网上的节点来说没有多大意义。例如:数据库节点不应有任何公共互联网主机名/IP。

所有节点都在共享网络上,并且可以相互寻址。这意味着用户“Bob”启动的 EC2 节点可以访问用户“Fred”启动的任何 EC2 节点。请注意,默认情况下,安全组不允许这样做,但很容易撤消此保护,尤其是在使用自定义安全组时。

没有公共与私有接口。即使您想禁用公共主机名上的所有流量,也不能。在网络接口级别,每个 EC2 实例只有一个网络接口。公共主机名和弹性 IP 被路由到“私有”网络。

VPC 的优点

首先,与 EC2 相比,VPC 提供了难以置信的安全性。在 VPC 中启动的节点无法通过全球互联网、EC2 或任何其他 VPC 寻址。这并不意味着您可以忘记安全性,但与 EC2 相比,它提供了一个更明智的起点。此外,它使防火墙规则变得更加容易,因为私有节点可以简单地说“允许来自我们私有网络的任何流量”。我们从启动一个节点到拥有一个完全运行的 Web 服务器的时间从 20 分钟缩短到了大约 5 分钟,这完全是因为避免传播防火墙更改所节省的时间。

DHCP 选项集允许您指定新节点在 VPC 中启动时将使用的域名、DNS 服务器、NTP 服务器等。这使得实施自定义 DNS 变得更加容易。在 EC2 中,您必须启动一个新节点,修改 DNS 配置,然后重新启动网络服务才能获得相同的效果。我们在 Kiip 运行我们自己的 DNS 服务器以进行内部节点解析,而 DHCP 选项集使这一切变得轻松(在浏览器中键入east-web-001 而不是 10.101.84.22 更有意义)。

最后,VPC 只是提供了一个更加真实的服务器环境。虽然 VPC 是 AWS 的独特产品,并且似乎将您“锁定”到 AWS,但如果您决定开始运行自己的专用硬件,VPC 采用的模型更类似于。如果您需要迁移到自己的硬件,事先掌握这些知识并围绕它建立现实世界的经验将是非常宝贵的。

这篇文章还列出了 VPC 的一些困难,所有这些或多或少都与路由有关:从 VPC 中获取 Internet 网关或 NAT 实例、在 VPC 之间进行通信、为您的数据中心设置 VPN。这些有时会让人很沮丧,而且学习曲线也不是微不足道的。尽管如此,仅凭安全优势可能就值得一试,而亚马逊的支持(如果您愿意为此付费)在 VPC 配置方面非常有帮助。

于 2012-08-15T13:29:36.750 回答
13

目前,VPC 与 EC2 相比具有一些有用的优势,例如:

  • 每个实例多个 NIC
  • 每个 NIC 多个 IP
  • 安全组中的“拒绝”规则
  • DHCP 选项
  • 可预测的内部 IP 范围
  • 在实例之间移动 NIC 和内部 IP
  • VPN

据推测,亚马逊也将使用其中一些功能升级 EC2,但目前它们仅限于 VPC。

于 2012-12-07T13:49:12.897 回答
2

目前,VPC 是拥有内部负载均衡器的唯一方法

于 2013-04-22T21:09:26.763 回答
2

如果您的应用程序需要访问 EC2 之外的服务器,例如,如果您有一个托管在您自己的物理数据中心且无法通过 Internet 访问的通用服务,则 VPC 非常有用。如果您要将所有 Web 和数据库服务器放在 EC2 上,则没有理由使用 VPC。

于 2012-08-14T22:01:10.473 回答
1

如果您选择 RDS 来提供数据库服务,您可以配置DB Security Groups以允许来自给定EC2 Security Groups的数据库连接,那么即使您的 EC2 集群中有动态 IP 地址,RDS 也会自动创建防火墙规则以允许仅来自您的实例的连接,在这种情况下会降低 VPS 的优势。

另一方面,当您的 EC2 实例必须访问您的本地网络时,VPS 非常棒,然后您可以在您的 VPS 和本地网络之间建立 VPN 连接,控制 IP 范围、子网络、路由和传出防火墙规则,我认为不是你要找的。

我还强烈建议尝试使用Elastic Beanstalk,它提供了一个控制台,可以轻松为 PHP、Java 和 .Net 应用程序设置 EC2 集群,启用Auto ScalingElastic Load Balancer和自动应用程序版本控制,从而可以轻松地从错误的部署中回滚.

于 2012-08-15T11:15:17.293 回答
0

你在这里提出了一个很好的问题。

我想关注成本方面的可行性......

成本因素呢?

我认为您将按小时支付该服务器的费用。即使您选择每月 20 至 50 美元的实例,这也是您将在服务器的剩余生命周期中支付的费用。VPN 服务器是您可以在旧硬件上轻松设置的东西,非常便宜,甚至免费用于开源解决方案。

将 VPN 添加到现有的 AWS 服务器停放是有意义的,而在 AWS 上设置单独的 VPN 服务器则没有意义。我不认为这是最好的成本效益选择,但这只是我的看法。

谢谢,

艾丽莎

于 2019-06-13T06:25:52.390 回答