我目前在AWS上托管了一个小型网站。
服务器是一个微实例。 在这个微观实例上:
随着网站流量的增加,我达到了需要扩展的时间,我不确定最佳做法是什么以及每种做法的含义是什么。
我希望任何推荐阅读材料
我在考虑:
问题:
将数据库存储在单独的计算机上会产生查询 显着慢?
我实际上应该将数据库存储在S3上吗?
单独为nginx设置一个完整的实例是否合理?
您如何从1台机器扩展到多台机器?我猜测从一到二移动比从两个移动到50更难。
任何建议将不胜感激!
答案 0 :(得分:1)
- 将数据库存储在单独的计算机上会使查询显着变慢吗?
醇>
不,速度影响非常小,无论如何都需要这种可扩展性。只需确保使用实例的私有IP地址进行任何实例间通信,以便流量保留在VPC内(出于安全性和性能原因)。
- 我实际上应该将数据库存储在S3上吗?
醇>
不,那根本不起作用。您无法在S3上存储数据库,只能存储数据库备份。
- 单独使用nginx的整个实例是否合理?
醇>
如果你获得足够的流量,那么绝对是。
您如何从1台机器扩展到多台机器?
通常,您需要将数据库移动到单独的服务器,创建Web服务器的多个实例,并在其前面放置负载均衡器。如果您希望基于流量进行自动扩展,那么您还可以将Web服务器放在自动扩展组中。如果这一切听起来很难,那么我建议您考虑将您的网络服务器移动到Elastic Beanstalk,这将为您管理大部分内容。
如果您的数据库是瓶颈,那么您可能还需要设置MongoDB群集并平衡群集中的负载。您也可以将数据库移动到类似mlab的内容,这样可以大大简化对数据库的管理。