如何选择EC2集群类型?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何选择EC2集群类型?相关的知识,希望对你有一定的参考价值。

我想为移动游戏实现一个非常简单的服务器端应用程序,主要是为了满足我对分析的需求并在运行中调整一些设置。

  • 游戏是单人游戏
  • 在每个会话的启动时,游戏下载大约5KB的设置
  • 在每个游戏/循环之后,游戏向服务器发送大约10KB的数据并将其存储用于分析。
  • 然后我处理这些数据并调整一些设置,以便在后续会话中下载。一种直播行动
  • 我倾向于使用AWS解决方案,但我对选择什么并不太了解。一些基本问题

EC2集群:有EC2集群。假设我每天有10,000名玩家参加3次会议 - 我可以选择t2 Large或m4.10x large或者其他东西吗?我该如何选择?另外我想知道,如果突然有多少玩家达到100万,我是否需要购买更多实例或购买1个强大的奖励?

RDS:对于我的用例,我是否需要一个RDS实例来存储数据?据我所知,EC2只是计算能力来运行我的服务器端应用程序而不是在数据库中存储任何数据。为了每天存储大约10MB的数据,db m1 large应该足够吗?

任何帮助是极大的赞赏!

答案

根据您的要求,您似乎可以选择AWS Cognito Sync等无服务器解决方案来同步用户会话数据,并使用Lambda函数执行分析,您可以决定将此信息存储在数据库中。

此解决方案将为您提供最低的总拥有成本,同时您只需为AWS资源使用付费,同时默认情况下具有可伸缩性,可用性和容错能力。

另一答案

对于您需要的大小实例和数据库,没有真正的答案。确定这一点的唯一方法是通过模拟工作负载并查看应用程序的执行情况来测试应用程序。调整每个不同测试的实例大小,数据库大小等,并比较最有效的方法。

但是,在更高级别,您可以考虑使用API​​ Gateway和AWS Lambda的无服务器解决方案。这将自动扩展到您需要的任何工作负载,您只需支付实际使用的计算时间。

对于数据库,Amazon DynamoDB是一个完全托管的NoSQL数据库,可以根据工作负载进行扩展。它是云服务,因此无需管理数据库服务器。

这种无服务器方法需要与传统编程不同的方法 - 它是响应式和基于事件的,而不是让应用程序永远循环,等待流量。它很可能会更便宜。

另一答案

我该如何选择?

幸运的是,我们不知道您的系统要求是什么。 AWS上最好的东西之一是您可以在生产规模上进行测试。因此,您可以进行一些负载测试,并查看系统的行为方式

您也可以从一些基线设置开始,并根据需要更改实例大小。

其他答案建议无服务器和您提供的数字,如果您可以这样编写您的应用程序可能是个好主意。请注意,在严重工作负载下,无服务器选项可能更昂贵,但我相信您可以从中受益匪浅。

另外我想知道,如果突然有多少玩家达到100万,我是否需要购买更多实例或购买1个强大的奖励?

如果您可以编写可以水平扩展的应用程序(添加更多服务器可以提高系统性能),您可以将系统设置为自动扩展和缩小,并且可以从较小的实例开始(服务器将根据需要启动和停止通过它自己 )

RDS:对于我的用例,我是否需要一个RDS实例来存储数据

如果你需要一个关系数据库,rds是很好的选择。它内置了高可用性和灾难恢复功能。但是,RDS不会自动扩展,因此如果您希望达到非常高的峰值流量,您可以考虑使用一些缓存或DynamoDB。这会扩大规模。

。为了每天存储大约10MB的数据,db m1 large应该足够吗?

实例大小会影响可用的最大iops,内存和cpu,因此它取决于您的工作负载所需的内容。对于小数据吞吐量和简单选择,您可以从较小的东西开始(t2.small?)并查看它的行为方式。

以上是关于如何选择EC2集群类型?的主要内容,如果未能解决你的问题,请参考以下文章

如何在亚马逊免费云主机amazon ec2安装lnmpa来搭建网站

如何允许 kubernetes 集群访问我的 ec2 机器?

如何使用 boto3 在集群中启动 EC2 实例

云小课|云小课教您如何选择Redis实例类型

EC2 t4g 实例 AMI

如何基于java应用内存扩展aws ec2集群