마인크래프트는 전 세계적으로 인기 있는 샌드박스 게임입니다. 친구들과 함께 즐기고 싶다면 개인 서버를 구축하는 것이 좋은 방법이죠. 이번 포스트에서는 AWS Lightsail을 이용해 마인크래프트 Paper 서버를 구축하는 방법을 상세히 알아보겠습니다.
1. AWS Lightsail이란?
AWS Lightsail은 Amazon Web Services(AWS)에서 제공하는 가상 프라이빗 서버(VPS) 서비스입니다. 간단한 웹 애플리케이션과 웹사이트를 호스팅하는 데 적합한 서비스로, 사용하기 쉽고 비용도 저렴합니다.
2. Paper 서버란?
Paper는 Spigot을 기반으로 한 고성능 마인크래프트 서버 소프트웨어입니다. Spigot보다 더 나은 성능과 최적화를 제공하며, 다양한 플러그인을 지원합니다.
3. AWS Lightsail 인스턴스 생성하기
- AWS 계정에 로그인합니다.
- Lightsail 대시보드로 이동합니다.
- "인스턴스 생성" 버튼을 클릭합니다.
- 인스턴스 위치를 선택합니다. 한국에서 사용한다면 "서울" 리전을 선택하는 것이 좋습니다.
- 플랫폼으로 "Linux/Unix"를 선택합니다.
- 블루프린트에서 "OS 전용"을 선택한 후 "Ubuntu 20.04 LTS"를 선택합니다.
- 인스턴스 플랜을 선택합니다. 마인크래프트 서버의 경우 최소 2GB RAM이 필요하므로, 그 이상의 플랜을 선택하세요.
- 인스턴스 이름을 지정하고 "인스턴스 생성" 버튼을 클릭합니다.
4. 방화벽 설정하기
마인크래프트 서버가 외부에서 접속할 수 있도록 방화벽을 설정해야 합니다.
- 생성된 인스턴스의 관리 페이지로 이동합니다.
- "네트워킹" 탭을 클릭합니다.
- "방화벽" 섹션에서 "규칙 추가"를 클릭합니다.
- 애플리케이션을 "사용자 지정"으로 선택합니다.
- 프로토콜을 "TCP"로 선택합니다.
- 포트 범위에 "25565"를 입력합니다. (마인크래프트 기본 포트)
- "생성" 버튼을 클릭합니다.
5. 인스턴스에 접속하기
- Lightsail 대시보드에서 생성한 인스턴스를 선택합니다.
- "연결" 탭을 클릭합니다.
- "SSH 사용" 버튼을 클릭하여 브라우저 기반 SSH 클라이언트를 실행합니다.
6. Java 설치하기
Paper 서버를 실행하기 위해서는 Java가 필요합니다. 다음 명령어를 통해 Java를 설치합니다.
sudo apt update
sudo apt install openjdk-17-jre-headless -y
설치가 완료되면 다음 명령어로 Java 버전을 확인합니다.
java -version
7. Paper 서버 다운로드 및 설정
- 서버 파일을 저장할 디렉토리를 생성하고 이동합니다.
mkdir minecraft_server
cd minecraft_server
- Paper 서버 파일을 다운로드합니다. (최신 버전 링크는 Paper 공식 웹사이트에서 확인하세요)
wget https://papermc.io/api/v2/projects/paper/versions/1.19.4/builds/550/downloads/paper-1.19.4-550.jar
- 서버 실행 스크립트를 생성합니다.
nano start.sh
- 다음 내용을 스크립트에 입력합니다.
#!/bin/bash
java -Xms1G -Xmx2G -jar paper-1.19.4-550.jar nogui
- 스크립트를 저장하고 나갑니다. (Ctrl+X, Y, Enter)
- 스크립트에 실행 권한을 부여합니다.
chmod +x start.sh
8. 서버 최초 실행 및 설정
- 다음 명령어로 서버를 처음 실행합니다.
./start.sh
- 서버가 생성되고 곧바로 종료됩니다. 이는 정상적인 과정입니다.
- eula.txt 파일을 열어 라이선스 동의를 진행합니다.
nano eula.txt
eula=false
를eula=true
로 변경하고 저장합니다.- 서버를 다시 실행합니다.
./start.sh
9. 서버 설정 최적화
서버의 성능을 최적화하기 위해 server.properties 파일을 수정할 수 있습니다.
nano server.properties
주요 설정 항목은 다음과 같습니다:
view-distance
: 서버의 렌더링 거리를 설정합니다. 기본값은 10이지만, 서버 성능에 따라 조정할 수 있습니다.max-players
: 동시 접속 가능한 최대 플레이어 수를 설정합니다.spawn-protection
: 스폰 지역 보호 범위를 설정합니다.difficulty
: 게임의 난이도를 설정합니다. (peaceful, easy, normal, hard)
10. 플러그인 설치하기
Paper 서버의 장점 중 하나는 다양한 플러그인을 지원한다는 것입니다. 플러그인을 설치하는 방법은 다음과 같습니다:
- 서버를 중지합니다. (콘솔에서
stop
명령어 입력) plugins
폴더로 이동합니다.- 원하는 플러그인의 .jar 파일을 다운로드하여 이 폴더에 넣습니다.
- 서버를 다시 시작합니다.
11. 백그라운드에서 서버 실행하기
서버를 SSH 세션이 종료되어도 계속 실행되게 하려면 screen
명령어를 사용할 수 있습니다.
- screen을 설치합니다.
sudo apt install screen -y
- 새로운 screen 세션을 생성하고 서버를 실행합니다.
screen -S minecraft
./start.sh
- 서버가 실행되면 Ctrl+A, D를 눌러 세션을 분리합니다.
- 나중에 다시 접속하려면 다음 명령어를 사용합니다.
screen -r minecraft
12. 서버 백업하기
정기적인 백업은 매우 중요합니다. 다음은 간단한 백업 스크립트 예시입니다.
#!/bin/bash
BACKUP_DIR="/home/ubuntu/backups"
SERVER_DIR="/home/ubuntu/minecraft_server"
BACKUP_NAME="minecraft_backup_$(date +%Y%m%d_%H%M%S).tar.gz"
# 백업 디렉토리 생성
mkdir -p $BACKUP_DIR
# 서버 중지
screen -S minecraft -X stuff "say 서버가 5초 후 백업을 위해 중지됩니다.\n"
sleep 5
screen -S minecraft -X stuff "stop\n"
sleep 10
# 백업 생성
tar -czf $BACKUP_DIR/$BACKUP_NAME -C $SERVER_DIR .
# 서버 재시작
screen -S minecraft -X stuff "./start.sh\n"
echo "백업 완료: $BACKUP_NAME"
이 스크립트를 cron job으로 등록하여 정기적으로 실행할 수 있습니다.
결론
이제 AWS Lightsail을 이용하여 마인크래프트 Paper 서버를 성공적으로 구축하셨습니다! 이 서버를 통해 친구들과 함께 마인크래프트의 무한한 세계를 탐험하고 창조할 수 있습니다. 서버 관리에는 주의가 필요하며, 정기적인 백업과 업데이트를 잊지 마세요.
추가로, 서버의 성능을 모니터링하고 필요에 따라 Lightsail 인스턴스의 사양을 업그레이드할 수 있습니다. 또한, 도메인을 연결하여 더 쉽게 접속할 수 있도록 만들 수도 있습니다.
마인크래프트 서버 운영을 통해 Linux 시스템 관리, 네트워크 설정, 그리고 게임 서버 최적화에 대해 많이 배울 수 있을 것입니다. 즐거운 마인크래프트 서버 운영되시기 바랍니다!