AWS EC2 프리 티어로 마인크래프트 서버 만들기 - 02: Java 설치와 서버 실행

2026년 업데이트 안내
이 글은 이전 글에서 만든 AWS EC2 인스턴스에 접속해서 Minecraft Java Edition 서버를 설치하고 실행하는 방법을 설명합니다. 기존 글은 Amazon Linux 2와 Java 8 기준이었지만, 현재는 Amazon Linux 2023 + Amazon Corretto 기준으로 내용을 보완했습니다.

  • 최신 Minecraft 서버는 Java 8로 실행되지 않을 수 있으므로, 새 서버는 최신 Corretto 버전을 사용하는 것이 좋습니다.
  • 이 글에서는 Amazon Linux 2023 기준으로 Amazon Corretto 25 headless 설치 예시를 사용합니다.
  • micro급 인스턴스는 메모리가 부족할 수 있으므로, 테스트용으로만 사용하는 것을 추천합니다.
  • 서버를 오래 켜두면 EC2, EBS, public IPv4, 데이터 전송 비용이 발생할 수 있습니다.
  • 실습 전 AWS Budgets 또는 Billing 알림을 설정해 두는 것이 안전합니다.
  • 기존 월드를 업로드하거나 운영 중인 서버를 수정하기 전에는 반드시 백업해 주세요.

지난 글에서는 AWS EC2 인스턴스를 만들고, 마인크래프트 서버 접속에 필요한 보안 그룹과 25565 포트를 설정했습니다.

아직 EC2 인스턴스를 만들지 않았다면 아래 글을 먼저 참고해 주세요.

이번 글에서는 만들어 둔 EC2 인스턴스에 접속해서 Java를 설치하고, Minecraft 서버 파일을 다운로드한 뒤, 실제로 서버를 실행해 보겠습니다.

비용 주의:
EC2 인스턴스가 실행 중이면 비용이 발생할 수 있습니다. Free Tier 또는 크레딧을 사용 중이어도 public IPv4 주소, EBS 스토리지, 데이터 전송량 등은 별도 비용 항목이 될 수 있으니 Billing 화면을 꼭 확인하세요.

1. EC2 인스턴스 접속하기

먼저 AWS 콘솔에서 EC2 인스턴스에 접속합니다.

접속 방법은 크게 세 가지가 있습니다.

접속 방법 설명 추천 상황
EC2 Instance Connect AWS 콘솔 브라우저에서 바로 접속 초보자에게 가장 간단함
Windows Terminal / PowerShell .pem 키 파일로 SSH 접속 명령어 사용에 익숙한 경우
PuTTY .ppk 키 파일로 접속 기존 PuTTY 사용자

가장 쉬운 방법은 AWS 콘솔에서 인스턴스를 선택한 뒤 Connect 버튼을 누르고 EC2 Instance Connect를 사용하는 것입니다.

Amazon Linux 2023 또는 Amazon Linux 2 인스턴스의 기본 사용자 이름은 보통 아래와 같습니다.

ec2-user

PuTTY를 사용하는 경우에는 AWS 공식 PuTTY 접속 가이드도 참고할 수 있습니다.

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html


2. 서버 패키지 업데이트하기

EC2 서버에 접속했다면 먼저 패키지를 업데이트합니다.

Amazon Linux 2023에서는 아래 명령어를 사용합니다.

sudo yum update -y

업데이트가 끝나면 Java와 필요한 도구를 설치합니다.


3. Java 설치하기

기존 글에서는 Java 8을 설치했지만, 최신 Minecraft 서버에서는 Java 8이 맞지 않을 수 있습니다.

새로 만드는 서버라면 Amazon Linux 2023에서 사용할 수 있는 Amazon Corretto를 설치하는 것이 좋습니다.

이 글에서는 서버용으로 GUI 관련 의존성이 없는 Amazon Corretto 25 headless를 설치합니다.

sudo yum install -y java-25-amazon-corretto-headless wget screen

설치 후 Java 버전을 확인합니다.

java -version

정상적으로 설치되었다면 Corretto 버전 정보가 표시됩니다.

Java 버전 오류가 날 때:
서버 실행 시 “Unsupported class file major version” 또는 “Java version is too old” 같은 메시지가 나오면 Java 버전이 맞지 않는 것입니다. 이 경우 현재 Minecraft 서버 버전이 요구하는 Java 버전을 확인하고 Corretto 21, 25 등으로 맞춰 주세요.

4. Minecraft 서버 전용 사용자 만들기

서버를 root 사용자로 계속 실행하는 것은 추천하지 않습니다.

간단한 실습에서는 ec2-user로 실행해도 되지만, 조금 더 깔끔하게 관리하려면 Minecraft 서버 전용 사용자를 만드는 것이 좋습니다.

sudo useradd -r -m -d /opt/minecraft -s /bin/bash minecraft
sudo mkdir -p /opt/minecraft/server
sudo chown -R minecraft:minecraft /opt/minecraft

이제 Minecraft 서버 파일은 아래 폴더에 설치합니다.

/opt/minecraft/server

5. Minecraft 서버 파일 다운로드

Minecraft Java Edition 공식 서버 파일은 아래 페이지에서 받을 수 있습니다.

https://www.minecraft.net/ko-kr/download/server/

페이지에 접속한 뒤 server.jar 다운로드 링크를 복사합니다.


복사한 링크를 아래 명령어의 서버파일_다운로드_URL 부분에 넣어 다운로드합니다.

cd /opt/minecraft/server

sudo -u minecraft wget -O server.jar "서버파일_다운로드_URL"

예시는 아래와 같은 형태입니다.

sudo -u minecraft wget -O server.jar "https://piston-data.mojang.com/v1/objects/파일ID/server.jar"
링크 주의:
Minecraft 서버 파일 링크는 버전마다 달라집니다. 예전 글에 있던 1.20.4 서버 링크를 그대로 사용하지 말고, 공식 다운로드 페이지에서 현재 만들고 싶은 버전의 server.jar 링크를 새로 복사해 주세요.

6. 서버 실행 스크립트 만들기

서버를 매번 긴 명령어로 실행하기 번거롭기 때문에 실행 스크립트를 만들어 두겠습니다.

micro급 인스턴스는 메모리가 적기 때문에 아래 예시는 테스트용으로 최대 768MB만 사용하도록 설정했습니다.

sudo tee /opt/minecraft/server/startup.sh > /dev/null <<'EOF'
#!/bin/bash
cd /opt/minecraft/server
exec java -Xms512M -Xmx768M -jar server.jar nogui
EOF

sudo chown minecraft:minecraft /opt/minecraft/server/startup.sh
sudo chmod 755 /opt/minecraft/server/startup.sh

만약 2GB 이상 메모리가 있는 인스턴스를 사용한다면 아래처럼 메모리를 늘릴 수 있습니다.

exec java -Xms1G -Xmx2G -jar server.jar nogui

하지만 micro급 인스턴스에서 무리하게 -Xmx1024M 이상을 잡으면 운영체제 메모리까지 부족해져 서버가 꺼질 수 있습니다.


7. 서버 첫 실행 및 EULA 동의

이제 서버를 한 번 실행합니다.

sudo -u minecraft /opt/minecraft/server/startup.sh

처음 실행하면 서버가 바로 켜지지 않고, eula.txt 파일을 수정하라는 메시지가 나옵니다.

Minecraft 서버를 사용하려면 Minecraft EULA를 읽고 동의해야 합니다.

동의하는 경우에만 아래 명령어로 값을 변경합니다.

sudo sed -i 's/eula=false/eula=true/' /opt/minecraft/server/eula.txt

직접 파일을 열어서 수정하고 싶다면 아래 명령어를 사용해도 됩니다.

sudo vi /opt/minecraft/server/eula.txt

파일 안에서 아래 값을 찾습니다.

eula=false

동의하는 경우 아래처럼 바꿉니다.

eula=true

8. server.properties 기본 설정 조정

micro급 인스턴스에서 최신 Minecraft 서버를 그대로 실행하면 메모리와 CPU가 부족할 수 있습니다.

테스트용 서버라면 view-distance, simulation-distance, max-players를 낮게 잡는 것이 좋습니다.

sudo sed -i 's/^view-distance=.*/view-distance=6/' /opt/minecraft/server/server.properties
sudo sed -i 's/^simulation-distance=.*/simulation-distance=4/' /opt/minecraft/server/server.properties
sudo sed -i 's/^max-players=.*/max-players=5/' /opt/minecraft/server/server.properties

설정을 직접 수정하고 싶다면 아래 명령어로 열 수 있습니다.

sudo vi /opt/minecraft/server/server.properties
성능 참고:
micro급 EC2는 친구 1~2명과 짧게 테스트하는 용도에 가깝습니다. 여러 명이 오래 플레이할 서버라면 더 큰 인스턴스가 필요할 수 있고, 이 경우 비용이 발생할 수 있습니다.

9. 서버 다시 실행하기

EULA 설정을 마쳤다면 서버를 다시 실행합니다.

sudo -u minecraft /opt/minecraft/server/startup.sh

로그 마지막 부분에 아래와 비슷한 메시지가 나오면 서버가 정상적으로 실행된 것입니다.

Done

이 상태에서는 SSH 접속 창을 닫으면 서버도 같이 종료될 수 있습니다.

계속 켜둘 서버라면 아래의 screen 또는 systemd 방식을 사용하는 것이 좋습니다.


10. Minecraft에서 서버 접속하기

서버의 IP 주소는 AWS EC2 인스턴스 상세 화면에서 확인할 수 있습니다.

보통 아래 항목을 확인합니다.

  • Public IPv4 address
  • Public IPv4 DNS

Minecraft Java Edition을 실행한 뒤 아래 순서로 접속합니다.

  1. 멀티플레이 선택
  2. 서버 추가 또는 직접 연결 선택
  3. EC2 public IPv4 주소 입력
  4. 서버 접속

기본 포트를 사용한다면 주소만 입력해도 됩니다.

EC2_PUBLIC_IP

포트를 명시하려면 아래처럼 입력할 수 있습니다.

EC2_PUBLIC_IP:25565


접속이 안 될 때 먼저 확인할 것:
  • EC2 보안 그룹에서 TCP 25565 포트가 열려 있는지 확인
  • 서버 로그에 Done이 표시되었는지 확인
  • Minecraft 클라이언트 버전과 서버 버전이 같은지 확인
  • EC2 인스턴스를 Stop/Start했다면 public IP가 바뀌었는지 확인

11. screen으로 서버 계속 실행하기

간단하게 서버를 계속 실행하고 싶다면 screen을 사용할 수 있습니다.

screen을 실행합니다.

screen -S minecraft

screen 세션 안에서 서버를 실행합니다.

cd /opt/minecraft/server
sudo -u minecraft ./startup.sh

서버가 실행된 상태에서 SSH 창을 닫지 말고, 아래 키 조합으로 screen에서 빠져나옵니다.

Ctrl + A 누른 뒤 D

그러면 SSH 접속을 종료해도 screen 안에서 Minecraft 서버가 계속 실행됩니다.

다시 접속하려면 아래 명령어를 사용합니다.

screen -ls
screen -r minecraft

screen 세션이 여러 개라면 화면에 표시되는 세션 이름이나 PID를 보고 접속하면 됩니다.

screen -r [PID]

12. systemd 서비스로 서버 자동 실행하기

screen은 간단하지만, 서버를 조금 더 안정적으로 관리하려면 systemd 서비스로 등록하는 것이 좋습니다.

아래 명령어로 Minecraft 서버용 systemd 파일을 만듭니다.

sudo tee /etc/systemd/system/minecraft.service > /dev/null <<'EOF'
[Unit]
Description=Minecraft Java Edition Server
After=network.target

[Service]
User=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms512M -Xmx768M -jar server.jar nogui
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

2GB 이상 메모리 인스턴스라면 아래 부분을 상황에 맞게 수정할 수 있습니다.

ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar server.jar nogui

서비스 파일을 만든 뒤 systemd를 다시 로드합니다.

sudo systemctl daemon-reload

Minecraft 서비스를 시작합니다.

sudo systemctl start minecraft

상태를 확인합니다.

sudo systemctl status minecraft

서버 로그를 실시간으로 보려면 아래 명령어를 사용합니다.

sudo journalctl -u minecraft -f

인스턴스가 재부팅되어도 Minecraft 서버가 자동으로 켜지게 하려면 아래 명령어를 실행합니다.

sudo systemctl enable minecraft

서비스를 중지하려면 아래 명령어를 사용합니다.

sudo systemctl stop minecraft

13. 서버 명령어 입력하기

screen으로 실행 중이라면 screen 세션에 다시 접속해서 Minecraft 서버 콘솔에 명령어를 입력할 수 있습니다.

예를 들어 서버를 정상 종료하려면 아래 명령어를 입력합니다.

stop

systemd로 실행 중이라면 직접 서버 콘솔 입력은 어렵지만, 로그 확인과 서비스 시작/중지는 쉽게 할 수 있습니다.

작업 명령어
서버 시작 sudo systemctl start minecraft
서버 중지 sudo systemctl stop minecraft
서버 재시작 sudo systemctl restart minecraft
상태 확인 sudo systemctl status minecraft
로그 보기 sudo journalctl -u minecraft -f

14. 서버 백업하기

마인크래프트 서버에서 가장 중요한 파일은 월드 데이터입니다.

기본 월드 폴더는 보통 아래 위치에 생성됩니다.

/opt/minecraft/server/world

백업 폴더를 만들고 월드 데이터를 압축해 백업할 수 있습니다.

sudo mkdir -p /opt/minecraft/backups

sudo tar -czf /opt/minecraft/backups/world-$(date +%F-%H%M).tar.gz -C /opt/minecraft/server world

백업 파일 목록은 아래 명령어로 확인합니다.

ls -lh /opt/minecraft/backups
백업 팁:
서버가 실행 중일 때 월드가 계속 저장되고 있으므로, 중요한 백업을 만들 때는 서버를 잠시 중지한 뒤 백업하는 것이 더 안전합니다.

15. 서버 파일 업데이트하기

Minecraft 서버 버전을 업데이트하려면 기존 서버 파일과 월드를 반드시 백업한 뒤 진행해야 합니다.

업데이트 흐름은 아래와 같습니다.

  1. 서버 중지
  2. world 폴더와 server.jar 백업
  3. 공식 Minecraft 서버 다운로드 페이지에서 새 server.jar 링크 복사
  4. 기존 server.jar 교체
  5. 서버 실행 후 로그 확인

systemd를 사용 중이라면 먼저 서버를 중지합니다.

sudo systemctl stop minecraft

기존 서버 파일을 백업합니다.

cd /opt/minecraft/server
sudo cp server.jar server.jar.backup.$(date +%F-%H%M)

새 서버 파일을 다운로드합니다.

sudo -u minecraft wget -O server.jar "새_서버파일_다운로드_URL"

서버를 다시 시작합니다.

sudo systemctl start minecraft
sudo journalctl -u minecraft -f

16. 접속 문제 해결

16-1. 서버 목록에서 연결이 안 되는 경우

아래 항목을 먼저 확인해 주세요.

  • EC2 인스턴스 상태가 running인지 확인
  • Minecraft 서버 로그에 Done이 있는지 확인
  • 보안 그룹에서 TCP 25565 포트가 열려 있는지 확인
  • 클라이언트 Minecraft 버전과 서버 버전이 같은지 확인
  • 인스턴스를 Stop/Start한 뒤 public IP가 바뀌지 않았는지 확인

16-2. Java 오류가 나는 경우

Java 버전이 낮거나 맞지 않는 경우가 많습니다.

현재 Java 버전을 확인합니다.

java -version

필요하다면 Corretto 21 또는 25 같은 다른 버전을 설치하고 alternatives 설정을 확인합니다.

sudo alternatives --config java

16-3. 메모리 부족으로 서버가 꺼지는 경우

micro급 인스턴스는 메모리가 작기 때문에 최신 Minecraft 서버 실행에 부족할 수 있습니다.

먼저 -Xmx 값을 낮춰 테스트해 보세요.

-Xms512M -Xmx768M

그래도 계속 꺼진다면 더 큰 인스턴스가 필요할 수 있습니다.

더 큰 인스턴스는 무료 범위를 벗어날 수 있으므로 비용을 먼저 확인하세요.


16-4. eula.txt 오류가 계속 나는 경우

eula.txt 파일이 다른 위치에 있거나, 값이 제대로 저장되지 않았을 수 있습니다.

아래 명령어로 확인합니다.

cat /opt/minecraft/server/eula.txt

아래 줄이 있어야 합니다.

eula=true

16-5. systemd 서비스가 실패하는 경우

서비스 상태와 로그를 확인합니다.

sudo systemctl status minecraft
sudo journalctl -u minecraft -n 100 --no-pager

자주 확인할 부분은 아래와 같습니다.

  • server.jar 파일이 있는지
  • eula=true로 되어 있는지
  • Java 경로가 맞는지
  • 메모리 설정이 너무 크지 않은지
  • /opt/minecraft/server 폴더 권한이 맞는지

17. 실습 후 서버 중지하기

사용하지 않을 때는 서버를 중지해야 비용을 줄일 수 있습니다.

systemd로 Minecraft 서버만 중지하려면 아래 명령어를 사용합니다.

sudo systemctl stop minecraft

EC2 인스턴스 자체를 중지하려면 AWS 콘솔에서 인스턴스를 선택하고 Instance state → Stop instance를 선택합니다.

더 이상 사용하지 않을 서버라면 월드 백업 후 Terminate instance를 사용할 수 있습니다.

삭제 전 주의:
인스턴스를 Terminate하면 서버 데이터가 삭제될 수 있습니다. 월드 파일이 필요하다면 반드시 먼저 백업해 주세요. 인스턴스 삭제 후에도 EBS 볼륨이나 Elastic IP가 남아 있으면 비용이 발생할 수 있으니 함께 확인해야 합니다.

마무리

이번 글에서는 AWS EC2에 접속해서 Minecraft Java Edition 서버를 설치하고 실행하는 방법을 알아보았습니다.

핵심 순서는 아래와 같습니다.

  1. EC2 인스턴스 접속
  2. 패키지 업데이트
  3. Amazon Corretto Java 설치
  4. Minecraft 서버 전용 사용자와 폴더 생성
  5. 공식 server.jar 다운로드
  6. startup.sh 실행 스크립트 생성
  7. eula.txt 동의 처리
  8. server.properties 기본 설정 조정
  9. 서버 실행 후 Done 확인
  10. Minecraft 클라이언트에서 public IP로 접속
  11. screen 또는 systemd로 서버 계속 실행
  12. 실습 후 서버 중지 또는 종료

AWS EC2로 서버를 만들면 친구들과 외부에서 접속할 수 있는 서버를 쉽게 만들 수 있지만, 비용과 보안도 함께 관리해야 합니다.

서버를 오래 운영할 예정이라면 백업, 비용 알림, 보안 그룹, 메모리 설정을 꼭 확인해 주세요.


업데이트 기록

  • 2026년 5월: Amazon Linux 2023 기준으로 명령어를 업데이트했습니다.
  • 2026년 5월: Java 8 설치 예시를 Amazon Corretto 25 headless 설치 예시로 변경했습니다.
  • 2026년 5월: root 실행 대신 minecraft 전용 사용자로 서버를 실행하는 방법을 추가했습니다.
  • 2026년 5월: micro급 인스턴스의 메모리 부족 가능성과 -Xmx 설정 주의사항을 추가했습니다.
  • 2026년 5월: screen 방식과 systemd 서비스 등록 방식을 함께 정리했습니다.
  • 2026년 5월: server.properties 성능 설정, 백업, 업데이트, 문제 해결 섹션을 추가했습니다.
  • 2026년 5월: 비용, public IPv4, EBS 볼륨, 인스턴스 중지/종료 주의사항을 보강했습니다.
  • 2024년 2월: AWS EC2에서 Minecraft 서버를 설치하고 실행하는 방법을 처음 작성했습니다.