출시판 만들기 또는 업데이트

이 페이지에서는 배포에서 Game Servers 출시의 세부정보를 만들고 업데이트하고 열람하는 방법을 설명합니다. 출시는 게임 서버 구성을 실제 렐름을 대상으로 매핑합니다. 배포를 만들고 구성을 추가한 후 출시하는 방법의 엔드 투 엔드 예시를 보려면 클러스터 확장 동작 구성을 참조하세요.


그림 1. 구성 버전 1.0이 미국 렐름에 출시되고, 버전 1.1이 유럽 및 일본 렐름에 출시되었습니다.

자세한 내용은 Game Servers 개요를 참조하세요.

시작하기 전에

시작하기 전에 Game Servers 개요의 주요 개념을 숙지하는 것이 좋습니다. 또한 다음 태스크를 수행했는지 확인합니다.

  • Game Services API가 사용 설정되어 있는지 확인합니다.
  • Game Services API 사용 설정
  • gcloud CLI가 설치된 셸을 선택하거나 API 클라이언트를 사용합니다.
  • Cloud Shell

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

    1. Google Cloud Console로 이동.

      Google Cloud console

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

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

    로컬 셸

    gcloud CLI 설치

    Google Cloud CLI에 원하는 기본 프로젝트를 설정했는지 확인합니다. 그렇지 않으면 나중에 명령어마다 --project 플래그를 명시적으로 지정해야 합니다.

    gcloud config list project
    

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

    gcloud config set project PROJECT_ID
    

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

    gcloud version
    

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

    gcloud components update
    

    curl / PowerShell

    curl 또는 Windows PowerShell에서 REST API를 사용하려면 다음을 수행합니다.

    1. 서비스 계정 만들기.
    2. 비공개 키를 JSON 파일로 다운로드합니다.
    3. GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 사용자 인증 정보가 포함된 JSON 파일의 경로로 설정합니다. 이 변수는 현재 셸 세션에만 적용되므로 새 세션을 열면 변수를 다시 설정합니다.

    클라이언트 라이브러리

    클라이언트 라이브러리를 사용하여 Google Cloud Game Servers를 프로그래매틱 방식으로 제어할 수 있습니다. 라이브러리 사용 및 인증에 대한 안내는 클라이언트 라이브러리 개요를 참조하세요.

출시 업데이트

출시 업데이트 프로세스는 출시를 만드는 프로세스와 동일합니다. 먼저 Game Servers 구성을 생성했는지 확인합니다. 다른 구성을 사용하여 특정 렐름을 타겟팅하려면 별도의 재정의 구성을 만듭니다.

출시의 기본 구성 업데이트

기본 게임 서버 구성이 모든 렐름에 출시됩니다. 다른 구성을 사용하여 특정 렐름을 타겟팅하려면 특정 렐름의 구성 재정의를 참조하세요.

Console

  1. Google Cloud Console에서 게임 서버 배포 페이지로 이동합니다.

    Game Servers로 이동

  2. 테이블에서 배포를 찾습니다. 마지막 테이블 열에서 줄임표 를 클릭하고 구성 나열을 선택합니다. 이 페이지에서 배포의 활성 및 비활성 구성을 볼 수 있습니다.

  3. 출시 관리를 클릭합니다.

  4. (선택사항) 구성 선택 목록에서 모든 렐름에 적용되는 기본 구성을 선택합니다.

  5. 저장을 클릭합니다.

gcloud

Google Cloud CLI를 사용하여 Game Servers 출시 기본 구성을 업데이트하려면 다음 안내를 따르세요.

  1. 다음 자리표시자 값을 바꾼 후 다음 명령어를 실행합니다.

    • deploymentID는 배포의 고유 식별자입니다.
    • configID는 구성의 고유 식별자입니다.
    gcloud game servers deployments update-rollout deploymentID --default-config configID --dry-run
    

    출력에 targetState가 반환되므로 변경사항을 미리 볼 수 있습니다.

  2. 변경사항을 적용하려면 다음 명령어를 실행합니다.

    gcloud game servers deployments update-rollout deploymentID --default-config configID --no-dry-run
    

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: IAM 설정에 나열된 Google Cloud 프로젝트 ID입니다.
  • DEPLOYMENT_ID: 배포의 사용자 정의 식별자입니다.
  • CONFIG_ID: 구성의 사용자 정의 식별자입니다.

JSON 요청 본문:

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
  "defaultGameServerConfig": "CONFIG_ID"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

출시의 기본 구성 삭제

기본 구성을 삭제하여 모든 Game Servers 클러스터에서 이 배포의 플릿 구성을 삭제합니다.

Console

  1. Google Cloud Console에서 게임 서버 배포 페이지로 이동합니다.

    Game Servers로 이동

  2. 테이블에서 배포를 찾습니다. 마지막 테이블 열에서 줄임표 를 클릭하고 구성 나열을 선택합니다. 이 페이지에서 배포의 활성 및 비활성 구성을 볼 수 있습니다.

  3. 출시 관리를 클릭합니다.

  4. 구성 선택 목록에서 (기본 구성 없음)을 선택합니다.

  5. 저장을 클릭합니다.

gcloud

Google Cloud CLI를 사용하여 Game Servers 출시 기본 구성을 삭제하려면 다음 안내를 따르세요.

  1. 다음 자리표시자 값을 바꾼 후 다음 명령어를 실행합니다.

    • deploymentID는 배포의 고유 식별자입니다.
    gcloud game servers deployments update-rollout deploymentID --clear-default-config --dry-run
    

    출력에 targetState가 반환되므로 변경사항을 미리 볼 수 있습니다.

  2. 변경사항을 적용하려면 다음 명령어를 실행합니다.

    gcloud game servers deployments update-rollout deploymentID --clear-default-config --no-dry-run
    

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: IAM 설정에 나열된 Google Cloud 프로젝트 ID입니다.
  • DEPLOYMENT_ID: 배포의 사용자 정의 식별자입니다.

JSON 요청 본문:

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
  "defaultGameServerConfig": ""
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

특정 렐름의 구성 재정의

다른 구성을 사용하여 특정 렐름을 타겟팅하려면 별도의 재정의 구성을 만든 다음 이 구성(기본 구성이 아님)을 수신할 하나 이상의 렐름을 선택합니다.

Console

  1. Google Cloud Console에서 게임 서버 배포 페이지로 이동합니다.

    Game Servers로 이동

  2. 테이블에서 배포를 찾습니다. 마지막 테이블 열에서 줄임표 를 클릭하고 구성 나열을 선택합니다. 이 페이지에서 배포의 활성 및 비활성 구성을 볼 수 있습니다.

  3. 출시 관리를 클릭합니다.

  4. (선택사항) 구성 선택 목록에서 재정의 구성과 일치하지 않는 모든 렐름에 적용되는 기본 구성을 선택합니다.

  5. 구성 재정의에서 하나 이상의 재정의 구성과 해당 구성을 연결할 렐름을 지정할 수 있습니다.

    1. 구성 목록에서 재정의 구성을 선택하고 렐름 목록에서 해당 구성을 연결할 렐름을 선택합니다.
    2. 화살표 버튼을 사용하여 목록에서 재정의 구성 우선순위 순서를 변경합니다.
    3. 추가를 클릭합니다.
  6. 저장을 클릭합니다.

gcloud

Google Cloud CLI를 사용하여 특정 렐름에 구성 재정의를 적용하려면 다음 안내를 따르세요.

  1. 다음 코드를 파일에 복사하고 다음 자리표시자 값을 바꿉니다.

    • realmIDprojects/<projectID>/locations/<region>/realms/<realmID2> 같은, 렐름의 정규화된 식별자입니다.
    • configID는 구성의 고유 식별자입니다.
    - realmsSelector:
        realms:
            - realmID
      configVersion: configID
    
  2. 다음 자리표시자 값을 바꾼 후 다음 명령어를 실행합니다.

    • deploymentID는 배포의 고유 식별자입니다.
    • configOverrideFile은 재정의 구성이 있는 파일의 경로입니다.
    gcloud game servers deployments update-rollout deploymentID --config-overrides-file configOverrideFile --dry-run
    

    출력에 targetState가 반환되므로 변경사항을 미리 볼 수 있습니다.

  3. 변경사항을 적용하려면 다음 명령어를 실행합니다.

    gcloud game servers deployments update-rollout deploymentID --config-overrides-file configOverrideFile  --no-dry-run
    

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: IAM 설정에 나열된 Google Cloud 프로젝트 ID입니다.
  • LOCATION: 렐름의 리전입니다(또는 global).
  • DEPLOYMENT_ID: 배포의 사용자 정의 식별자입니다.
  • REALM_ID: 렐름의 사용자 정의 식별자입니다.
  • OVERRIDE_CONFIG_ID: 재정의 구성의 사용자 정의 식별자입니다.

JSON 요청 본문:

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
  "gameServerConfigOverrides": [
  {
    "realmsSelector": {
      "realms": [
        "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID"
      ]
    },
    "configVersion": "OVERRIDE_CONFIG_ID"
  }
  ]
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

구성 재정의 삭제

재정의 구성을 삭제하여 대상 렐름에서 이 배포의 그룹 구성을 삭제합니다.

Console

  1. Google Cloud Console에서 게임 서버 배포 페이지로 이동합니다.

    Game Servers로 이동

  2. 테이블에서 배포를 찾습니다. 마지막 테이블 열에서 줄임표 를 클릭하고 구성 나열을 선택합니다. 이 페이지에서 배포의 활성 및 비활성 구성을 볼 수 있습니다.

  3. 출시 관리를 클릭합니다.

  4. 구성 재정의에서 삭제하려는 재정의 구성 옆에 있는 휴지통 아이콘을 클릭합니다.

  5. 저장을 클릭합니다.

gcloud

Google Cloud CLI를 사용하여 Game Servers 출시 구성 재정의를 지우려면 다음 안내를 따르세요.

  1. 다음 자리표시자 값을 바꾼 후 다음 명령어를 실행합니다.

    • deploymentID는 배포의 고유 식별자입니다.
    gcloud game servers deployments update-rollout deploymentID --clear-config-overrides --dry-run
    

    출력에 targetState가 반환되므로 변경사항을 미리 볼 수 있습니다.

  2. 변경사항을 적용하려면 다음 명령어를 실행합니다.

    gcloud game servers deployments update-rollout deploymentID --clear-config-overrides --no-dry-run
    

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: IAM 설정에 나열된 Google Cloud 프로젝트 ID입니다.
  • DEPLOYMENT_ID: 배포의 사용자 정의 식별자입니다.

JSON 요청 본문:

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
  "gameServerConfigOverrides": []
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

출시 세부정보 보기

Console

  1. Google Cloud Console에서 게임 서버 배포 페이지로 이동합니다.

    Game Servers로 이동

  2. 테이블에서 배포를 찾습니다. 마지막 테이블 열에서 줄임표 를 클릭하고 구성 나열을 선택합니다. 이 페이지에서 배포의 활성 및 비활성 구성을 볼 수 있습니다.

  3. 출시 관리를 클릭합니다.

gcloud

Google Cloud CLI를 사용하여 사용 중인 구성과 같은 출시에 대한 세부정보를 볼 수 있습니다.

출시 세부정보를 보려면 다음 자리표시자 값을 바꾼 후 다음 명령어를 실행합니다.

  • deploymentID는 상위 배포의 고유 식별자입니다.
gcloud game servers deployments describe-rollout deploymentID

출력에 출시 세부정보가 표시됩니다.

Google Cloud CLI를 사용하여 출시가 적용된 후 게임 서버 클러스터의 상태를 볼 수도 있습니다.

gcloud game servers deployments fetch-state deploymentID

각 게임 서버 클러스터에서 출시에 적용된 변경사항이 출력에 표시됩니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: IAM 설정에 나열된 Google Cloud 프로젝트 ID입니다.
  • DEPLOYMENT_ID: 배포의 사용자 정의 식별자입니다.

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/rollout",
  "createTime": CREATE_TIME,
  "updateTime": UPDATE_TIME,
  "defaultGameServerConfig": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/CONFIG_ID",
  "gameServerConfigOverrides": [
    {
      "realmsSelector": {
        "realms": [
          "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID"
        ]
      },
      "configVersion": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/OVERRIDE_CONFIG_ID"
    }
  ],
  "etag": "cN31kxa6fWHtaZWUnUZ7LfamUN7Ggz13DWS58Sc5jIQ"
}

출시 문제 해결

이 섹션에서는 Game Servers가 게임 서버 클러스터를 업데이트할 수 없는 이유를 설명합니다. Game Servers 또는 Game Server 클러스터의 잘못된 구성이 가장 일반적인 원인입니다. 발생할 수 있는 잠재적인 문제를 진단하기 위해 다음 체크리스트를 살펴볼 수 있습니다.

  • Agones 클러스터에 대한 다음 기본 요건이 충족되었는지 확인합니다.
    1. 클러스터가 실행 중이고 Agones가 설치되어 있는지 확인합니다. agones-controller pod가 Running 상태인지 확인하려면 다음 명령어를 실행합니다.
      kubectl get pods -n agones-system -l agones.dev/role=controller
      
    2. 게임 서버 네임스페이스에 Agones 컨트롤러의 필수 역할 기반 액세스 제어(RBAC) 권한이 있는지 확인합니다.
    3. 설치된 Agones 버전이 Game Servers에서 지원되는지 확인합니다.
  • Agones 문제 해결 가이드를 확인하세요.
  • Game Servers 배포 리소스가 올바르게 구성되었는지 확인합니다.
    1. 재정의 구성을 사용하는 경우 대상 클러스터와 함께 배포가 렐름에 적용되도록 합니다.
    2. 제품군 사양이 올바르게 구성되어 있는지 확인합니다. 제품군 사양을 확인하려면 게임 서버를 직접 가져오세요.
    3. 예약된 변경이 진행되지 않았다면 일정이 올바르게 구성되었는지 확인합니다. 일정의 시간대는 렐름의 시간대를 따릅니다.

다음 단계

구성 삭제 방법 알아보기