我正在评估并尝试估算现有基于 Java 的 Web 应用程序的托管成本,目前正在尝试确定最有效的托管解决方案。在查看 Amazon EC2 托管时,我尝试与我们目前与母公司数据中心建立的托管进行同类比较。
我们当前的设置是非虚拟化的。我们有 3 台服务器:
一个利用率较低、面向公众的 Apache Web 服务器,充当反向代理设置。
以及两台相同的应用程序服务器,负载平衡,并位于防火墙后面。
我们先忽略数据库。
我的问题是,与仅拥有一个大型实例相比,这种 3 服务器设置是否实用?我想说的是,既然我必须支付带宽使用费用,那么我子网上的实例之间的网络通信是否会计入我的带宽使用量?
如果是这样,那么整体式超级实例可能比在自己的防火墙后面的许多较小的负载平衡应用服务器更具有经济意义。
答案1
如果您在同一个 AWS 可用区 (例如 us-east-1a) 内有多个 EC2 实例,则它们之间的流量无需付费。因此,您可以在 EC2 实例之间自由发送数据,而不必担心账单。
如果它们位于不同的区域,或者甚至是同一区域内的不同可用区,那么您将需要支付流量费用。
了解这一点后,以对应用程序(单个实例或多个实例)有意义的方式构建您的应用程序,并结合您的各种实例如何花费 EBS 存储和 EC2 运行时间。