はじめに
先日、AWSのCertified Cloud Practitioner(CLF)を取得したので、実際に何か動かしてみたいと思っていました。
Youtubeでいろいろ探していると、このような動画を見つけました
AWSを使用したマイクラサーバーの作り方、無料利用枠で作ったサーバーで遊べるのか(AWS、AmazonLinux)
やってみる
まず、IAMユーザを作成していなかったので、用意します
その後は、基本的にYoutubeで説明されている手順通り進めていきます
動画では、インスタンスタイプをt2.microで進めていますが、メモリが1GBだとさすがに少ないと思い、t3.smallを選択しました。(どちらも無料枠)
また、RLoginというツールにてコマンドの説明をされていましたが、自分はAWSコンソールにて実施しました。
RLoginは便利だと思いますが、とりあえずAWSを少しでも理解したかったのでコンソールでの実施にしました。
下記画像のようにDoneと出力されたので、いざマインクラフト側でパブリックIPを指定し、接続してみます。
問題なく接続でき、移動や作業台の作成などできましたが、5分ほど経過すると突然 connection refused となり接続が切れてしまいました。
コンソールのログを確認すると、以下の出力がありました。
Server empty for 60 seconds, pausing
最初は、サーバ自体が使えなくなったのかと思いましたが、こちらの記事を確認したところ、プレイヤーが接続すれば自動で再開することが分かりました。
つまり、このログと接続エラーは直接関係がありませんでした。
異常終了したのかと思い、インスタンスの再起動を行うことにしました。
再起動後は簡単です。以下の起動コマンドを打つだけです。
java -Xmx1536M -Xms1536M -jar server.jar nogui
インスタンスを起動し、上記コマンドを打つだけで大丈夫です。
その後も、サーバがクラッシュすることがあったため、安定稼働を目指すのであればインスタンスタイプをスケールアップするといいのかなと感じました。
動画でも触れていましたが、EC2では後からスケールアップが簡単にできるので、低めのスペックからスタートする方がよいとのことです。初めから高いスペックで構築してしまうと、無駄な出費につながるそうです。
後片付け
インスタンスの削除はEC2のダッシュボードで行い、ステータスが"終了済み"となったことを確認し、Elastic IPのダッシュボードに遷移します。
今回、Elastic IPでIPを割り当てていたので、こちらの解放を忘れずに行う必要があります。
こちらは、関連付けたインスタンスが起動中は無料となりますが、停止している状態や、どこにも紐づいていない場合、料金が発生してしまうそうです。
そのため、自分の場合、インスタンスを削除したあとに、Elastic IPの解放を忘れてしまうと。。
AIにうっかり忘れない方法を聞くと、
Elastic IPを「月極駐車場」だと覚えてみてください
と言われました.
たしかに、車を廃車にしても、駐車場を解約しないと毎月料金が引き落とされますもんね
改めて、マインクラフト側でサーバに接続できないことを確認し、後片付けは完了といたします

まとめ
初めてAWSのコンソールでいろいろと触る機会で、いろいろな設定ができてとてもスケーラビリティがあると感じました。
こんな簡単にサーバを構築することができるので、あまり知識がない人でもできてしまうと思います。簡単にできるからこそ、知識がないと無駄な出費やミスをしてしまうかなとも感じました。
SAAに向けて、AWS公式が提供している、AWS QuestやUdemyなどでハンズオン形式で学ぶのも継続しつつ、このように楽しみながら構築、デプロイ等やっていきたいです。
