目前正在从另一个 VPS 提供商迁移到 Amazon EC2。我们有您典型的 Web 服务器/数据库服务器需求。我们的数据库服务器前面的 Web 服务器。不能从 Internet 直接访问数据库服务器。
我想知道是否有任何理由将这些服务器放入 AWS 虚拟私有云 (VPC) 中,而不仅仅是创建实例并使用安全组将它们隔离开来。
我们并没有做任何花哨的事情,只是一个典型的网络应用程序。
有什么理由使用 VPC 或不使用 VPC?
谢谢。
目前正在从另一个 VPS 提供商迁移到 Amazon EC2。我们有您典型的 Web 服务器/数据库服务器需求。我们的数据库服务器前面的 Web 服务器。不能从 Internet 直接访问数据库服务器。
我想知道是否有任何理由将这些服务器放入 AWS 虚拟私有云 (VPC) 中,而不仅仅是创建实例并使用安全组将它们隔离开来。
我们并没有做任何花哨的事情,只是一个典型的网络应用程序。
有什么理由使用 VPC 或不使用 VPC?
谢谢。
注意:AWS 中的新账户会立即启动并启用“默认 VPC”,并使“EC2-Classic”不可用。因此,与 2012 年 8 月相比,这个问题和答案现在更没有意义了。我将按原样保留答案,因为它有助于界定“EC2-Classic”和 VPC 产品线之间的差异。有关更多详细信息,请参阅亚马逊的常见问题解答。
是的。如果您有安全意识、重度 CloudFormation 用户,或者想要完全控制自动缩放(与 Beanstalk 不同,Beanstalk 抽象了它的某些方面但仍然让您可以完全访问缩放参数),请使用 VPC。这篇博文很好地总结了利弊。博客文章中的一些亮点(由kiip.me撰写):
所有节点均可通过 Internet 寻址。这对于没有理由存在于全球互联网上的节点来说没有多大意义。例如:数据库节点不应有任何公共互联网主机名/IP。
所有节点都在共享网络上,并且可以相互寻址。这意味着用户“Bob”启动的 EC2 节点可以访问用户“Fred”启动的任何 EC2 节点。请注意,默认情况下,安全组不允许这样做,但很容易撤消此保护,尤其是在使用自定义安全组时。
没有公共与私有接口。即使您想禁用公共主机名上的所有流量,也不能。在网络接口级别,每个 EC2 实例只有一个网络接口。公共主机名和弹性 IP 被路由到“私有”网络。
首先,与 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 配置方面非常有帮助。
目前,VPC 与 EC2 相比具有一些有用的优势,例如:
据推测,亚马逊也将使用其中一些功能升级 EC2,但目前它们仅限于 VPC。
目前,VPC 是拥有内部负载均衡器的唯一方法
如果您的应用程序需要访问 EC2 之外的服务器,例如,如果您有一个托管在您自己的物理数据中心且无法通过 Internet 访问的通用服务,则 VPC 非常有用。如果您要将所有 Web 和数据库服务器放在 EC2 上,则没有理由使用 VPC。
如果您选择 RDS 来提供数据库服务,您可以配置DB Security Groups以允许来自给定EC2 Security Groups的数据库连接,那么即使您的 EC2 集群中有动态 IP 地址,RDS 也会自动创建防火墙规则以允许仅来自您的实例的连接,在这种情况下会降低 VPS 的优势。
另一方面,当您的 EC2 实例必须访问您的本地网络时,VPS 非常棒,然后您可以在您的 VPS 和本地网络之间建立 VPN 连接,控制 IP 范围、子网络、路由和传出防火墙规则,我认为不是你要找的。
我还强烈建议尝试使用Elastic Beanstalk,它提供了一个控制台,可以轻松为 PHP、Java 和 .Net 应用程序设置 EC2 集群,启用Auto Scaling、Elastic Load Balancer和自动应用程序版本控制,从而可以轻松地从错误的部署中回滚.
你在这里提出了一个很好的问题。
我想关注成本方面的可行性......
成本因素呢?
我认为您将按小时支付该服务器的费用。即使您选择每月 20 至 50 美元的实例,这也是您将在服务器的剩余生命周期中支付的费用。VPN 服务器是您可以在旧硬件上轻松设置的东西,非常便宜,甚至免费用于开源解决方案。
将 VPN 添加到现有的 AWS 服务器停放是有意义的,而在 AWS 上设置单独的 VPN 服务器则没有意义。我不认为这是最好的成本效益选择,但这只是我的看法。
谢谢,
艾丽莎