다음을 통해 공유


Azure의 기본 게임 서버 호스팅

이 참조 아키텍처는 Windows 또는 Linux에서 게임 서버를 호스트하는 기본 Azure 백엔드를 설정하는 단계를 Minecraft 서버를 예로 사용하여 자세히 설명합니다.

Azure 가상 컴퓨터에서 실행 중인 Minecraft 서버

아키텍처 다이어그램

Azure 가상 컴퓨터에서 단일 게임 서버 호스팅

관련 서비스

단계별 설명

완료해야 할 단계를 요약하면 다음과 같습니다.

  1. 리소스 그룹 설정합니다.
  2. Azure 가상 컴퓨터를 설정하고 영구 디스크 및 열려 있는 포트를 연결합니다.
  3. 유지 관리 포트를 통해 원격으로 새 Azure 가상 컴퓨터에 액세스합니다.
  4. 운영 체제 방화벽을 설정합니다.
  5. 영구 데이터 디스크를 초기화하고 포맷합니다.
  6. 게임 서버 종속성을 설치합니다.
  7. 게임 서버 자체를 설치합니다.
  8. 게임 서버를 구성합니다.
  9. 게임 서버를 실행하고 포트가 열려 있는지 다시 확인합니다.

리소스 그룹 설정

리소스 그룹은 Azure 리소스의 논리적 컬렉션입니다. 모든 리소스는 리소스 그룹에서 배포되고 관리됩니다. 다음을 수행하여 리소스 그룹을 만듭니다.

  1. Azure 구독이 없는 경우 시작하기 전에 무료 계정을 만듭니다.
  2. Azure Portal에 로그인합니다.
  3. 왼쪽 탐색 창에서 리소스 그룹을 클릭합니다. 그런 다음 추가를 클릭합니다.
  4. 리소스 그룹에 사용할 고유한 이름을 입력합니다. 시스템은 현재 선택한 Azure 구독에서 해당 이름을 사용할 수 있는지 즉시 확인합니다.
  5. 구독에서 리소스 그룹을 만들려는 Azure 구독 이름을 클릭합니다.
  6. 리소스 그룹의 지리적 위치를 선택합니다.
  7. 만들기를 클릭합니다.

Azure 가상 컴퓨터 설정, 영구 디스크 및 열려 있는 포트 연결

  1. 리소스를 만들고 게임 서버가 실행될 운영 체제가 있는 가상 컴퓨터를 선택합니다. Azure Portal에서 다음을 검색합니다. 일반적으로 가장 많이 사용되는 운영 체제입니다.

    Windows Linux
    Windows Server 2016 Datacenter 또는 Windows Server 2016 VM Ubuntu Server 18.04 LTS 또는 Ubuntu Server 18.04 VM
  2. Azure 구독, 리소스 그룹, 가상 컴퓨터 이름 및 지역을 선택합니다.

  3. I/O 및 리소스 요구를 충족하는 가상 컴퓨터 유형, 디스크 유형, 디스크 크기를 선택합니다. Minecraft 서버의 경우 vCPU(가상 CPU) 2개 및 RAM 4GB가 탑재된 표준 B2s 같은 소규모 Azure 가상 컴퓨터면 사용자 10명 미만에 충분합니다.

  4. 나중에 원격으로 액세스할 수 있도록 컴퓨터 관리자 사용자 이름과 암호를 설정합니다.

  5. 공용 인바운드 포트가 나중에 가상 컴퓨터에 관리자로 연결할 수 있도록 허용합니다(유지 관리 포트). 나중에 게임 서버의 특정 포트를 사용하도록 설정합니다.

    Windows Linux
    RDP(원격 데스크톱 프로토콜) 포트: TCP/3389
    선택적으로 SSH 포트 추가: TCP/22
    SSH 포트: TCP/22
  6. 디스크 섹션으로 전환하고 빈 새 데이터 디스크 만들어 Azure 가상 컴퓨터에 연결을 선택하여 게임 서버 실행 파일 및 생성된 데이터 파일을 저장합니다. 원본 유형이 없음(빈 디스크) 입니다.

    Azure 가상 컴퓨터에는 운영 체제 디스크 1개와 단기 저장용 임시 디스크 1개가 있지만, Azure 가상 컴퓨터가 중지되는 즉시 저장된 정보는 손실됩니다. 영구 디스크를 사용하면 서버를 실행하는 Azure 가상 컴퓨터가 중지되더라도 이후 데이터가 계속 유지됩니다.

  7. 네트워킹 섹션으로 전환하여 게임 서버가 플레이어 요청을 수락하고 공용 IP를 생성 하는 데 필요한 포트를 사용하도록 설정합니다.

    포트를 열려면 가상 네트워크, 서브넷 및 NSG(네트워크 보안 그룹)을 활용해야 합니다.

    가상 네트워크와 서브넷은 기본적으로 만들어지며, Minecraft 서버의 경우 아무 것도 손댈 필요가 없습니다. 네트워크 보안 그룹을 만들려면 라디오 단추를 선택하여 고급 NIC 네트워크 보안 그룹을 사용하도록 설정하고, 새 NSG(네트워크 보안 그룹)을 구성하고 바로 옆에 있는 "새로 만들기" 링크를 클릭한 다음 관련 인바운드 규칙을 추가합니다.

    Minecraft의 경우 포트가 하나만 필요하며 Minecraft 버전(Java Edition, Bedrock Edition)에 따라 번호 및 프로토콜이 다릅니다. 값의 소스는 server.properties 파일이고, 형식은 여기에서 설명합니다. "인바운드 규칙 추가" 링크를 클릭한 후 다음 값을 사용합니다.

    Minecraft Java Edition Minecraft Bedrock Edition
    소스 임의 임의
    원본 포트 범위 * *
    대상 임의 임의
    대상 포트 범위 25565 19132
    프로토콜 TCP UDP
    작업 허용 허용
    우선 순위 100 100
    이름 MinecraftJava_Port MinecraftBedrock_Port

    공용 IP를 만들려면 다음 단계를 따릅니다. 이 설정 바로 옆에 있는 "새로 만들기" 링크를 클릭하고 정적 할당으로 구성합니다.

  8. Azure 가상 컴퓨터를 검토하고 만듭니다. 배포를 완료하는 데 몇 분 정도 걸립니다.

유지 관리 포트를 통해 원격으로 새 Azure 가상 컴퓨터에 액세스

Azure 가상 컴퓨터에 연결하려면 공용 IP 또는 DNS 이름이 필요합니다. 다음 단계를 따라 값을 찾습니다.

  1. 만든 리소스 그룹에 액세스합니다.
  2. 만든 가상 컴퓨터를 선택합니다.
  3. 공용 IP 주소 또는 DNS 이름 필드를 확인합니다. DNS를 설정하려면 DNS 이름 아래의 "구성" 링크를 클릭하고 DNS 이름 레이블 아래에 이름을 지정한 다음 저장합니다.

다음 자습서에 따라 Azure 가상 컴퓨터에 원격으로 액세스합니다.

원격 데스크톱 프로토콜(TCP/3389) SSH(TCP/22)
원격 데스크톱 사용 방법 보안 셸 프로토콜

Azure 가상 컴퓨터에 연결되면 아래의 나머지 단계를 진행할 수 있습니다.

운영 체제 방화벽 설정

가상 컴퓨터는 유지 관리 및 게임 서버 특정 포트에 대한 요청을 수락하도록 이미 구성되어 있지만 운영 체제 방화벽도 구성해야 합니다. 다음 자습서에 따라 게임 서버에서 플레이어 요청을 수락하는 데 필요한 포트를 엽니다.

Windows Linux
Windows Server 2016에서 인바운드 포트 규칙 만들기 Ubuntu 복잡하지 않은 방화벽

예를 들어 Minecraft 경우 명령은 다음과 같습니다.
- sudo ufw allow 25565/tcp(Minecraft Java Edition)
- sudo ufw allow 19132/udp(Minecraft Bedrock Edition)

Minecraft 서버의 경우 기본 포트가 게임 버전에 따라 다음과 같이 달라집니다. Minecraft Java Edition은 TCP/25565를 사용하고 Minecraft Bedrock Edition은 UDP/19132를 사용합니다.

영구 데이터 디스크 초기화 및 포맷

Windows Linux
디스크 관리(diskmgmt.msc)를 사용

디스크 관리를 열려면 시작 단추를 마우스 오른쪽 단추로 클릭하고 디스크 관리를 선택합니다.

디스크 2가 할당되지 않은 것이며 이 영구 디스크를 초기화하고 포맷해야 합니다.
디스크 초기화를 보여 주는 디스크 관리 도구
Linux VM에 연결하여 새 디스크 탑재

여기에는 다음 단계가 포함됩니다.
1. 디스크 검색
2. 파티션 분할
3. 여기에 파일 시스템 작성
4. 디렉터리에 탑재
5. 다시 부팅 후 자동 탑재 설정

게임 서버 종속성 설치

Minecraft 서버의 경우 종속성은 다음과 같습니다.

Minecraft 서버 버전 Windows Linux
Minecraft Java Edition Java 8 64비트 버전 Ubuntu에 Java 8 설치
Minecraft Bedrock Edition Visual Studio용 Microsoft Visual C++ 재배포 가능 패키지 해당 없음

게임 서버 자체를 설치

  1. 방금 포맷한 영구 디스크에 폴더를 만듭니다.

  2. 여기에 게임 서버를 다운로드하여 설치합니다. Minecraft 서버의 경우 다운로드 링크는 다음과 같습니다.

    Minecraft Java Edition Minecraft Bedrock Edition
    다운로드 링크 다운로드 링크

SSH를 통해 Azure 가상 컴퓨터에 액세스하는 경우:

  • 비 대화형 네트워크 다운로더를 사용하는 방법을 알아보려면 Wget 명령 설명서를 참조하세요.
  • sudo apt-get install unzip을 실행하여 unzip을 설치한 다음 sudo unzip THEZIPFILE을 실행하면 Minecraft Bedrock Edition 서버를 압축 해제할 수 있습니다.

게임 서버 구성

Minecraft Java Edition 서버의 경우 먼저 eula.txt 파일 매개 변수를 변경(eula=true)하여 EULA를 수락합니다. SSH를 통해 Azure 가상 컴퓨터에 액세스하는 경우 Nano 편집기 설명서를 확인하여 SSH를 통해 파일을 편집합니다.

공식 Minecraft wiki에서 다음 자습서를 따라 두 Minecraft 서버 버전 모두에 대해 Minecraft 서버를 구성합니다.

게임 서버를 실행하고 포트가 열려 있는지 다시 확인

Minecraft Java Edition 서버를 실행하려면 명령줄(Windows) 또는 터미널(Linux)에서 다음을 사용 합니다.

java -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -jar server.jar nogui

그래픽 사용자 인터페이스를 사용하여 서버를 시작하려는 경우 "nogui" 부분을 생략할 수 있습니다. 편의를 위해 배치 파일(Windows) 또는 스크립트(Linux)를 만들 수 있습니다.

Minecraft Bedrock Edition 서버를 실행하려면 다음을 수행합니다.

  • Windows의 경우 bedrock_server.exe실행 파일을 두 번 클릭하면 됩니다.
  • Linux의 경우 서버가 설치된 디렉터리에서 LD_LIBRARY_PATH=. ./bedrock_server를 사용합니다. 서버를 루트로 실행할 필요는 없습니다.

요약하면, 서버가 실행되면 게임 서버에 필요한 포트가 열려 있는지 다시 확인합니다. 이 포트가 수신 대기 상태로 표시되기 전에 게임 서버를 실행해야 한다는 점을 기억하세요.

확인 위치 Windows Linux
Azure 가상 컴퓨터 내부에서 명령줄에서 netstat -an | find "LISTENING"을 실행하고 포트가 수신 대기로 표시되는지 확인합니다. 터미널에서 sudo netstat -ntlp | grep LISTEN을 실행합니다.
Azure 가상 컴퓨터 외부에서 1. 다음 단계를 수행하여 텔넷을 사용하도록 설정합니다. 시작, 제어판, 프로그램을 차례로 클릭한 다음 Windows 기능을 켜거나 끕니다. 그런 다음 아래로 스크롤하여 텔넷 클라이언트를 선택하고 확인을 클릭합니다.
2. 명령줄에서 telnet host port를 실행하고 연결이 수락됨으로 표시되는지 확인합니다.
telnet host port를 실행하고 연결이 수락됨으로 표시되는지 확인

보안 고려 사항

공용 인바운드 포트가 인터넷에 노출되므로, Azure Portal 고급 컨트롤을 사용하여 유지 관리 인바운드 트래픽을 알려진 IP 주소로 제한해야 합니다. 즉, 개발자만 Azure 가상 컴퓨터에 원격으로 액세스할 수 있습니다.

추가 리소스 및 샘플

Azure Marketplace Minecraft 서버 제품을 사용하여 Minecraft 서버 배포

가격

Azure 구독이 없는 경우 무료 계정을 만들어 12개월 무료 서비스를 시작합니다. 이러한 서비스의 제한을 초과하지 않는 한 Azure 무료 계정에서 무료로 제공하는 서비스에 대해서는 요금이 부과되지 않습니다. Azure Portal을 통해 또는 사용량 파일을 통해 사용량을 확인하는 방법을 알아보세요.

이러한 참조 아키텍처를 실행하는 동안 사용되는 Azure 서비스의 비용은 사용자가 부담하며, 전체 비용은 분석 파이프라인을 통해 실행되는 이벤트 수에 따라 달라집니다. 참조 아키텍처에 사용된 각 서비스에 대한 가격 웹 페이지를 참조하세요.

Azure 가격 계산기를 사용하여 사용하려는 Azure 서비스에 대한 비용을 구성하고 예측할 수도 있습니다.