我们已经将应用程序部署在 EC2 实例中,数据库位于 RDS 中,即 db.m2.2xlarge。与同时具有应用程序和数据库服务器的 QA 环境相比,我发现我们的应用程序速度略慢。虽然 Prod 服务器的配置很高,但我们还是看到了一些速度缓慢的情况,我认为我们的 EC2 和 RDS 实例不在同一网络中。
我如何确定它们是否在同一个网络中?如果不在同一个网络中,我如何将它们置于同一个网络中?
请注意,EC2 和 RDS 位于同一区域
答案1
与同时包含应用程序和数据库服务器的 QA 环境相比,我发现我们的应用程序稍微慢了一些。
您的 QA 环境和您描述的环境之间有什么区别(我假设慢速环境是生产环境)。不清楚 QA 是副本,还是在 AWS 中,或者是完全不同的设置。
尽管 Prod 服务器配置很高,但我们还是发现速度有些慢,我认为我们的 EC2 和 RDS 实例不在同一个网络中。
不清楚在这种情况下高是什么意思,我猜你的意思是你的资源有更多的 RAM/CPU 等。同样不清楚你为什么认为数据库不在同一网络上。要么你应该知道这个问题的答案,要么你应该问设置它的人。
我如何确定它们是否在同一个网络中?如果不在同一个网络中,我如何将它们置于同一个网络中?
如果您想调查 EC2 和 RDS 实例,您可以通过 Web 控制台或 API 进行调查。您在这里寻找一些东西。
- 实例是否位于同一区域
- 实例是否位于同一 VPC 中
- 实例是否位于同一可用区
其他考虑因素
您应该检查 CloudWatch(以及您自己的应用程序)指标,以更好地了解真正的缓慢程度。您的缓慢程度可能与网络有关,也可能只是查询速度慢,或者生产环境中有更多人敲打您的应用程序。如果不检查数据,很难判断。
RDS 提供了两个您可能感兴趣的功能:
- 主从
- 备份将在从服务器上进行,因此您不会遇到主服务器速度缓慢的情况
- 如果主服务器宕机,从服务器将接管
- 真正的遗物
- 如果遇到速度缓慢的情况,你可以部署最多 5 个主服务器的副本,以分担读取负载