ããã«ã¡ã¯ããµãã¿ã ã§ãã
ãããŸã§ãLinuxã®äœ¿ãæ¹ã«æ £ããããã«ãJavaçãšçµ±åçã§ã¯ãã¹ãã¬ã€ãå¯èœãªãµãŒããŒãšããŠãSpigotããã玹ä»ããŠããŸããã
ãšããããSpigotã®å Žåã§ããšãâ BuildTools.jarãããŠã³ããŒãã®äžãâ¡Linuxäžã§ãã«ãããŠãµãŒããŒãã¡ã€ã«ãå
¥æãšããã¹ããããèžãå¿
èŠããããããé£æ床ãé«ããšæããããã®ã§ã¯ãªãã§ããããã
ïŒSpigotã®ãµãŒããŒãã¡ã€ã«å
¥ææ¹æ³ã«ã€ããŠã¯ãäžèšãªã³ã¯å
ã«ãŠã説æãããŠããŸãïŒ

ç§ããAWSã䜿ãå§ããé ã¯ãEC2ã€ã³ã¹ã¿ã³ã¹ãç¡ææ ã«ããŠãããããããã«ããæåŸãŸã§çµããããäœãæªãã®ãåå ãç¹å®ã«ããã®ã«çµæ§ãªæéããããŠããŸããŸããïŒããããã®ãã«ããæ°åããããŸãããïŒã
ããã§ãä»åã¯BuildTools.jarã®ããŠã³ããŒãããã«ããäžèŠã§ãSpigotãšäºææ§ãããããã ãµãŒããŒãã¡ã€ã«ãããŠã³ããŒãããŠSpigot.jarãšçœ®ãæããã°OKããããåäœã軜ãïŒãšããïŒãããŸã§ã®æ¹æ³ã«æ¯ã¹ããšïŒå€¢ã®ãããªãµãŒããŒãã¡ã€ã«ã§ãããPaperMCãã«ã€ããŠã玹ä»ãããããšæããŸãã
- AWSã䜿ã£ãŠãã€ã¯ã©ãµãŒããŒã®ç«ã¡äžãã
- ãã€ã³ã¯ã©ããã®è»œéãµãŒããŒå°å ¥ãPaperMCã
- ãã³ãã³ããŒã¹ã€ããçãã€ã¯ã©ã§ãã«ããµãŒããŒã«æ¥ç¶ããæ¹æ³
- Linuxèµ·åæã«ãã€ã¯ã©ãµãŒããŒãèªåç«ã¡äžããsystemdã
- ãã€ã¯ã©ãµãŒããŒãããã¯ã°ã©ãŠã³ãã§èªåèµ·åãsystemd & screenã â ãããã
- EC2ã€ã³ã¹ã¿ã³ã¹ã®ç°¡åèµ·åãAWS CLIã
- EC2ã€ã³ã¹ã¿ã³ã¹ã®ç°¡ååæ¢
- LINEããEC2ã€ã³ã¹ã¿ã³ã¹ãéå§ã»åæ¢ãããŠã¿ãããAPI Gateway + Lambdaã â ãããã
- ãã€ã¯ã©ãµãŒããŒã®ã¯ãŒã«ãããŒã¿ãå®æããã¯ã¢ãããAmazon S3ã â ãããã
- ãã€ã¯ã©ãµãŒããŒã®èªååæ¢ãPythonã â ãããã
- ãMinecraftããã¯ã€ããªã¹ãæ©èœã掻çšããããèããé²æ¢ã
PaperMCãšã¯
ãPaperMCããšã¯ãSpigotMCãšåæ§ã«ãã©ã°ã€ã³ãå°å ¥ããããšã§ç°¡åã«æ©èœã®æ¡åŒµãã§ãããã€ã¯ã©ã®ãã«ããã¬ã€çšãµãŒããŒãœããã®äžçš®ã§ãSpigotMCãšã®äºææ§ãæã¡ãªããSpigotMCã®æ¹åãšæé©åã«ãããé«ãããã©ãŒãã³ã¹ãåŸããããããã°SpigotMCã®äžäœäºæã®äœçœ®ã¥ãã«ãããŸãã
PaperMCã®å ¬åŒãµã€ããèŠãŠã¿ãŠãããIt’s stupidly fastïŒã°ãã¿ããã«æ©ãïŒããšããããã®é«éæ§ãã¢ããŒã«ããŠããããšããããããŸãã
PaperMCã®ããŠã³ããŒã
ããã§ã¯ãæ©éã«å°å ¥ãããŠãããŸãããã
ãŸãã¯å ¬åŒãµã€ãå ã®èŠåºããDownloading Paperãå ã«ãããªã³ã¯ãwebsite’s downloads pageããã¯ãªãã¯ããããšã以äžã®ããŒãžã«ç§»ããŸãã®ã§ãåºæ¬çã«ã¯äžçªäžã«ãããµãŒããŒãã¡ã€ã«ãããŠã³ããŒãããŸããããèµ€æ å ãã¯ãªãã¯ããã°ããŠã³ããŒããå§ãŸããŸãã

ããŠã³ããŒãã¯ãæã¡ã®PCçã«ä¿åãããŸããããã¡ã€ã«åããpaper-1.19.2-176.jarãã®ããã«ãªã£ãŠããŸãã®ã§ãLinuxäžã§ã®èšå®å€æŽããªãã¹ãæããããããpaper.jarããšã§ãå€æŽãããŠãããŸãããã
ãã®ãããã«ã€ããŠã¯ç§ã®éå»èšäºããã€ã¯ã©ãµãŒããŒãããã¯ã°ã©ãŠã³ãã§èªåèµ·åãsystemd & screenãããã芧ããã ãããšãªããšãªããã¡ã€ã«åå€æŽã®å¿ èŠãåãã£ãŠé ããããšæããŸãã
ãµãŒããŒãã¡ã€ã«ã®çœ®ãæã
ãã¡ã€ã«ã®ããŠã³ããŒããšãã¡ã€ã«åã®å€æŽãçµãããŸãããããµãŒããŒãã¡ã€ã«ã®çœ®ãæããããŸãã
ãªããããã§ã¯ãSpigotãµãŒããŒããã®çœ®ãæããåæã«èšèŒãããŠããŸããããã©ãµãŒããŒãFabric/ForgeãµãŒããŒããã®ç§»è¡ã«ã€ããŠã¯å ¬åŒãµã€ãã«èšèŒãããŠããæé ãã芧ãã ããã
æ¢åãµãŒããŒã®åæ¢
æ¢åã®ãµãŒããŒãèµ·åãããŠããå Žåã«ã¯ããµãŒããŒã®åæ¢ãããŸãããã
screenæ©èœãå©çšããŠããæ¹ã¯ããŸãLinuxäžã§ä»¥äžã®ã³ãã³ããå ¥åããŠãµãŒããŒèµ·åçšã«ç«ã¡äžããŠããã»ãã·ã§ã³ãã¢ã¿ããããŠãã ããã
screen -r
ã»ãã·ã§ã³ãã¢ã¿ãããããããã€ã¯ã©ãµãŒããŒã®ã³ã³ãœãŒã«ç»é¢ã§ãstopããšå ¥åããEnterããŒãæŒäžã§æ¢åãµãŒããŒã¯åæ¢ãããŸãã
ããã¯ã¢ããã®ååŸ
ãµãŒããŒã眮ãæããåã«ãå¿ ãããã¯ã¢ãããåãããã«ããŸãããïŒããŒã¿ãå£ããŠãåé¡ãªããšããæ¹ã¯ç¡èŠããŠå€§äžå€«ã§ããïŒã
ã¿ãŒããã«ãœããïŒRLoginã®å©çšãæ³å®ïŒã§Linuxã«SSHæ¥ç¶ãããã¯ã€ãã¯ã¡ãã¥ãŒå ã«ããããã¡ã€ã«è»¢éããã¯ãªãã¯ã

æ°ãããŠã£ã³ããŠãç«ã¡äžãããŸãã®ã§ãããã¯ã¢ããããããã©ã«ããå³ã¯ãªãã¯ããŠãã ããã
ãããšãããã¡ã€ã«ã®ããŠã³ããŒãããšããã®ã衚瀺ãããŠããŸãã®ã§ãã¯ãªãã¯ããŠããŠã³ããŒãã
ãªããä¿åå Žæã¯ãŠã£ã³ããŠã®å·ŠåŽã«è¡šç€ºãããŠãããã©ã«ãå ãšãªããŸãã®ã§ãã泚æãã ããã
ããŒã¿ã®ããã¯ã¢ããæ¹æ³ã«ã€ããŠã¯ãäžèšã®ãããªããŒã«ã«ã¹ãã¬ãŒãžã«ä¿åãããæ¹æ³ä»¥å€ã«ããAWSã®æ©èœãå©çšããæ¹æ³ã解説ããŠããŸãã®ã§ãããããŠãåèãã ãããã
paper.jarã®ã¢ããããŒã
ããã¯ã¢ãããååŸã§ããŸãããããpaper.jarããLinuxã«ã¢ããããŒãããŸãããã
å ã»ã©ãšåæ§ã«RLoginã®ãã¡ã€ã«è»¢éæ©èœãå©çšããŠããspigot.jarããä¿åãããŠãããã©ã«ããšåãå Žæã«ã¢ããããŒãããŸãã
ãpaper.jarãã®ã¢ããããŒãåŸã¯ãspigot.jarãã¯å©çšããªããªããŸãã®ã§ãåé€ãããŠãããŸãããã
systemdã®èšå®å€æŽ
Unitãã¡ã€ã«ã«ãŠãspigot.jarããåç §ããŠããç®æããããŸãã®ã§ããpaper.jarããåç §ããããã«å€æŽãããã ãã§ãèšå®ã¯å®äºããŸãã以äžã§ã¯å šæãèšèŒããŠããŸãããå ·äœçã«ã¯ãExecStartããä¿®æ£ããŸãã
[Unit]
#ãã®Unitãã¡ã€ã«ã®èª¬æãDescriptionã«ãŠèšèŒã
Description=launch minecraft server
After=network-online.target
[Service]
#å®è¡ãããŠãŒã¶ãŒãæå®ïŒæå®ããªããšã«ãŒããŠãŒã¶ãŒãšããŠå®è¡ããããšã«ãªããŸãïŒ
User=ec2-user
#äœæ¥ãããã£ã¬ã¯ããªãæå®ïŒãããããªããšãEULAã«åæããŠãã ããããšç¡éã«ãšã©ãŒãåºãŸãïŒ
WorkingDirectory=/home/ec2-user/minecraft
#ãã®ãµãŒãã¹ãšããŠå®è¡ããã³ãã³ãã®å
容
ExecStart=/bin/screen -D -m -S minecraft /bin/java -Xms2G -Xmx2G -jar /home/ec2-user/minecraft/paper.jar nogui
#ãµãŒãã¹åæ¢æã®åäœïŒalways=åžžã«åèµ·åãon-failure=èµ·å倱ææã®ã¿åèµ·åïŒ
Restart=always
#èµ·åã«æéããããããšã«ãã倱æãé¿ãããããã¿ã€ã ã¢ãŠãå€ãèšå®
TimeoutStartSec=180
[Install]
WantedBy=multi-user.target
èµ·å確èª
ãããŸã§åºæ¥ãããsystemdãåèªã¿èŸŒã¿ããå®è¡ããŠã¿ãŸãããã
sudo systemctl daemon-reload
sudo systemctl restart minecraft.service
äžèšã®ã³ãã³ãã®åŸã«ãã¹ããŒã¿ã¹ã確èªããŠãActiveãç¶æ ã«ãªã£ãŠããã°OKã§ãã
systemctl status minecraft.service
ãããã¯ãscreenã³ãã³ãã§ã»ãã·ã§ã³ãã¢ã¿ããããŠç¢ºèªããŠã¿ãŠãããã§ããã
screen -r
ãŸãšã
以äžã§ããã€ã¯ã©ã®ãµãŒããŒãSpigotMCããPaperMCã«å€æŽããããšãã§ããŸããã
äœæã§ã¯ãããŸããããµãŒããŒã®èµ·åã¯PaperMCã®ã»ããSpigotMCãããæ©ãã§ããããã¬ã€äžãããã©ã°ãå°ãªããªã£ãããã«æããŸãïŒããããããã³ãã³ããŒã¹ã€ããã¯Wi-Fiæ¥ç¶ã§ãäžå®å®ãªããšãå€ãã®ã§ã«ã¯ã«ã¯ããã¡ã§ããããïŒã
ããããããä»åŸãã€ã¯ã©ãã¢ããããŒãããããšãã«ãæ¹ããŠãBuildTools.jarããããŠã³ããŒãããŠãã«ããããå¿ èŠããªãã®ãäœæ°ã«äžçªãããããã§ãã
ãã®èšäºãã芧ããã ããçããã®åèã«ãªããŸããã幞ãã§ãã
ããã§ã¯ãŸãã
ã³ã¡ã³ã