개발하다 정리해보자

마인크래프트 서버 구축하기 - 오라클 클라우드 본문

마인크래프트 서버 구축하기 - 오라클 클라우드

hijae 2022. 3. 5. 22:18

자바, 베드락 모두 접속이 가능한 서버를 만들어보자

마인크래프트를 하고 싶어 휴대폰에도, 컴퓨터에도 설치를 하게 되었습니다.

혼자 하는 것도 재미있지만 친구들과 하고 싶다는 생각에 방법을 알아보게 되었습니다.

처음에는 하루종일 켜두려고 한 목적에 맞게 전력 소모량이 적은 라즈베리파이4를 서버로 사용하는 방법을 생각했습니다.

라즈베리파이OS에서 최신의 자바를 사용하기 쉽지 않아 어려웠지만 방법을 찾아 서버로 사용해보았는데 그러나 속도가 아주 느려 제대로 플레이를 할 수 없기에 다른 방법을 찾게 되었습니다.

클라우드 컴퓨트?

찾아보다보니 VM 클라우드 컴퓨트 서비스를 사용하는 방법이 있었습니다. 대표적으로 아마존의 AWS, 구글의 GCP등을 사용하는 방법이었는데 이중 오라클 Ampere A1 컴퓨팅을 사용하게 되었습니다.

오라클 클라우드는 최대 4개의 Arm기반 OCPU, 최대 24GB의 메모리를 항상 무료로 사용이 가능합니다. 또한 클라우드 컴퓨트 서비스 특성상 설정할 때 외에는 컴퓨터가 켜져있을 필요가 없어 더욱 좋았습니다.

오라클 클라우드 메인화면

- 오라클 클라우드

 

Oracle Cloud Infrastructure

 

cloud.oracle.com

우선 위의 링크로 접속하여 회원가입을 진행하였습니다. 저의 경우에는 캘리포니아 산호세의 서버를 사용하기로 하였는데 어느 곳이나 약간의 대기는 해야한다고 합니다.

그다음 VM 인스턴스 생성을 들어가면 됩니다.

이름을 원하는대로 설정하고 이미지 및 구성에서 편집을 눌러 이미지를 우분투로 변경, Shape를 Ampere로 선택한 다음 코어수와 메모리를 지정해주었습니다. 10명 이하라면 2코어 8GB 정도로도 충분합니다.

VM 인스턴스 이미지 및 구성

그러고 아래로 내려가 SSH 키 추가에서 '전용 키 저장'을 눌러 저장해둡니다.

나중에 ssh를 통해 접속하기 위해 반드시 필요합니다.

VM 인스턴스 SSH 키 추가

다 만들었으면 컴퓨트, 인스턴스, 인트턴스 세부정보에 들어가 기본 VNIC 아래의 서브넷을 선택합니다.

subnet 설정으로 이동

기본 Security List로 이동해 수신 규칙 추가를 누릅니다.

수신 규칙 추가 버튼

IP프로토콜을 TCP로 선택하여 추가하고 다시 UDP로 선택하여 반복해 추가하면 됩니다.

수신 규칙 추가 메뉴

VM 접속하기

이제 VM에 접속해 봅시다. SSH를 통해 접속하면 됩니다.

$ ssh -i ~/다운받은key파일 ubuntu@인스턴스ip

ssh 접속

위와같이 key파일을 선택하고 접속합니다. 터미널 대신 putty를 사용하여도 됩니다.

$ sudo apt install openjdk-17-jdk

1.18 서버를 돌리기 위해서는 java 17버전이 필요합니다. 위의 명령어를 사용하여 설치합니다.

다음으로 마인크래프트 서버를 다운로드 합니다.

- Papermc 다운로드 링크

위의 링크에 접속해 #숫자에 마우스를 올려 '링크 주소 복사'를 선택합니다.

그다음 wget을 이용해 다운받습니다.

$ wget https://papermc.io/api/v2/projects/paper/versions/1.18.2/builds/225/downloads/paper-1.18.2-225.jar

위와 같이 wget 뒤에 링크 주소를 입력하면 됩니다.

마인크래프트 서버 설치

$ java paper-1.18.2-225.jar

위에서 다운 받은 파일을 실행합니다. java 뒤에 파일 이름을 입력하면 됩니다. java paper까지 입력후 탭을 누르면 자동완성됩니다.

실행 후에는 eula 동의가 필요하다는 내용의 나오고 자동으로 종료됩니다.

$ nano eula.txt

위와 같이 입력해 에디터로 열고 eula=false라고 되어있는 부분을 eula=true로 변경합니다.

나가기 위해서 컨트롤+C, Y를 차례대로 입력합니다.

다음으로 방화벽을 열어야합니다.

$ sudo firewall-cmd --permanent --zone=public --add-port=25565/tcp
$ sudo firewall-cmd --permanent --zone=public --add-port=25565/udp
$ sudo firewall-cmd --permanent --zone=public --add-port=19123/tcp
$ sudo firewall-cmd --permanent --zone=public --add-port=19123/udp
$ sudo firewall-cmd --reload

차례대로 입력하여 방화벽을 수정합니다.

$ java paper-1.18.2-225.jar

이제 위에서 사용한 명령어를 사용해 실행하면 자바 서버가 열렸습니다.

마인크래프트에서 VM인스턴스의 IP로 접속하면 접속이 가능합니다.

베드락에서 접속하기

> stop
$ cd plugins

stop명령어로 서버를 먼저 종료합니다.

그다음 plugins 폴더로 이동합니다.

$ wget https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/spigot/target/Geyser-Spigot.jar
$ cd ..

그다음 위의 명령을 차례대로 입력하여 GeyserMC 플러그인을 다운로드하고 플러그인 폴더를 빠져나옵니다.

$ java paper-1.18.2-225.jar

다시 위에서 사용한 명령어를 통해 서버를 실행하면 베드락에서도 접속할 수 있게 됩니다.

 

 

창을 닫은 상태로도 유지하고 싶다면 screen등의 소프트웨어를 사용하면 됩니다.

 

읽어보기

- https://blogs.oracle.com/developers/post/how-to-set-up-and-run-a-really-powerful-free-minecraft-server-in-the-cloud

- https://geysermc.org/