我应该使用亚马逊的AWS虚拟私有云(VPC)吗?

时间:2012-08-14 21:51:45

标签: amazon-ec2 amazon-web-services amazon-vpc

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

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

我们没有做任何想象只是一个典型的网络应用程序。

使用VPC或不使用VPC的任何理由?

感谢。

6 个答案:

答案 0 :(得分:56)

注意:AWS启动时的新帐户会立即启用“默认VPC”,并使“EC2-Classic”不可用。因此,这个问题和答案现在没有比2012年8月更有意义了。我现在留下答案,因为它有助于“EC2-Classic”和VPC产品线之间的框架差异。有关详细信息,请参阅Amazon's FAQ

是。如果你是安全意识的,一个繁重的CloudFormation用户,或者想要完全控制自动缩放(而不是Beanstalk,它抽象了它的某些方面,但仍然让你完全访问缩放参数),使用VPC。这个blog post在总结优缺点方面做得很好。博文中的一些亮点(由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配置方面非常有用。

答案 1 :(得分:13)

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

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

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

答案 2 :(得分:2)

如果您的应用需要访问EC2以外的服务器,则VPC非常有用,例如:如果您拥有一个托管在您自己的物理数据中心但无法通过互联网访问的公共服务。如果您要将所有Web和DB服务器放在EC2上,则没有理由使用VPC。

答案 3 :(得分:2)

现在VPC是拥有内部负载均衡器的唯一方法

答案 4 :(得分:1)

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

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

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

答案 5 :(得分:0)

您在这里引起了很大的关注。

我想着重于成本方面的可行性...

费用因素呢?

我认为您将每小时为该服务器付费。即使您选择每月$ 20- $ 50的实例,这也将是您将花费服务器余下时间的事情。您可以很便宜地在旧硬件上轻松设置VPN服务器,甚至可以免费使用开源服务器解决方案。

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

谢谢

艾丽莎