我正在研究 NodeJS 部署选项,我正在考虑使用 AWS,但我似乎不了解定价以及如何进行部署。我当前的解决方案包括 Express,以及几个独立的 Node 模块、RabbitMQ 和 MySQL DB。目前,我并不期望应用程序的负载很大,这只是典型的企业 Web 应用程序。如果说我要估计它的需求,我会说我将需要 4-8 个 CPU 内核和 8-16GB 的应用程序服务器,同样需要 16-24GB RAM 和大约 2TB 总存储空间的 MySQL 服务器。
有人能告诉我哪种实例类型更适合我的要求吗?我是否需要应用服务器、数据库服务器等单独的实例,或者我可以在同一个实例上设置它们?其次,如果 future 出现需求,扩展需求有多容易?我可以轻松切换实例类型并增加内存、CPU、存储等吗?
另外一个问题是定价如何运作,它会在请求到达云端后计算吗?它消耗了多少资源,或者即使没有请求进来我仍然要收费吗?
请记住,我没有使用 AWS 的经验,目前我只是想将其用作托管站点。您有什么建议。
谢谢
最佳答案
您有几个问题,我们无法回答其中许多问题,因为我们不知道您的应用程序资源需求是什么。
Can someone tell me what instance types would be better for my requirements
不是真的。如果您知道您的哪些服务需要更多 CPU 与更多 RAM,您可以查看 instance descriptions查看哪种类型最适合您(有些针对 CPU 进行了优化,有些针对磁盘进行了优化,有些针对 RAM 进行了优化,等等)。但最终,这只是您可以决定的事情(除非您有可以与我们分享的负载测试指标)。
will I require separate instances for App Server, DB Server etc or I can setup it on the same instance?
您可以在桌面上做任何您通常会做的事情——它是一个成熟的操作系统,唯一的区别是您必须明确地配置它周围的网络(谁可以访问您的主机,在什么端口上,等等)。虽然拥有多个主机是明智的,但如果您一开始只是进行测试,那么暂时在单个主机上启动所有内容并没有什么错,同时您还未涉足。
how easy will it to scale the requirements if future needs arise, can I switch the instance type and increase memory, CPU, storage etc easily?
简单是相对的。您绝对可以启动更多实例,但这些实例如何随您的应用程序 扩展是完全不同的事情。您的应用程序迁移到新硬件有多容易?能不能在多个盒子前面丢一个负载均衡器?这些都是你需要考虑的问题。
值得注意的是,您不能使用额外资源(存储除外)升级现有机器。如果您需要更多 CPU、更多内存、更多带宽,这是一种新的实例类型。
how pricing works, will it calculate after the request comes to the cloud and how much resources did it consume or will I still gets charged even if no requests are coming in?
亚马逊有 a pretty robust pricing description你应该过去。
对于基础实例:
定价是按每个实例消耗的实例小时计算的,从实例启动到终止或停止。根据您运行的 Amazon EC2 实例,每个消耗的部分实例小时将按完整小时或每秒计费。
但您还必须考虑数据速率(在同一页面上)以及存储成本。
希望这对您有所帮助。
关于mysql - AWS 的 NodeJS 部署容量规划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48498584/