🌱

EC2でマイクラ ~Discordボットを添えて~

2024/11/15に公開

こんにちは

みなさんマイクラしてますか?僕はしてません!初めて使うEC2の練習のために作りました!
大体20時間くらいでできたかと思います。

この記事の7割は
https://qiita.com/ekko/items/851fb0cc9eddb9680071
https://zenn.dev/fusic/articles/minecraft-forge-server-on-aws
この2記事を参考にさせてもらいました。ありがとうごじあます。

めざすところ

  • 安く
  • サーバの起動はDiscord上で操作でできるように

構成


このようになっています。userがDiscordからEC2インスタンスを起動できるようになっています。

userがDiscord内で「/minecraft」を送信すると、

ipアドレスが返信されます。これは起動したec2インスタンスのipを示しており、このipアドレスでMaincraftでマルチプレイに接続できます。

具体的には/minecraftが叩かれると、Heroku上にあるDiscordBotが、EC2を起動するLambdaの関数URLを叩きます。EC2には起動時にマイクラサーバを立てるsystemd.serviceがあるのでマイクラサーバが起動します。
サーバを監視するcronが登録してあるので、サーバにログインするユーザがいなくなると15分後に自動でインスタンスをシャットダウンします。シャットダウンするときにもserviceがワールドを保存するコマンドを叩くので安全にシャットダウンすることができます。
そのため接続するipアドレスは毎回異なります。Elastic IPを使用してもいいのですが、多分高くなるのでやめます。

Discussion