当前,我在C5 EC2实例上运行着一个工作正常的Minecraft服务器。问题是我必须手动启动和停止服务器,这对我的朋友们可能很烦。我想知道是否有可能使EC2状态自动化,以便在玩家尝试加入服务器时立即运行。这类似于我听说Mojang将AWS用于以下方面的Minecraft领域的行为: https://aws.amazon.com/blogs/aws/hosting-minecraft-realms-on-aws/
我已经查看了有关此的教程,这是我能碰到的最好的东西: https://github.com/trevor-laher/OnDemandMinecraft
该解决方案的问题在于,它需要一个单独的网站来登录用户并启动EC2实例,而我希望启动和关闭是完全自动化的。
我将不胜感激。
答案 0 :(得分:1)
如果服务器关闭,则无法“连接”到服务器。因此,需要另一种可用于启动服务器的机制。
结合您的期望以最小化成本,唯一真正的解决方案是以某种方式触发可启动服务器的AWS Lambda函数。
有几种方法可以让用户触发AWS Lambda函数:
在考虑使用的方法时,您应考虑安全隐患,例如:
坦率地说,我会推荐以下架构:
这里是一本教程,展示了许多这些概念:Build an API Gateway API with Lambda Integration
该秘密的目的是避免在未经授权的人(或机器人)碰巧访问API网关端点时避免服务器启动。它们不会提供机密,因此将不会启动服务器。
一段时间不使用后,停止服务器是另一回事。您引用的库可能能够帮助您找到一种方法。您可以在Minecraft服务器上运行一个脚本来监视游戏,并且在一段时间不活动之后,只需调用操作系统执行关机。
答案 1 :(得分:0)
您可以使用BungeeCord集线器服务器,然后该服务器允许用户开始与主服务器的连接并通过向上旋转。 AWS。
这将要求蹦极服务器始终处于启动状态,但是托管小型蹦极服务器的成本应该相对便宜。
我认为,如果没有小型服务器来接收启动AWS机器的初始请求,您将无法执行任何操作。