見出し画像

docker compose upでAWSにマイクラサーバーをデプロイしたかったけどできなかった

マインクラフトのサーバーをAWSで建ててみたかった。

結論

できませんでした。

Minecraft Dockerイメージ

ローカルサーバーならDockerで簡単に建てられることは知ってた。

このDockerイメージ使ってdocker-compose upするだけ、マジ簡単
以下、Githubより引用 docker-compose.yml

version: "3.8"

services:
 mc:
   image: itzg/minecraft-server
   ports:
     - 25565:25565
   environment:
     EULA: "TRUE"
   volumes:
     # attach a directory relative to the directory containing this compose file
     - ./minecraft-data:/data

今回はMODを入れたサーバーを建てたかったんだけど、ModサーバーもこのDockerイメージはオプションでカバーしてるらしい。天才か?

version: "3.8"

services: 
 minecraft-server:
   image: itzg/minecraft-server
   ports:
     - "25565:25565"
   environment:
     EULA: "TRUE"
     TYPE: "FORGE"
     VERSION: "1.16.5"
     FORGEVERSION: "36.1.0"
   volumes:
     - data:/data
   tty: true
   stdin_open: true
   restart: always

AWS ECS

AWSのECSっていうサービスがDockerイメージをもとにサーバーを建てられるらしいこともふわっと知ってた。

ググってみたらdocker-compose.ymlをAWS用にいい感じに追記すれば、docker compose up するだけでAWSにサーバー建てられるらしい。簡単すぎてヤバい。

マインクラフトはワールドデータの保管のためにデータボリュームをマウントする必要があるけど、それはEFSっていうファイルストレージを使うらしい。その設定すらもdocker-compose.ymlに記述すればいいらしい。

version: "3.8"

services: 
 minecraft-server:
   image: itzg/minecraft-server
   ports:
     - "25565:25565"
   environment:
     EULA: "TRUE"
     TYPE: "FORGE"
     VERSION: "1.16.5"
     FORGEVERSION: "36.1.0"
   volumes:
     - data:/data
   tty: true
   stdin_open: true
   restart: always
volumes:
 data:
   driver_opts:
     backup_policy: ENABLED
     lifecycle_policy: AFTER_14_DAYS
     throughput_mode: bursting

事前にAWS CLIでIAMアカウントのキーペアを登録しておけば流用できるdocker contextの設定でAWSアカウントを設定する際に流用できる。

docker compose up

そんなこんなでdocker compose up(ハイフンはいらない)
このコマンド一つでサーバーが建つんだぜ、スゲーよな

建たねーんだわ、これが

EC2のステータスを見るとinitial → drainingになる。

助けてくれ(鋭意更新中)

この記事が気に入ったらサポートをしてみませんか?