bolt배포

배포와 그 수명 주기에 대해 알아보세요 - 개념과 모범 사례를 통해 더 깊이 이해할 수 있습니다.

🗺️ 오케스트레이션

클라우드 네이티브 엣지 컴퓨팅 접근 방식으로 용량 수요를 충족하기 위해 몇 초 내에 새 서버를 시작하세요. 우리는 서버를 애완동물이 아닌 가축으로 취급합니다arrow-up-right - 각 인스턴스를 수동으로 복구하기보다 결함 있는 인스턴스를 완전히 교체합니다.

circle-info

선택한 오케스트레이션 방식은 당신의 데브옵스 비용, 서버 비용 및 확장성에 영향을 미칩니다.

circle-check

모든 장단점을 완전히 이해하려면 다양한 오케스트레이션 방법을 비교해 보겠습니다.

매치 기반

최고의 비용 효율성과 함께 가장 쉬운 통합을 제공하는 현대 스튜디오의 골든 스탠다드.

👍 장점

  • 최고의 비용 효율성 - 플레이어 수요에 맞춰 실시간으로 확장합니다.

  • 지역 기반이 없는 호스팅으로 인해 데브옵스 비용이 가장 낮습니다. Edgegap은 작업의 99%를 자동화합니다.

  • Edgegap의 퍼블릭 클라우드 인프라에 615개 이상의 사이트가 있어 가장 낮은 핑을 제공합니다.

  • 예상치 못한 트래픽 급증 시 가장 빠른 확장(버스트 기능)을 제공합니다.

  • 최고 수준의 보안 및 플레이어 치트 방지(서버 권한)를 제공합니다.

  • 예상치 못한 서버 충돌이 플레이어에게 미치는 영향이 최소화되어 단일 매치에만 영향을 줍니다.

👎 단점

  • 새로운 오케스트레이션 정신 모델을 채택하려면 초기 학습 노력이 필요합니다.

  • 24시간보다 오래 실행되는 서버는 자동으로 종료됩니다.

🧩 적합한 대상

  • 지연에 민감한 게임 - 네트코드 최적화로 높은 핑을 극복할 수 없을 때:

    • 퍼스트 퍼슨 슈터, 격투 게임, VR 및 XR(가상 및 확장 현실) 등

  • 설계상 매치 지속 시간에 상한이 있는 게임,

    • 배틀 로얄, PvPvE, 협동 슈터, MOBA, 스포츠 게임, ARPG 및 던전 크롤러 등

🔎 발견성

circle-info

Edgegap은 각 지역의 플레이어 활동에 따라 615개 이상의 서버 위치를 자동으로 확장/축소합니다. 원활하게 성공을 준비하세요 - 60분 안에 1,400만 동시 사용자로 확장arrow-up-right.

지역 대기(Regional Standby)

전통적인 모델로 사용자 생성 콘텐츠와 소셜 MMO 게임을 갖춘 영구적인 월드에 적합합니다.

👍 장점

  • 익숙하고 이해하기 쉬운, 오랜 경험을 가진 베테랑들을 위한 구식 접근법입니다.

  • 최고 수준의 보안 및 플레이어 치트 방지(서버 권한)를 제공합니다.

  • 월별 약정을 기반으로 비용을 예측하기 쉽습니다.

👎 단점

  • 호스팅 비용이 더 높습니다 - 각 지역은 하나 이상의 유휴 대기 서버(버스트 용량)를 필요로 합니다.

  • 데브옵스 비용이 더 높습니다 - 확장, 운영 및 유지보수가 지역별로 중복됩니다.

  • 플레이어 기반이 작은 지역은 먼 서버에 접속해야 하므로 높은 핑을 경험합니다.

🧩 적합한 대상

  • 플레이어가 오프라인일 때도 서버에 사용자 생성 콘텐츠가 저장되는 영구 세계.

    • MMO, 기지 건설이나 오브젝트 배치가 있는 샌드박스, 익스트랙션 슈터 등

  • 지연에 관대한 게임 - 서버 권한 기반의 실시간 물리 계산이 필요하지 않을 때:

    • 모바일 게임, 협동 게임, TCG/CCG, 턴제 전략 등

  • 비동기 멀티플레이어, 서버 충돌이 플레이어 경험에 미치는 영향이 최소인 경우:

    • 유령과 경쟁, 적의 기지를 약탈, 타이머 기반 건설/농사 게임 등

  • 서버 준비에 몇 분이 걸리는 초기화 과정이 많은 애플리케이션.

🔎 발견성

circle-info

참조 관리형 클러스터Edgegap에서 마이크로서비스 및 백엔드 서비스를 자체 호스팅하는 방법 에 대해.

피어 투 피어

개발 노력을 전용 서버에서 로 전환하세요 비경쟁 게임을 위한 릴레이 네트코드로.

관련 주제: 리슨 서버, 플레이어 호스트 권한, NAT 펀치스루.

👍 장점

  • 호스팅 비용이 가장 낮으며 NAT 펀치스루를 해결하기 위해 릴레이 서버만 필요합니다.

  • 데브옵스 비용이 가장 낮음 - 클라이언트 빌드와 배포 채널만 유지 관리하면 됩니다.

  • 예상치 못한 서버 충돌이 플레이어에게 미치는 영향이 최소화되어 단일 매치에만 영향을 줍니다.

  • 백엔드 개발 없이 구현하기 쉽고 빠르게 프로토타입을 만들 수 있습니다.

👎 단점

  • 동시성 프로그래밍 기술을 요구하는 피어 투 피어 네트코드 개발 노력이 증가합니다.

  • 가장 나쁜 핑과 불리한 네트워크 조건(예: 모바일 인터넷)에 가장 민감합니다.

  • 보안이 가장 약해 중간자 공격 및 세션 탈취에 취약합니다.

  • 호스트가 떠날 때 세션이 끊길 위험이 있으며, 이를 방지하려면 맞춤형 호스트 마이그레이션을 구현해야 합니다.

🧩 적합한 대상

  • 협동 및 캐주얼 게임 - 치트가 재미를 해치거나 게임을 망치지 않을 때,

    • 어린이용 게임, 탐험 게임, 어드벤처 등

🔎 발견성

circle-check

📍 서버 배치

어떤 오케스트레이션 방식을 선택하든, 플레이어 그룹에 적합한 서버 위치를 선택하는 것은 최적의 핑과 플레이어 경험을 보장하는 데 중요합니다. 서버 배치에 대한 다양한 전략과 그것이 플레이어에게 미치는 영향을 알아보세요.

circle-info

서버 배치 전략은 플레이어 경험, 유지율 및 게임 리뷰에 영향을 미칩니다.

circle-check
circle-info

참조 배포 로 전환하세요 실시간으로 서버 배치를 분석하세요대규모로.

서버 점수

서버 점수 전략은 Edgegap의 특허받은 방법론을 사용하여 각 매치별로 서버 배치를 최적화합니다. 비침습적 텔레메트리를 수행하여 각 플레이어의 네트워크가 서버 위치와 얼마나 가까운지 근사하고 최적의 성능을 제공하는 서버를 선택합니다:

  • 응답성 - 모든 플레이어에 대해 평균적으로 가장 낮은 핑을 제공합니다,

  • 공정성 - 모든 플레이어에게 균형 잡힌 공정한 핑을 제공합니다.

circle-check

응답성 없는 배치 - 서버가 멀어 모든 플레이어의 핑이 높음:

불공정한 배치 - 핑이 고르지 않아 한 플레이어가 불리한 상황:

좋은 배치 예시 - 모든 플레이어에게 응답성 좋고 공정한 핑:

circle-info

이 전략은 서로 멀리 떨어진 플레이어 그룹(예: 북미 vs 유럽, 또는 서해안 vs 동해안)을 호스팅할 때 특히 효과적입니다 사전 구성된 로비에서 자주 발생하는 경우입니다.

지오로케이션

대안으로, 자동 텔레메트리를 활용하는 대신 플레이어의 위도 및 경도 좌표나 선호 서버 위치의 좌표를 제공하세요 이 접근법은 추가적인 클라이언트 측 지오룩업 구현이 필요하며 전적으로 게임 개발자의 솔루션에 의존합니다.

circle-exclamation
circle-check

지역 잠금(Region Lock)

서버는 대략적으로 일반화된 지역 매개변수를 사용하여 배치될 수 있으며, 다음과 같이:

  • 플레이어의 메타데이터(플레이어 계정 데이터베이스)를 기반으로 자동으로 선택되거나,

  • 매치메이킹 중 플레이어가 선택하여 클라이언트-서버 지연이 높은 위치에 배치될 수 있습니다.

triangle-exclamation
circle-check

🟢 연결 품질

일부 게임(및 일부 플레이어)은 지연이나 랙에 더 민감합니다. 플레이어 보고서는 대규모 사건이나 회귀 버그의 좋은 지표이지만, 플레이어는 네트워킹 개념에 대한 깊은 이해가 부족할 수 있으며 스튜디오, 네트코드 또는 서버에 쉽게 책임을 묻습니다.

일부 문제의 근본 원인은 플레이어에게 숨겨져 있을 수 있으므로 스튜디오와 호스팅 제공자의 협력이 중요할 수 있습니다. Edgegap의 최우선 과제는 항상 가능한 최상의 서비스를 제공하는 것입니다.

많은 플레이어 신고를 받고 있거나 광범위한 장애 또는 반복적인 문제가 발생하면 플랫폼의 지원 티켓을 통해 즉시 문의해 주세요.

저지연

플레이어 지연은 다음 간 데이터 전송에서 발생하는 지연의 조합입니다:

  • 물리적 장치 간 - 물리적 신호가 인터넷 네트워킹 토폴로지arrow-up-right,

  • 를 가로질러 이동하는 것 호스트 대 호스트

  • - 프로토콜, 전송 및 보안 조치로 인해 발생합니다, 프로세스 대 프로세스

- 클라이언트/서버에서 데이터의 (언)박싱 및 처리로 인해 발생합니다. Edgegap은 플레이어와 더 가까운 서버를 배치하여 물리적 지연을 줄이고 응답 시간을 단축하며 네트워크 홉 수를 줄입니다. 17개의 클라우드 및 베어메탈 제공업체에 걸친 위치를 통해 전 세계 어디에서나.

플레이어에게 업계 최고 수준의 핑을 제공합니다

  • 서버 및 인터넷 커버리지는(Edgegap에만 국한되지 않고) 다음과 같은 요인으로 인해 전 세계적으로 제한될 수 있습니다: 인프라 가용성

  • - 특정 지역의 인터넷 연결 품질이 충분하지 않을 수 있습니다, 자연적 요인

- 매우 복잡한 서버 랙은 대부분 안정적인 환경을 필요로 합니다.

고가용성 전 세계 다양한 위치의 서버 가용성은 시간에 따라 변하며 하루 동안 여러 번 변동합니다. Edgegap은 자동으로 위치를 확장/축소합니다 수요에 따라다음 요소를 고려합니다:

  • 버스트 트래픽 - 15분 이내에 이루어진 배포를 포함합니다,

  • vCPU 요구사항 - 배포당 더 많은 vCPU는 특정 위치에 대한 전반적인 수요를 증가시킵니다,

  • 제공업체 제공사항 - 일부 원격 위치는 이용 가능한 제공업체 옵션이 적습니다,

  • 머신 가용성 - 일부 위치는 4 vCPU 또는 8 vCPU 머신만 제공할 수 있습니다,

  • 스튜디오 요청 테스트, 품질 보증, 얼리 액세스, 클로즈드 베타 또는 토너먼트 용도로 요청됩니다.

모든 애플리케이션의 배포 요청은 위치 수요를 평가하기 위해 결합됩니다. 모든 조직은 기본적으로 동일한 할당 우선순위를 가지며, 특정 하드웨어나 위치가 필요한 엔터프라이즈 고객을 위한 개인 서버 풀을 추가할 수 있는 가능성.

circle-check

플레이어 이슈 해결

플레이어 문제는 서버 버그나 제공업체 사고에서 비롯될 수 있지만, 지역 ISP, 게임 서비스, 저수준 라이브러리의 버그, 인프라 제공업체 또는 기타 출처와 같은 제3자에서 발생할 수도 있습니다.

플레이어 신고나 사고를 조사할 때 다음 요소를 고려하세요:

  • 매치메이킹 품질 - 플레이어는 최상의 결과를 위해 서로 가까운(같은 지역) 위치에 있어야 합니다 배포 다음을 위해:

  • 지역 문제:

    • 지역화된 인터넷 서비스 제공업체(ISP)가 일시적으로 사고를 해결하고 있을 수 있습니다,

    • 일부 지역(예: 중국, 러시아)은 지역화된 제재로 인해 제한될 수 있습니다,

  • 캐싱 수준 - Edgegap은 캐시된 위치에서의 빠른 배포를 우선시합니다:

  • 최대 배포 시간 - 초기화 과정이 느리고 무거워서 배포가 실패할 수 있습니다:

    • 참조 앱 및 버전 타임아웃 기간을 늘리려면,

    • 초기화 단계를 절대적으로 필요할 때까지 지연시키세요,

  • 서버 이미지 또는 통합 문제.

circle-check
circle-info

광범위한 버그, 일시적 문제 및 중단에 대해 사용자에게 알려 부정적 여론을 완화합니다.

🔄 배포 수명 주기

Edgegap 배포는 배포 상태로 표시되는 여러 수명 주기 단계를 거칩니다.

1. 배포 시작

다음을 위한 배포 테스트 목적 다음으로 시작할 수 있습니다:

다음을 위한 배포 라이브 프로덕션 환경 다음으로 시작해야 합니다:

circle-check
circle-info

를 사용하여 테스트할 때 배포 APIarrow-up-right, 기본 Dockerfile을 재정의할 수 있습니다 CMD 사용자 지정 명령으로.

2. 배포 중

배포가 시작되면 시스템이 빠른 연속으로 여러 단계를 수행합니다:

  • 텔레메트리 - 사용 가능한 데이터 센터에서 각 플레이어까지의 네트워크 응답성을 측정합니다,

  • 배포 - 용량을 예약하고 서버 컨테이너 시작을 준비합니다,

  • 컨테이너 부팅 - 컨테이너를 시작하고 종속 항목을 설치하며 초기화합니다,

  • 후처리 - 로그 저장, 모니터링을 추가하고 배포를 마무리합니다.

circle-exclamation

3. 배포 준비 완료

컨테이너가 완전히 초기화되었으며 서버가 지금 시작 중입니다. 수 초에서 1분 동안 게임 엔진(또는 사용자 지정 런타임)이 플레이어 연결을 완전히 수락할 준비가 될 때까지 서버가 여전히 초기화 중이어서 플레이어 요청에 응답하지 않을 수 있습니다.

circle-check

4. 배포 오류

예상치 못한 이유로 언제든지 배포가 오류 상태로 끝날 수 있습니다. 이는 통합 테스트 중이거나 새 서버 빌드를 테스트할 때 발생할 가능성이 더 높습니다.

오류 상태의 배포에 대해서는 요금이 부과되지 않으며 해당 배포는 24시간 후 자동으로 중지됩니다.

문제 해결 단계:

circle-check

5. 배포 중지됨

플레이어 경험에 부정적 영향을 미치지 않기 위해 귀하의 지시 없이 서버를 중지하지 않습니다배포가 다음과 같은 이유로 중지될 수 있습니다:

  • 자체 중지 via DELETE_URL - 플레이어가 떠나고 매치가 종료된 후 배포가 스스로 중지됨,

  • 백엔드에서 중지 - 백엔드가 다음을 사용하여 이 배포를 중지함 배포 APIarrow-up-right,

  • 게임 최대 지속 시간 - 귀하의 앱 및 버전 에 할당된 시간이 만료되었습니다,

  • 프라이빗 플릿 배포를 실행 중인 호스트가 예약된 작업으로 삭제되었습니다.

circle-info

배포가 중지되면, 우리는 정상 종료를 트리거합니다 보내어 SIGTERM 메인 프로세스에 신호를 보내 짧은 종료 기간을 허용합니다. 기간이 만료되면, SIGKILL 신호가 전송되어 배포를 중지합니다.

👀 관측성

게임 서버가 타사와 상호 운용되고 운영 인사이트를 얻을 수 있도록 허용합니다.

발견성

준비 상태가 되면 배포에 URL(정규화된 도메인 이름(fqdn)arrow-up-right)과 각 내부 포트에 대한 외부 포트가 할당됩니다.

circle-check
circle-info

게임 서버에서 나가는 트래픽(클라이언트 또는 백엔드로)은 절대 차단되거나 필터링되지 않습니다.

웹소켓(WS) 및 보안 웹소켓(WSS)

Edgegap에서 웹소켓 기반 네트코드를 사용하려면 두 가지 옵션이 있습니다:

  • 관리형 인증서, 코드 작성 없이 1분 내에 설정:

    • 구성하십시오 앱 및 버전 로 전환하세요 웹소켓(WS)을 사용하고 TLS 업그레이드 활성화를 사용하세요,

    • 클라이언트 연결에 Edgegap URL 사용(예: https://5fa53fa00a57.pr.edgegap.net/)

  • 자가 관리 인증서, 자체 커스텀 도메인을 사용하려면:

triangle-exclamation

주입된 변수

게임 서버는 종종 서버 IP, 내부 포트 값 등 추가 정보가 필요합니다. 읽기 전용 환경 변수를 주입하는 것은 파라미터를 전달하는 신뢰할 수 있는 클라우드 독립적 방법입니다.

circle-check
circle-info

참조 앱 버전 변수매치메이커 변수 아래의 배포 변수 외에 추가로.

사용자 정의 변수

각 배포에 대해 최대 20개의 사용자 정의 변수를 정의할 수 있으며, 각 변수는 최대 4KB의 문자열 데이터를 포함할 수 있습니다.

circle-exclamation

Edgegap이 서버에 주입한 변수를 읽어 중요한 정보를 얻으십시오:

식별자

  • ARBITRIUM_REQUEST_ID - 예: f68e011bfb01 .

    • 요청 ID라고도 하는 고유 배포 ID. 추가 정보를 검색하는 데 사용됩니다.

    • 배포 URL은 항상 다음 형식을 가집니다 {ARBITRIUM_REQUEST_ID}.pr.edgegap.net.

  • ARBITRIUM_PUBLIC_IP - 예: 162.254.141.66 .

    • 이 호스트의 공용 IP 주소로, URL 대신 연결에 사용할 수 있습니다.

  • ARBITRIUM_HOST_ID - 예: alpha-north-america-70364ef8 .

    • 배포를 호스팅하는 머신의 고유 식별자이며 다른 배포와 공유될 수 있습니다.

  • ARBITRIUM_DEPLOYMENT_TAGS - 예: tag1,tag2 .

  • ARBITRIUM_PRIVATE_FLEET_ID - 예: PUBLIC_CLOUD , 또는 호스팅된 경우 플릿 ID 프라이빗 플릿.

리소스 사양

  • ARBITRIUM_HOST_IN_PRIVATE_FLEET - 예: false , 호스팅 여부를 나타냅니다 프라이빗 플릿.

  • ARBITRIUM_HOST_BASE_CLOCK_FREQUENCY - 예: 2000 , 프로세서 주파수(MHz).

  • ARBITRIUM_DEPLOYMENT_VCPU_UNITS - 예: 256, 할당된 vCPU 단위(1024 = 1 vCPU).

  • ARBITRIUM_DEPLOYMENT_MEMORY_MB - 예: 512, 할당된 RAM(MB 단위, 1024 = 1 GB).

수명 주기 관리

  • ARBITRIUM_DELETE_URL - 예: https://api.edgegap.com/v1/self/stop/9f511e17/660.

  • ARBITRIUM_DELETE_TOKEN - 예: 7df4cd933df87084b34ae80d8abde293.

  • ARBITRIUM_CONTEXT_URL - 예: https://api.edgegap.com/v1/context/9170f5211e17/17.

    • 배포에서만 호출 가능하며 더 많은 배포 세부 정보를 반환합니다.

    • 고유한 ARBITRIUM_CONTEXT_TOKENAuthorization 헤더가 필요합니다.

  • ARBITRIUM_CONTEXT_TOKEN - 예: dfaf50b9333b9ee07b22ed247e4a17e6.

발견성

  • ARBITRIUM_PORT_GAMEPORT_INTERNAL - 예: 7777 , 서버 리스너용 내부 포트.

  • ARBITRIUM_PORT_GAMEPORT_EXTERNAL - 예: 31504 , 클라이언트 연결용 외부 포트.

    • 보안 목적을 위해 외부 포트 값은 각 배포마다 임의로 지정됩니다.

  • ARBITRIUM_PORT_GAMEPORT_PROTOCOL - 예: UDP , 네트코드 전송의 프로토콜.

circle-check
  • ARBITRIUM_BEACON_ENABLED - 예: true, 다음에 배포하는 경우 프라이빗 플릿 와 함께 핑 비콘.

  • ARBITRIUM_HOST_BEACON_PUBLIC_IP - 예: 139.177.198.69 , 가장 가까운 비콘의 공용 IP.

  • ARBITRIUM_HOST_BEACON_PORT_UDP_EXTERNAL - 예: 30199, UDP를 통한 핑 측정용.

  • ARBITRIUM_HOST_BEACON_PORT_TCP_EXTERNAL - 예: 30456, TCP를 통한 핑 측정용.

구조화된 정보(문자열로서의 JSON)

circle-info

환경 변수는 문자열화된 JSON으로 저장됩니다, SDK 또는 맞춤 방법을 사용하여 구문 분석하십시오.

chevron-rightARBITRIUM_DEPLOYMENT_LOCATION: - 배포 위치에 대한 자세한 정보.hashtag
chevron-rightARBITRIUM_PORTS_MAPPING: - 내부 및 외부 포트에 대한 자세한 정보입니다.hashtag

대시보드 모니터링

우리의 대시보드arrow-up-right 서버 확장성을 모니터링하고 운영을 지원하는 유틸리티를 제공합니다.

분석

circle-check

🌟 종량제(Pay as You Go) 요금제로 업그레이드arrow-up-right 상세한 서버 성능 지표와 인사이트를 잠금 해제하려면:

  • 일반 인사이트: 버전별 실시간 서버 수 + 리소스 사용 개요로 릴리스를 모니터링합니다,

  • CPU 인사이트: 프로세서 과부하 작업으로 인한 지연 서버를 문제 해결합니다,

  • 메모리 인사이트: 할당된 메모리 초과로 인한 서버 재시작을 완화합니다,

  • 네트워킹 인사이트: 비효율적인 네트워킹 패턴을 감지하고 넷코드를 최적화합니다.

배포 지도

지도에서 배포 위치, 사용 가능한 위치 및 추정 플레이어 위치를 미리보기:

배포 균형 지점

배포 균형 지점 히트맵을 미리보고 다음으로 필터링하세요 앱 및 버전. 균형 지점은 주어진 배포에서 각 플레이어와 네트워크 상 근접성이 동일한 대략적인 위치입니다:

circle-exclamation

배포 로그

배포 로그는 다음에 대한 정보를 표시합니다 배포:

컨테이너 로그

문제 발생 시 또는 디버깅할 때 게임 서버의 로그를 검사하세요:

circle-exclamation

컨테이너 메트릭

컨테이너 메트릭(프로세서, 메모리, 네트워킹)을 검토하여:

  • 연결 문제의 일반적인 원인을 식별하세요 배포,

  • 리소스 사용 급증을 초래하는 비효율적인 구현 패턴을 감지하세요,

  • 특정 시나리오에서 비효율적인 리소스 사용을 정확히 찾아내세요,

  • 최적화 중 서버의 리소스 사용 변화를 검증하세요,

  • 서버 초기화의 리소스 소비와 소요 시간을 벤치마크하세요.

히스토리 메트릭은 1분 간격의 값 평균을 표시하며 무료 티어에서 이용 가능합니다.

🌟 종량제(Pay as You Go) 요금제로 업그레이드arrow-up-right 초 단위(1초) 간격의 정밀한 메트릭을 잠금 해제하려면.

circle-info

문의하기envelope 대규모 릴리스를 위해 라이브 호스팅 지원을 요청하려면 릴리스 전에.

콘텍스트 및 상태

추가 배포 정보는 JSON 형식으로 조회할 수 있습니다:

circle-info

콘텍스트 API(배포 내)는 Context API 토큰을 요구하고, 상태 API는 Edgegap 토큰을 사용합니다.

circle-exclamation

배포 필터링

모든 배포 중에서 빠르게 검색하려면, 대시보드를 사용하세요arrow-up-right:

API로 배포 목록 조회arrow-up-right 그리고 백엔드 통합으로 필터를 적용하세요:

배포 속성
연산자
예제 값

eq 또는 neq

"ready" 또는 "error"

eq

"7e709a0d8efd"

또는 nin

[ "7e709a0d8efd", "4ba353100b4b" ]

eq 또는 neq

"tagA"

또는 nin

[ "tagA", "tagB" ]

eq 또는 neq

"my-app"

또는 nin

[ "my-app", "my-other-app" ]

eq 또는 neq

"1.0.0"

또는 nin

[ "1.0.0", "prod" ]

eq

true 또는 false

eq 또는 neq 또는

lt 또는 lte 또는

gt 또는 gte

5

circle-info

각 속성은 단일 요청에서 최대 1개의 필터 연산자만 가질 수 있습니다. 자세한 내용은 API 참조 를 참조하세요.

요청에 나타나는 순서대로 여러 필드로 결과를 정렬하세요:

배포 속성
정렬

asc 또는 desc

예제 필터 쿼리:

chevron-right목록 오류가 있는 배포 문제 해결 및 제거를 위해.hashtag

인코딩된 URL:

형식화된 JSON 쿼리:

chevron-right목록 앱 버전이 오래된 배포 릴리스가 완료되었는지 확인하려면.hashtag

인코딩된 URL:

형식화된 JSON 쿼리:

circle-check

웹훅 및 포스트백

다음의 변경 사항에 대해 게임 백엔드에서 간단한 HTTP 알림을 받으세요 배포 웹훅 URL을 지정하여 배포 API 요청arrow-up-right. 다음에서 이용 가능합니다:

  • 준비 완료 시: 배포 컨테이너가 성공적으로 시작됨 (이후 서버가 초기화를 시작합니다),

  • 오류 시: 배포를 시작할 수 없었고 배포 가 발생했습니다,

  • 종료 시: 배포 및 게임 서버에 더 이상 접근할 수 없습니다.

Ready와 Error 웹훅은 동일한 배포에 대해 동시에 트리거되지 않습니다.

chevron-right웹훅 페이로드 예시hashtag
circle-exclamation
circle-info

웹훅은 배포 생명주기를 관찰하지만 씬/레벨 초기화 상태를 알지는 못합니다. 씬/레벨의 로딩 진행을 관찰하려면 게임 서버에 커스텀 웹훅을 구현하세요.

🚨 문제 해결

배포 문제를 해결할 때:

  1. 로그에 오류가 없는지 확인하세요 배포배포,

  2. 통합 버그를 배제하기 위해 로컬에서 서버를 실행해 보세요,

  3. 이 페이지의 문제 해결 단계를 검토하세요,

  4. 저희에게 문의하려면 커뮤니티 디스코드arrow-up-right 로 연락하고 배포 ID를 포함하세요.

circle-info

참조 배포 플레이어 커뮤니티 피드백을 다루는 방법에 대한 권장 사항은

chevron-right클라이언트가 서버에 연결할 수 없음 - 요청 시간이 초과되었습니다., 요청이 시간 초과되었습니다 , 연결 실패 , 또는 포트 확인 실패.hashtag
  • 먼저 배포가 Ready 상태인지, 배포 로그에 런타임 예외나 오류가 없는지 확인하세요. 배포가 중지된 경우, 저희의 로그에서 검토하세요 대시보드arrow-up-right.

  • Mirror 넷코드를 사용 중인 경우 다음이 필요합니다 "자동 서버 시작”arrow-up-right 가 선택된 NetworkManager , 다시 빌드하고 푸시한 후 서버를 재배포하세요.

  • FishNet 넷코드를 사용 중인 경우 다음을 활성화해야 합니다 “헤드리스에서 시작”arrow-up-rightServerManager, 다시 빌드하고 푸시한 후 서버를 재배포하세요.

  • Photon Fusion 2 넷코드를 사용하는 경우, 서버가 배포 공개 IP, 외부 포트 및 roomCode 를 서버에 전달하고 클라이언트에서도 동일한 룸 코드를 “NetworkRunner.StartGame”arrow-up-right 매개변수에 StartGameArgs. 배포 ID(예: b63e6003b19f)는 전역적으로 고유하며 클라이언트가 할당을 통해 쉽게 접근할 수 있으므로 좋은 선택입니다. 매치메이커 다음으로, 서버 빌드의 넷코드 설정에 있는 포트 설정이 배포의 내부 포트와 일치하는지 확인하세요 심층 분석.

  • 앱 버전 . 포트 매핑은 재빌드 없이arrow-up-right를 편집하여 변경할 수 있습니다. 넷코드 통합에서 프로토콜을 찾으세요. . 포트 매핑은 재빌드 없이arrow-up-right 게임 클라이언트가 배포 상세 페이지에 표시된

  • 외부 포트 에 연결하고 있는지 확인하세요. 이 값은 보안상의 이유로 항상 무작위화됩니다. 넷코드 통합에서 Secure Websocket (WSS) 프로토콜을 사용하는 경우, WSS 포트에 대한 포트 구성에서 TLS 업그레이드가 활성화되어 있는지 확인하세요.

  • 중국에 위치해 있고 . 포트 매핑은 재빌드 없이arrow-up-right 스마트 플릿

  • 을 사용 중이신가요? 귀하의 연결이 만리방화벽에 의해 차단될 수 있습니다. 플릿에 중국에 위치한 서버를 추가하거나 VPN을 사용하여 연결하는 것을 고려하세요. 내 배포가 중지/재시작되어 더 이상 로그에 접근할 수 없습니다.arrow-up-right서버 프로세스가 예외로 인해 충돌하는 경우, 시스템이 자동으로 서버 재시작을 시도합니다. 근본 원인을 찾기 위해 로컬에서 서버를 테스트하는 것을 고려하세요.

chevron-right저희는 배포 기간 동안만 로그를 보관합니다. 배포가 중지된 후 로그를 검사하려면,hashtag
chevron-right모든 배포는 서버 정리 정책에 따라 런타임 후 24시간이 지나면 종료됩니다. 이는 인프라 유지보수 및 배포가 적절히 종료되지 않아 예기치 않은 비용이 발생하는 것을 방지하기 위함입니다. 장기 실행 서버의 경우 다음을 고려하세요hashtag
  • 내 배포는 준비되었지만 그 후 몇 분 동안 연결할 수 없습니다.

  • 배포가 Ready 상태가 되면 게임 엔진 초기화가 시작됩니다. 이 과정은 몇 초에서 몇 분이 걸릴 수 있으며 이 기간 동안 서버는 플레이어 연결을 수락하지 않습니다. 프라이빗 플릿 와 함께 영속성.

  • 참조 배포 무료 티어 배포는 60분 시간 제한이 있으니 계정 업그레이드를 고려하세요.

chevron-right이 시간을 줄이기 위해 서버 초기화를 최적화하는 것을 고려하세요.hashtag
  • 게임 클라이언트는 제한된 시간 동안(초기화 지속 시간에 따라) 1초 간격으로 재시도해야 하며, 시간이 지나면 매치메이킹으로 돌아갑니다.

  • 서버가 초기화(언리얼 엔진의 경우 트래블 포함)를 수행하는 동안 클라이언트와 동시에 상태를 동기화할 수 있도록 로딩 씬을 추가하는 것을 고려하세요.

  • 내 Meta Quest 기기에서 다음 오류가 발생합니다

  • HTTP 0: 대상 호스트를 확인할 수 없음

chevron-right안드로이드 타깃용으로 Unity 앱을 빌드할 때 인터넷 접근 권한이 출력 APK 클라이언트 빌드 아티팩트에서 자동으로 제거될 수 있습니다. 권한을 다시 추가하세요(그 이후 클라이언트 재빌드 필요): .hashtag
  • 프로젝트 설정 / OpenXR /

  • Meta Quest 지원 / 인터넷 권한 강제 제거 (체크 해제).

    • 플레이어 설정 / 인터넷 접근(필수로 설정). ⚙️ 플레이어가 내 배포를 떠나면 무슨 일이 발생하나요?

    • 기본적으로 서버는 플레이어 연결을 거부하지 않습니다. 플레이어 인증은 다양한 방법과 인증 제공자가 사용될 수 있으므로 개발자에게 맡겨집니다.

chevron-right게임 클라이언트는 예기치 않은 클라이언트 충돌 시 재연결을 시도하기 위해 연결 정보를 로컬에 저장할 수 있습니다.hashtag
chevron-right이는 문제가 아닐 수 있습니다. 게임 엔진은 서버 초기화 동안 CPU 집약 작업을 수행하는 경향이 있습니다. 배포 시작 후 2-3분 내에 CPU 사용량이 떨어지지 않으면 서버를 최적화하거나 앱 버전 리소스를 늘려야 할 수 있습니다.hashtag
  • 틱 레이트를 줄이면 서버가 수행하는 메시징 작업이 줄어 CPU 사용량에 영향을 줄 수 있습니다.

  • 무료 티어에서는 1.5 vCPU 및 3GB 메모리(RAM)로 제한됩니다.

  • Mirror 넷코드를 사용 중인 경우 다음이 필요합니다 "자동 서버 시작”arrow-up-right 가 선택된 NetworkManager , 다시 빌드하고 푸시한 후 서버를 재배포하세요.

  • FishNet 넷코드를 사용 중인 경우 다음을 활성화해야 합니다 “헤드리스에서 시작”arrow-up-rightServerManager, 다시 빌드하고 푸시한 후 서버를 재배포하세요.

  • 새 앱 버전을 만들 때 할당된 리소스를 늘릴 수 있습니다. 대시보드에서 앱 버전을 복제하고 서버나 이미지를 재빌드하지 않고도 이러한 값을 필요에 따라 조정할 수 있습니다.

  • 내 배포가 반복적으로 재시작되며 `OOM kill` 오류가 표시됩니다.

chevron-right이 동작은 할당된 메모리 양을 초과했기 때문에 발생합니다. 오브젝트 풀링, 압축 또는 씬에서 불필요한 객체 제거로 메모리 사용을 최적화하세요.hashtag
  • 프로젝트가 기본 씬을 로드하고 있는지 확인하세요. 해당 씬에

  • 가 포함되어 있고 씬이 Unity의 빌드 설정에 포함되어 있는지 확인하세요. NetworkManager 가 때때로 서버의 메모리(RAM) 사용량이 갑자기 높게 치솟는 경우가 있는데, 문제가 되나요?

  • 새 앱 버전을 만들 때 할당된 리소스를 늘릴 수 있습니다. 대시보드에서 앱 버전을 복제하고 서버나 이미지를 재빌드하지 않고도 이러한 값을 필요에 따라 조정할 수 있습니다.

  • 내 배포가 반복적으로 재시작되며 `OOM kill` 오류가 표시됩니다.

chevron-right할당된 앱 버전 메모리 한도 내에 머무르는 한 이는 문제가 되지 않습니다.hashtag
  • 할당된 앱 버전 메모리 양을 초과하면 `OOM kill`이 발생합니다(위 참조).

  • 다른 서버가 같은 머신에서 실행될 때 내 서버 성능에 영향이 있나요?

chevron-right아니요. 저희 플랫폼은 할당된 리소스가 다른 스튜디오나 공유 인프라의 다른 서버에 의해 사용되지 않도록 보장합니다. Edgegap과 함께라면 소음 이웃은 없습니다.hashtag
  • No, our platform ensures that allocated resources will not be used by other studios, or other servers on shared infrastructure. With Edgegap, there are no noisy neighbors.

마지막 업데이트

도움이 되었나요?