빠른 시작

빠른 시작에서는 gcloud 명령줄 도구를 사용하여 Game Servers에서 Game Servers 렐름, 클러스터, 배포, 구성, 출시를 다루는 방법을 알아봅니다.

시작하기 전에

  1. Google 계정으로 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Cloud Console의 프로젝트 선택기 페이지에서 Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Game Services API가 사용 설정되어 있는지 확인합니다.
  5. Game Services API 사용 설정

셸 선택

이 빠른 시작을 완료하려면 Cloud Shell 또는 로컬 셸을 사용하면 됩니다.

Cloud Shell은 Google Cloud에서 호스팅되는 리소스를 관리하는 데 사용되는 셸 환경입니다. Cloud Shell은 gcloud 명령줄 도구가 사전 설치된 상태로 제공됩니다. gcloud 도구는 Game Servers의 기본 명령줄 인터페이스를 제공합니다.

Cloud Shell

Cloud Shell을 시작하려면 다음 단계를 수행하세요.

  1. Google Cloud Console로 이동합니다.

    Google Cloud Console

  2. Console의 오른쪽 상단에서 Cloud Shell 활성화 버튼을 클릭합니다.

Console 하단의 프레임에서 Cloud Shell 세션이 열립니다. 이 셸을 사용하여 gcloud 명령어를 실행합니다.

로컬 셸

gcloud를 설치하려면 gcloud 명령줄 도구가 포함된 Cloud SDK를 설치합니다.

gcloud 명령줄 도구에 대해 원하는 기본 프로젝트를 설정했는지 확인합니다. 그렇지 않으면 나중에 각 명령어에 대해 명시적으로 --project 플래그를 지정해야 합니다.

gcloud config list project

사용할 수 없는 경우 다음 명령어를 실행하여 기본 프로젝트를 설정하고 project-id를 원하는 프로젝트 ID로 바꾸세요.

gcloud config set project project-id

다음 명령어를 실행하여 Google Cloud SDK의 버전을 확인합니다. Game Servers에는 306.0.0 이상의 SDK 버전이 필요합니다.

gcloud version

설치를 업데이트하려면 다음 명령어를 실행합니다.

gcloud components update

로컬 셸을 선택하는 경우 kubectl을 설치해야 할 수 있습니다.

gcloud components install kubectl

Google Kubernetes Engine 클러스터 만들기

Google Kubernetes Engine 클러스터를 만들려면 다음 안내를 따르세요.

  1. 다음 명령어를 실행하여 us-central1-a 영역에 한 노드가 포함된 비용 최적화 클러스터를 만듭니다.

    gcloud container clusters create gcgs-quickstart \
    --cluster-version=1.15 \
    --tags=game-server \
    --scopes=gke-default \
    --num-nodes=1 \
    --no-enable-autoupgrade \
    --machine-type=e2-standard-2 \
    --zone=us-central1-a
    
  2. 다음 명령어를 실행하여 이전 단계에서 만든 GKE 클러스터에 대해 사용자 인증 정보를 검색합니다.

    gcloud container clusters get-credentials gcgs-quickstart --zone=us-central1-a
    

GKE에 Agones 설치

이 섹션에서는 오픈소스 Agones 게이밍 인프라 플랫폼을 설치합니다. Agones를 설치하려면 다음 안내를 따르세요.

  1. 다음 명령어를 실행하여 agones-system 네임스페이스를 만듭니다.

    kubectl create namespace agones-system
    
  2. 다음 명령어를 실행하여 Agones를 설치합니다.

    kubectl apply -f https://raw.githubusercontent.com/googleforgames/agones/release-1.7.0/install/yaml/install.yaml
    
  3. Kubernetes Pod의 상태를 확인하여 Agones 시스템이 실행 중인지 확인할 수 있습니다.

    kubectl get --namespace agones-system pods
    

    모든 pod는 Running 상태여야 합니다.

    NAME                                 READY   STATUS    RESTARTS   AGE
    agones-allocator-6694dcc89-7r75d     1/1     Running   0          28s
    agones-allocator-6694dcc89-m7ghq     1/1     Running   0          28s
    agones-allocator-6694dcc89-qp6cm     1/1     Running   0          28s
    agones-controller-56c98db844-llzzc   1/1     Running   0          22s
    agones-ping-d9d74c5c6-8kmt6          1/1     Running   0          24s
    agones-ping-d9d74c5c6-xwn4h          1/1     Running   0          24s
    

Game Servers 리소스 만들기

Game Servers 리소스를 만들려면 다음 안내를 따르세요.

  1. GKE 클러스터와 동일한 위치에 렐름을 만듭니다.

    gcloud game servers realms create realm-quickstart --time-zone EST --location us-central1
    
  2. Agones GKE 클러스터를 Game Servers에 등록하고 이전 단계에서 만든 렐름에 연결합니다.

    gcloud game servers clusters create cluster-quickstart \
    --realm=realm-quickstart \
    --gke-cluster locations/us-central1-a/clusters/gcgs-quickstart \
    --namespace=default \
    --location us-central1 \
    --no-dry-run
    
  3. 게임 서버 구성을 모두 저장하는 데 사용할 게임 서버 배포를 만든 후에 게임 서버 클러스터에 배포합니다.

    gcloud game servers deployments create deployment-quickstart
    

    이제 게임 서버 배포가 완료되었으므로 gcloud 도구를 사용하여 여기에 게임 서버 구성을 추가할 수 있습니다.

  4. 다음의 예시 Agones 플릿 사양 매니페스트를 현재 디렉터리의 fleet_configs.yaml이라는 새 파일에 복사합니다.

    - name: fleet-spec-1
      fleetSpec:
        replicas: 2
        template:
          metadata:
            labels:
              foo: bar
          spec:
            ports:
            - name: default
              portPolicy: Dynamic
              containerPort: 7654
            template:
              spec:
                containers:
                - name: simple-udp
                  image: gcr.io/agones-images/udp-server:0.17
    
  5. 게임 서버 구성을 만들려면 다음 명령어를 실행합니다.

    gcloud game servers configs create config-1 --deployment deployment-quickstart --fleet-configs-file fleet_configs.yaml
    
  6. 출시를 업데이트하려면 다음 명령어를 실행합니다.

    gcloud game servers deployments update-rollout deployment-quickstart --default-config config-1 --no-dry-run
    
  7. 기본 네임스페이스에서 한 플릿의 출시를 검증하려면 다음 명령어를 실행합니다.

    kubectl get fleet
    

    다음 그림은 예상 출력을 보여줍니다.

    NAME                                     SCHEDULING   DESIRED   CURRENT   ALLOCATED   READY   AGE
    fleet-deployment-quickstart-config-1   Packed       2         2         0           2       4s
    

    연결을 수락할 준비가 된 간단한 UDP 서버 복제본 두 개가 포함된 플릿이 클러스터에 배포되었는지 출력에서 확인할 수 있습니다.

UDP 서버 연결 테스트

UDP 서버 연결을 테스트하려면 다음 안내를 따르세요.

  1. 클러스터에 연결하는 데 필요한 UDP 포트를 열기 위해 방화벽 규칙을 만듭니다.

    gcloud compute firewall-rules create gcgs-quickstart-firewall \
    --allow udp:7000-8000 \
    --target-tags game-server \
    --description "Firewall to allow game server udp traffic"
    
  2. 다음으로 개별 게임 서버의 IP 주소 및 포트 번호를 받습니다.

    kubectl get gameserver
    

    이 명령어는 다음과 유사한 출력을 반환합니다.

    NAME                                                 STATE   ADDRESS          PORT   NODE                                             AGE
    fleet-deployment-quickstart-config-1-nndvr-5gvch   Ready   IP_address   port_number   gke-gcgs-quickstart-default-pool-db3d2ee8-dlg7   11s
    fleet-deployment-quickstart-config-1-nndvr-vqwpl   Ready   IP_address   port_number   gke-gcgs-quickstart-default-pool-db3d2ee8-dlg7   11s
    
  3. Netcat 명령어를 실행하여 연결을 테스트하세요. Linux에 Netcat을 설치하려면 다음 명령어를 실행합니다.

    sudo apt install netcat
    
  4. 테스트를 시작하려면 다음 명령어를 실행합니다.

    nc -u IP_address port_number
    
  5. 이제 Hello를 입력하면 명령어가 다음과 유사한 출력을 반환합니다.

    Hello
    > ACK: Hello
    

정리

이 빠른 시작에서 사용한 리소스의 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 따르세요.

이 빠른 시작에서 만든 리소스를 보존하지 않으려면 프로젝트를 삭제할 수 있습니다.

  1. Cloud Console에서 리소스 관리 페이지로 이동합니다.

    리소스 관리 페이지로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제 를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 다음 종료를 클릭하여 프로젝트를 삭제합니다.

또는 프로젝트를 유지하려면 다음 단계를 완료하여 이 빠른 시작에서 만든 리소스를 수동으로 삭제하세요.

  1. 방화벽 규칙을 삭제하려면 다음 명령어를 실행합니다.

    gcloud compute firewall-rules delete gcgs-quickstart-firewall
    
  2. 기본 출시를 지우려면 다음 명령어를 실행합니다.

    gcloud game servers deployments update-rollout deployment-quickstart --clear-default-config --no-dry-run
    
  3. 게임 서버 구성을 삭제하려면 다음 명령어를 실행합니다.

    gcloud game servers configs delete config-1 --deployment deployment-quickstart
    
  4. 게임 서버 배포를 삭제하려면 다음 명령어를 실행합니다.

    gcloud game servers deployments delete deployment-quickstart
    
  5. 게임 서버 클러스터를 삭제하려면 다음 명령어를 실행하세요.

    gcloud game servers clusters delete cluster-quickstart --realm=realm-quickstart --no-dry-run --location=global
    
  6. 렐름을 삭제하려면 다음 명령어를 실행합니다.

    gcloud game servers realms delete realm-quickstart
    
  7. Game Services API를 중지하려면 다음 명령어를 실행합니다.

    gcloud services disable gameservices.googleapis.com
    
  8. GKE 클러스터를 삭제하려면 다음 명령어를 실행합니다.

    gcloud container clusters delete gcgs-quickstart --zone=us-central1-a
    

다음 단계

Game Servers 개요에서 Game Servers 개념의 기술적 개요 이해하기

안내 가이드에서 특정 Game Servers 작업을 알아보기

Terraform 배포 샘플을 검토하기