我想为移动游戏实现一个非常简单的服务器端应用程序,主要是为了满足我对分析的需求并动态调整一些设置。
EC2集群: 有EC2集群。假设我每天有10,000名玩家参加3次会议 - 我可以选择t2 Large或m4.10x large或者其他东西吗?我该如何选择? 另外我想知道,如果玩家的数量突然增加到100万,我是否需要购买更多实例或购买1个强大的奖励?
RDS: 对于我的用例,我是否需要一个RDS实例来存储数据?据我所知,EC2只是计算能力来运行我的服务器端应用程序而不是在数据库中存储任何数据。为了每天存储大约10MB的数据,db m1 large应该足够吗?
非常感谢任何帮助!
答案 0 :(得分:0)
根据您的要求,您似乎可以选择AWS Cognito Sync等无服务器解决方案来同步用户会话数据,并使用Lambda函数执行分析,您可以决定将此信息存储在数据库中。
此解决方案将为您提供最低的总拥有成本,同时您只需为AWS资源使用付费,同时默认具有可扩展性,可用性和容错能力。
答案 1 :(得分:0)
对于您需要的大小实例和数据库,没有真正的答案。确定这一点的唯一方法是通过模拟工作负载并查看应用程序的执行情况来测试应用程序。调整每个不同测试的实例大小,数据库大小等,并比较最佳效果。
但是,在较高级别,您可以使用 API网关和AWS Lambda 来考虑无服务器解决方案。这将自动扩展到您需要的任何工作负载,您只需支付实际使用的计算时间。
对于数据库, Amazon DynamoDB 是一个完全托管的NoSQL数据库,可以根据工作负载进行扩展。它是云服务,因此无需管理数据库服务器。
这种无服务器方法需要与传统编程不同的方法 - 它是响应式和基于事件的,而不是让应用程序永远循环,等待流量。它很有可能会更便宜。
答案 2 :(得分:0)
我该如何选择?
幸运的是,我们不知道您的系统要求是什么。 AWS上最好的东西之一是您可以在生产规模上进行测试。因此,您可以进行一些负载测试并查看系统的行为
同样,您可以从一些基线设置开始,并根据需要更改实例大小。
其他答案建议使用无服务器,并且您提供的数字可能是个好主意,如果您可以这样编写您的应用程序。请注意,在严重工作负载下,无服务器选项可能更昂贵,但我相信您可以从中受益匪浅。
另外我想知道,如果玩家的数量突然增加到100万,我是否需要购买更多实例或购买1个强大的意图?
如果您可以编写可以横向扩展的应用程序(添加更多服务器会提高系统性能),您可以将系统设置为自动扩展和缩小,并且可以从较小的实例开始(服务器将启动并且根据需要自行停止)
RDS:对于我的用例,我是否需要一个RDS实例来存储数据
如果您需要关系数据库,rds是不错的选择。它内置了高可用性和灾难恢复功能。但是,RDS不会自动扩展,因此如果您希望达到非常高的峰值流量,您可以考虑使用一些缓存或DynamoDB。这会扩大规模。
。为了每天存储大约10MB的数据,db m1 large应该足够吗?
实例大小会影响可用的最大iops,内存和CPU,因此它取决于您的工作负载所需的内容。对于小数据吞吐量和简单选择,您可以从较小的东西开始(t2.small?)并查看它的行为方式。