배포
배포 및 수명 주기에 대해 알아보세요 - 개념과 모범 사례로 더 깊이 이해하세요.
🗺️ 오케스트레이션
클라우드 네이티브 엣지 컴퓨팅 접근 방식으로 용량 수요에 맞춰 몇 초 내에 새 서버를 시작하세요. 우리는 서버를 애완동물이 아닌 가축처럼 취급합니다 - 각 인스턴스를 수동으로 관리하기보다 결함 있는 인스턴스를 전체 교체합니다.
선택한 오케스트레이션은 당신의 데브옵스 비용, 서버 비용 및 확장성에 영향을 줍니다.
Discord에서 문의하세요 하이브리드 오케스트레이션 옵션과 호스팅 비용 최적화에 대해 알아보세요.
모든 장단점을 완전히 이해하려면 다양한 오케스트레이션 방법을 비교해 봅시다.
매치 바운드
최신 스튜디오를 위한 골든 스탠다드로, 가장 쉬운 통합과 최고의 비용 효율성을 제공합니다.
👍 장점
최고의 비용 효율성 - 플레이어 수요에 따라 실시간으로 확장합니다.
지역 제한 없는 호스팅으로 인해 가장 낮은 데브옵스 비용, Edgegap이 작업의 99%를 자동화합니다.
Edgegap의 퍼블릭 클라우드 인프라에 615개 이상의 사이트가 있어 가장 낮은 핑을 제공합니다.
예상치 못한 트래픽 급증 시 가장 빠른 스케일 업(버스트 가능성)을 제공합니다.
최고 수준의 보안 및 플레이어 치트 방지(서버 권한)를 제공합니다.
예상치 못한 서버 크래시가 플레이어에게 미치는 영향이 최소화되어 단일 매치에만 영향을 줍니다.
👎 단점
새로운 오케스트레이션 마인드셋을 도입하려면 초기 학습이 필요합니다.
24시간 이상 실행되는 서버는 자동으로 종료됩니다.
🧩 적합한 대상
지연에 민감한 게임 - 넷코드 최적화로도 높은 핑을 극복할 수 없을 때:
1인칭 슈터, 격투 게임, VR & XR(가상 및 확장 현실) 등
설계상 매치 지속 시간에 상한이 있는 게임,
배틀 로얄, PvPvE, 협동 슈터, MOBA, 스포츠 게임, ARPG 및 던전 크롤러 등
🔎 발견성
충분한 플레이어가 모이면 새 게임을 시작하세요 매치메이킹.
기존 매치에서 이탈자를 백필로 대체하기 위해 플레이어를 추가하세요.
플레이어가 서버를 찾아보고 목록에서 선택하게 하세요 서버 브라우저.
Edgegap은 각 지역의 플레이어 활동에 따라 615개 이상의 모든 서버 위치를 자동으로 확장/축소합니다. 성공을 준비하세요 - 매끄럽게 60분 안에 동시 접속자 1,400만 명까지 확장하세요.
지역 예비
지속적인 월드와 사용자 생성 콘텐츠 및 소셜 MMO 게임에 대한 전통적 모델 익숙하고 이해하기 쉬운, 베테랑을 위한 구식 접근법입니다..
👍 장점
월별 약정에 기반한 예측 가능한 비용.
최고 수준의 보안 및 플레이어 치트 방지(서버 권한)를 제공합니다.
호스팅 비용이 더 높음 - 각 지역은 하나 이상의 유휴 대기 서버(버스트 용량)를 필요로 합니다.
👎 단점
데브옵스 비용이 더 높음 - 확장, 운영 및 유지보수가 지역별로 중복됩니다.
플레이어 수가 적은 지역은 먼 서버에 접속해 높은 핑을 경험합니다.
플레이어가 오프라인일 때도 서버에 저장되는 사용자 생성 콘텐츠가 있는 지속 세계.
🧩 적합한 대상
MMO, 베이스 빌딩 또는 오브젝트 배치가 있는 샌드박스, 추출형 슈터 등
지연을 허용하는 게임 -
서버 권한의 실시간 물리 연산이 필요하지 않을 때 모바일 게임, 협동 게임, TCG/CCG, 턴 기반 전략 등:
비동기 멀티플레이어,
서버 크래시가 플레이어 경험에 미치는 영향이 최소인 경우: 유령과 경쟁하는 레이스, 적 기지 약탈, 타이머 기반 건설/농사 게임 등
서버 준비에 몇 분이 걸리는 초기화 과정이 많은 애플리케이션.
참조
🔎 발견성
플레이어가 서버를 찾아보고 목록에서 선택하게 하세요 서버 브라우저.
에 대해 관리형 클러스터 Edgegap에서 마이크로서비스와 백엔드 서비스를 자체 호스팅하는 방법을 참조하세요. 피어 투 피어
개발 노력을
전용 서버에서 릴레이 넷코드로 전환하세요(비경쟁 게임용). 관련 주제: 리슨 서버, 플레이어 호스트 권한, NAT 펀치스루. NAT 펀치스루 문제를 해결하기 위해 릴레이 서버만 필요하므로 가장 낮은 호스팅 비용..
가장 낮은 데브옵스 비용 - 클라이언트 빌드와 배포 채널만 유지하면 됩니다.
👍 장점
백엔드 개발이 필요 없으므로 구현이 쉽고 프로토타입 제작이 빠릅니다.
동시성 프로그래밍 기술이 요구되어 피어 투 피어 넷코드 개발 노력이 증가합니다.
예상치 못한 서버 크래시가 플레이어에게 미치는 영향이 최소화되어 단일 매치에만 영향을 줍니다.
최악의 핑 시간과 불리한 네트워크 조건(예: 모바일 인터넷)에 가장 민감합니다.
👎 단점
보안이 가장 약해 중간자 공격 및 세션 하이재킹에 취약합니다.
호스트가 떠날 때 세션이 끊길 위험이 있으며, 커스텀 호스트 마이그레이션을 구현하지 않으면 문제가 됩니다.
협동 및 캐주얼 게임 -
치트가 재미를 해치지 않거나 게임을 망치지 않을 때
🧩 적합한 대상
키즈 게임, 탐험 게임, 어드벤처 등 당사의,
분산 릴레이
🔎 발견성
를 참조하여 지연과 보안 측면에서 최고의 피어 투 피어 서비스를 확인하세요. 📍 서버 배치 어떤 오케스트레이션 방법을 선택하든, 플레이어 그룹에 적합한 서버 위치 선택은 최상의 핑과 최적의 플레이어 경험을 보장하는 데 중요합니다. 서버 배치 전략과 그것이 플레이어에게 미치는 영향을 알아보세요.
서버 배치 전략은
플레이어 경험, 유지율 및 게임 리뷰에 영향을 미칩니다
Edgegap은 사용 가능한 용량이 있는.
최적의 위치에 배포합니다 , 빠르고 저지연 매치를 위해. 실시간으로 서버 배치를 분석하세요, 대규모로.

에 대해 배포 관련 주제: 리슨 서버, 플레이어 호스트 권한, NAT 펀치스루. 서버 점수서버 점수 전략은 Edgegap의 특허받은 방법론을 사용하여
각 매치마다 개별적으로 서버 배치를 최적화합니다
. 비침해 방식의 텔레메트리를 수행해 각 플레이어의 서버 위치에 대한 네트워크 근접성을 추정하고 최적의 성능을 제공하는 서버를 선택합니다: 응답성- 모든 플레이어에게 평균적으로 가장 낮은 핑을 제공합니다,
공정성 - 모든 플레이어에게 균형 잡힌 공정한 핑을 제공합니다.
우리의 매치메이커
는 기본적으로 서버 점수 전략을 사용하여 최적의 경험을 보장합니다 . 이 전략을 배포 API와 함께 사용하려면 배포 요청에 플레이어의 공용 IP 또는 지리 좌표를 입력하세요. 응답 불가한 배치- 서버가 멀어 모든 플레이어에게 높은 핑:
불공정한 배치 - 핑이 고르지 않아 한 플레이어가 불리함:

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

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

지리 위치(Geolocation) 대안으로, 자동화된 텔레메트리를 활용하는 대신 플레이어의 위도 및 경도 좌표 또는 선호 서버 위치의 좌표를 제공하세요
이 접근법은 추가적인 클라이언트 측 지오룩업 구현이 필요하며, 전적으로 게임 개발자의 솔루션에 의존합니다.
지리 위치 전략은 지역 간 데이터 전송에 대한 엄격한 규제 요구사항이 있는 애플리케이션이나 플레이어 IP를 사용할 수 없는 경우를 제외하고는 오케스트레이션에 권장되지 않습니다. 이 전략을 사용하려면
배포 요청에 플레이어의 공용 IP 또는 지리 좌표를 나열하세요. 배포 지역 잠금(Region Lock)
서버는 대략적으로 일반화된 지역 매개변수를 사용하여 배치될 수 있으며, 다음 중 하나입니다: 응답 불가한 배치메타데이터(플레이어 계정 데이터베이스)를 기반으로 플레이어에게 자동으로 선택되거나,
매치메이킹 중에 플레이어가 선택하여 클라이언트-서버 지연이 높은 위치에 배치되도록 허용합니다.
이 전략만 사용하면 네트워크 성능이 저하될 수 있으므로 권장되지 않습니다.
대신
지역 선택을 다른 전략과 결합한 사전 필터로 사용하는 것이
더 나은 대안입니다.
🟢 연결 품질 일부 게임(또는 일부 플레이어)은 지연이나 랙에 더 민감합니다. 플레이어 보고서는 대규모 사건이나 회귀 버그의 훌륭한 지표이지만, 플레이어는 네트워킹 개념에 대한 깊은 이해가 부족할 수 있으며
스튜디오, 넷코드 또는 서버에 빠르게 책임을 돌립니다.
문제의 근본 원인이 플레이어에게 숨겨져 있을 수 있으므로 스튜디오와 호스팅 제공업체의 협력이 중요할 수 있습니다. Edgegap의 우선 순위는 항상 가능한 최상의 서비스를 제공하는 것입니다. 플레이어 보고가 다수 접수되거나 광범위한 장애 또는 반복적인 문제가 발생하면, 플랫폼의 지원 티켓을 통해 즉시 문의해 주세요.
저지연 플레이어 지연은 다음 간의 데이터 전송으로 인한 지연의 조합입니다:
물리적 장치들 -
물리적 신호가 이동하는
인터넷 네트워킹 토폴로지
호스트 간 - 프로토콜, 전송 및 보안 조치로 인한 것, 프로세스 간,
- 클라이언트/서버에서 데이터의 (언)박싱 및 처리로 인한 것. Edgegap은 서버를 플레이어에게 더 가깝게 배치하여 물리적 지연을 줄이고 응답 시간을 단축하며 네트워크 홉 수를 줄입니다. 17개의 클라우드 및 베어메탈 제공업체에 걸친 위치로,
전 세계 어디에서나 플레이어에게 최고의 핑을 제공합니다 서버 및 인터넷 커버리지는(Edgegap뿐만 아니라) 다음과 같은 요인으로 제한됩니다:
인프라 가용성 - 특정 지역의 인터넷 연결 품질이 충분하지 않을 수 있습니다,.
자연적 요인
- 복잡한 서버 랙은 대부분 안정적인 환경을 필요로 합니다. 고가용성
전 세계 다양한 위치의 서버 가용성은 시간에 따라 변하며 하루에도 여러 번 바뀔 수 있습니다. Edgegap은 자동으로 규모를 확장/축소합니다
위치들을
온디맨드로 , 다음을 고려합니다: 버스트 트래픽 - 15분 이내에 이루어진 배포,vCPU 요구사항
- 배포당 더 많은 vCPU는 특정 위치에 대한 전체 수요를 증가시킵니다, 제공업체 옵션
- 일부 원격 위치는 제공업체 옵션이 적을 수 있습니다, 머신 가용성
- 일부 위치는 4 vCPU 또는 8 vCPU 머신만 제공할 수 있습니다, 스튜디오 요청
- 테스트, 품질 보증, 얼리 액세스, 클로즈드 베타 또는 토너먼트용 요청. 모든 애플리케이션의 배포 요청이 결합되어 위치 수요를 평가합니다. 모든 조직은 기본적으로 동일한 할당 우선순위를 가지며,
특정 하드웨어나 위치가 필요한 엔터프라이즈 고객을 위한 프라이빗 서버 풀을 추가할 수 있는 가능성 출시 계획을 세우거나 위치 가용성 관련 요청이 있으면
문의해 주세요 플레이어 문제 해결.
플레이어 문제는 서버 버그나 제공업체 사고에서 비롯될 수 있지만, 로컬 ISP, 게임 서비스, 저수준 라이브러리의 버그, 인프라 제공업체 또는 기타 출처와 같은 제3자에서 발생할 수도 있습니다. 플레이어 보고서나 사고를 문제 해결할 때 다음 요인을 고려하세요:매치메이킹 품질
- 플레이어는 최상의 결과를 위해 서로 가까운(같은 지역) 위치에 있어야 합니다:
참조
및
캐싱을 활성화하여 몇 초 내에 서버를 배포하세요
최대 배포 시간
- 느리고 무거운 초기화 과정으로 인해 배포가 실패할 수 있습니다:
타임아웃 기간을 늘리려면, 초기화 단계를 절대적으로 필요할 때까지 지연시키세요,
클라이언트 매치 히스토리 UI에 배포 ID를 표시하여 문제 해결 시 플레이어 보고를 추적하세요. 광범위한 버그, 일시적 문제 및 장애에 대해 사용자에게 알림을 보내 부정적 감정을 완화하세요.
지역화된 인터넷 서비스 제공업체(ISP)가 일시적으로 사건을 해결 중일 수 있습니다, 앱 및 버전 🔄 배포 수명주기
Edgegap 배포는 배포 상태로 표시되는 여러 수명주기 단계를 거칩니다.
1. 배포 시작.
테스트 목적의 배포는 다음으로 시작될 수 있습니다:
- 언리얼 엔진 프로젝트용 Docker 확장 또는 플러그인,
- 유니티 프로젝트용 플러그인,
대시보드 웹 UI
- 서버 통합 테스트를 위한 사용하기 쉬운 웹 인터페이스.
라이브 운영 환경은 다음으로 시작해야 합니다: - 다른 플레이어를 찾아 온디맨드로 서버를 시작(,
라이브 운영 환경은 request_id (배포 ID) 및 배포에 태그를 지정하여
기본 Dockerfile CMD
을 커스텀 명령으로 재정의할 수 있습니다. 2. 배포 중 배포가 시작되면 시스템은 빠르게 일련의 단계를 수행합니다: 텔레메트리 - 사용 가능한 데이터센터에서 각 플레이어까지의 네트워크 응답성을 측정합니다,
배포 - 용량을 예약하고 서버 컨테이너 시작을 준비합니다, 기본 Dockerfile컨테이너 부트 - 컨테이너를 시작하고 의존성을 설치하며 초기화합니다, 후처리 - 로그 스토리지 및 모니터링을 추가하고 배포를 최종화합니다. 너무 많은 요청 429
- 안정성을 보장하고 놀라운 청구서를 방지하기 위해 조직당
초당 40 요청
으로 요청을 제한합니다.
문의하세요
출시를 계획하고 출시 트래픽을 추정하며 성공을 준비하려면 문의하세요.
3. 배포 준비 완료
컨테이너가 완전히 초기화되었으며 서버가 지금 시작 중입니다. 몇 초에서 1분 동안 서버가 여전히 초기화 중일 수 있으며, 게임 엔진(또는 커스텀 런타임)이 플레이어 연결을 수락할 준비가 될 때까지 플레이어 요청에 응답하지 않을 수 있습니다. 배포가 준비 상태가 되면, 플레이어 연결을 성공할 때까지 재시도하세요. 또는 사전 정의된 클라이언트 타임아웃까지 시도하세요. 4. 배포 오류
배포는 언제든지 예기치 않은 이유로 오류 상태에 빠질 수 있습니다. 이는 통합 테스트 또는 새 서버 빌드 테스트 중에 더 자주 발생합니다.
오류 상태의 배포에 대해서는 비용이 청구되지 않으며, 해당 배포는 24시간 후 자동으로 중지됩니다.
문제 해결 단계: Edgegap 서비스 상태를가동 시간 모니터링 페이지에서 확인하세요
Docker Desktop을 사용하여 로컬에서 서버 컨테이너를 테스트해 Edgegap 문제인지 여부를 배제해 보세요.
도움 요청 시,
배포 ID 및 유용한 세부 정보를 포함하세요
그래야 신속히 조사할 수 있습니다!
배포가 중지될 수 있는 이유는 다음과 같습니다:
자체 중지 via DELETE_URL - 플레이어가 떠나고 매치가 끝나 배포가 자체 중지됨,
언리얼 엔진
유니티배포를 올바르게 중지하는 가이드,
백엔드에서 중지 - 백엔드가 배포 API
지역화된 인터넷 서비스 제공업체(ISP)가 일시적으로 사건을 해결 중일 수 있습니다, 를 사용하여 이 배포를 중지함, 일부 지역(예: 중국, 러시아)은 지역 제재로 인해 제한될 수 있습니다, 게임 최대 지속 시간 - 귀하의
에 지정된 할당 시간이 만료됨, 호스트가 예약된 작업을 통해 삭제됨. 배포가 중지되면,,
우리는 우아한 종료를 트리거합니다 다음을 전송하여 앱 및 버전 SIGTERM
프라이빗 플릿 메인 프로세스에 신호를 보내 짧은 종료 기간을 허용합니다. 기간이 만료되면,
SIGKILL 신호가 전송되어 배포를 중단합니다. 👀 관측성 게임 서버가 타사와 상호운용되도록 허용하고 운영 통찰을 얻으세요. 준비 상태가 되면 배포에는 각 내부 포트에 대해 URL ( fqdn ) 및 외부 포트가 할당됩니다.
사용하세요
배포 태그로 배포를 쉽게 표시하세요
발견성
게임 서버에서 나가는 트래픽(클라이언트 또는 백엔드로)은 절대 차단되거나필터링되지 않습니다.웹소켓(WS) 및 보안 웹소켓(WSS)
Edgegap에서 웹소켓 기반 넷코드를 사용하려면 두 가지 옵션이 있습니다: 관리되는 인증서 일부 지역(예: 중국, 러시아)은 지역 제재로 인해 제한될 수 있습니다, 배포.
, 코드 작성 없이 1분 내에 설정: 구성하세요
웹소켓(WS)을 사용하고 TLS 업그레이드를 활성화하세요,
클라이언트 연결에 Edgegap URL 사용(예:
https://5fa53fa00a57.pr.edgegap.net/자가 관리 인증서
, 사용자 지정 도메인을 사용하려는 경우: 앱 및 버전 관련 주제: 리슨 서버, 플레이어 호스트 권한, NAT 펀치스루. 보안 웹소켓(WSS)을 사용하세요
커스텀 DNS 레코드(예:
Cloudflare)
)로 자체 TLS 인증서 플로우를 구성하세요.예기치 않은 서버 예외는 배포 컨테이너를 재시작하게 하고 TLS 보안을 무효화할 수 있습니다. 그런 경우,
, 사용자 지정 도메인을 사용하려는 경우: 앱 및 버전 관련 주제: 리슨 서버, 플레이어 호스트 권한, NAT 펀치스루. 서버를 중지하고,
플레이어를 새 배포로 재매치하세요 서버 상태가 손실될 수 있습니다).
주입된 변수 게임 서버는 종종 서버 IP, 내부 포트 값 등 추가 정보가 필요합니다. 읽기 전용 환경 변수를 주입하는 것은 매개변수를 전달하는 신뢰할 수 있는 클라우드 비종속적 방법입니다. 일부 지역(예: 중국, 러시아)은 지역 제재로 인해 제한될 수 있습니다, 변수 값을 가져오려면. C#의 GetEnvironmentVariable을 사용하세요.
또는
C++의 GetEnvironmentVariable을 사용하세요
에 대해 각 배포마다 최대 20개의 커스텀 변수를 정의할 수 있으며, 각 변수는 최대 4KB의 문자열 데이터를 포함할 수 있습니다. 일부 지역(예: 중국, 러시아)은 지역 제재로 인해 제한될 수 있습니다, 아래 예약된 이름을 사용하지 마세요. 그렇지 않으면 커스텀 변수가 덮어써집니다! Edgegap이 서버에 주입한 변수를 읽어 중요한 정보를 확인하세요:
식별자
ARBITRIUM_REQUEST_ID
- 예:
f68e011bfb01
고유한 배포 ID로 요청 ID라고도 합니다. 더 많은 정보를 검색하는 데 사용됩니다.
배포 URL은 항상 다음 형식을 가집니다{ARBITRIUM_REQUEST_ID}.pr.edgegap.netARBITRIUM_HOST_ID.alpha-north-america-70364ef8
배포를 호스팅하는 머신의 고유 식별자이며 다른 배포와 공유됩니다.
ARBITRIUM_PUBLIC_IP.
이 호스트의 공용 IP 주소로 URL 대신 연결에 사용할 수 있습니다.{ARBITRIUM_REQUEST_ID}.pr.edgegap.netARBITRIUM_DEPLOYMENT_TAGS.tag1,tag2
쉼표로 구분된 사용자 정의 배포 태그로,{ARBITRIUM_REQUEST_ID}.pr.edgegap.net162.254.141.66.검색 및 필터링에 유용합니다
리소스 명세{ARBITRIUM_REQUEST_ID}.pr.edgegap.netARBITRIUM_HOST_BASE_CLOCK_FREQUENCY., 프로세서 주파수(MHz). ARBITRIUM_DEPLOYMENT_VCPU_UNITS.
, 할당된 vCPU 단위(1024 = 1 vCPU).
ARBITRIUM_DEPLOYMENT_MEMORY_MB{ARBITRIUM_REQUEST_ID}.pr.edgegap.net2000, 할당된 RAM(MB 단위, 1024 = 1GB).수명주기 관리{ARBITRIUM_REQUEST_ID}.pr.edgegap.net256ARBITRIUM_DELETE_URLhttps://api.edgegap.com/v1/self/stop/9f511e17/660{ARBITRIUM_REQUEST_ID}.pr.edgegap.net512배포에서 호출 가능하며,
배포는 우아하게 중지됩니다
고유한 일회성{ARBITRIUM_REQUEST_ID}.pr.edgegap.netARBITRIUM_DELETE_TOKEN.헤더에 필요합니다.
7df4cd933df87084b34ae80d8abde293ARBITRIUM_CONTEXT_URLhttps://api.edgegap.com/v1/context/9170f5211e17/17배포에서만 호출 가능하며 더 많은 배포 세부 정보를 반환합니다.
7df4cd933df87084b34ae80d8abde293{ARBITRIUM_REQUEST_ID}.pr.edgegap.net고유한.ARBITRIUM_CONTEXT_TOKEN{ARBITRIUM_REQUEST_ID}.pr.edgegap.net이 필요합니다.dfaf50b9333b9ee07b22ed247e4a17e6
ARBITRIUM_PORT_GAMEPORT_INTERNAL
, 서버 리스너용 내부 포트.ARBITRIUM_CONTEXT_URLhttps://api.edgegap.com/v1/context/9170f5211e17/17배포에서만 호출 가능하며 더 많은 배포 세부 정보를 반환합니다.
, 서버 리스너용 내부 포트.{ARBITRIUM_REQUEST_ID}.pr.edgegap.netARBITRIUM_PORT_GAMEPORT_EXTERNAL.
발견성
, 클라이언트 연결용 외부 포트.{ARBITRIUM_REQUEST_ID}.pr.edgegap.net7777보안 목적을 위해 외부 포트 값은 각 배포마다 무작위화됩니다.ARBITRIUM_PORT_GAMEPORT_PROTOCOL{ARBITRIUM_REQUEST_ID}.pr.edgegap.net31504UDP, 넷코드 전송의 프로토콜.
예시는 포트 이름을{ARBITRIUM_REQUEST_ID}.pr.edgegap.netgameport(기본값)로 지정했다고 가정합니다.
각 포트는 정제된 추가 변수 세트를 추가합니다: @Super Port! ⇒ 앱 및 버전 ARBITRIUM_PORT_SUPER_PORT_INTERNAL ARBITRIUM_BEACON_ENABLED true , 프라이빗 플릿에서 배포할 경우 .
ARBITRIUM_HOST_BEACON_PUBLIC_IP{ARBITRIUM_REQUEST_ID}.pr.edgegap.net, 가장 가까운 비콘의 공용 IP.ARBITRIUM_HOST_BEACON_PORT_UDP_EXTERNAL 핑 비콘., UDP를 통한 핑 측정용.{ARBITRIUM_REQUEST_ID}.pr.edgegap.net139.177.198.69ARBITRIUM_HOST_BEACON_PORT_TCP_EXTERNAL, TCP를 통한 핑 측정용.{ARBITRIUM_REQUEST_ID}.pr.edgegap.net30199구조화된 정보(JSON 문자열)환경 변수는{ARBITRIUM_REQUEST_ID}.pr.edgegap.net30456문자열화된 JSON으로 저장됩니다
SDK나 커스텀 방법으로 파싱하세요.
ARBITRIUM_DEPLOYMENT_LOCATION : - 배포 위치에 대한 자세한 정보.ARBITRIUM_DEPLOYMENT_LOCATION="{
대시보드 모니터링
는 기본적으로 대시보드 서버 확장성을 모니터링하고 운영을 지원하는 유틸리티를 제공합니다.
분석
찾기 사이드바 메뉴에서 분석 대시보드를 찾으세요 카테고리 서버 호스팅 및 오케스트레이션 아래에 있습니다.
🌟 종량제 요금제로 업그레이드 상세한 서버 성능 지표와 인사이트를 잠금 해제하려면:
일반 인사이트: 버전별 실시간 서버 수와 리소스 사용 개요로 릴리스를 모니터링합니다,
CPU 인사이트: 프로세서 집약적 작업으로 인한 지연 서버 문제를 해결합니다,
메모리 인사이트: 할당된 메모리 초과로 인한 서버 재시작을 완화합니다,
네트워킹 인사이트: 비효율적인 네트워킹 패턴을 감지하고 네트코드를 최적화합니다.

배포 지도
대시보드의 배포 상세 페이지에서 배포 지도를 찾으세요.
지도에서 배포 위치, 사용 가능한 위치 및 예상 플레이어 위치를 미리 봅니다:

배포 균형 지점
배포 균형 지점 히트맵을 미리 보고 앱 및 버전으로 필터링하세요. 균형 지점은 특정 배포에서 각 플레이어에 대해 네트워크 거리상 동등한 대략적 위치입니다:

배포 로그
에서 배포 로그를 찾으세요 배포 상세 페이지에서 배포 지도를 찾으세요.
배포 로그는 다음에 대한 정보를 표시합니다 배포:

컨테이너 로그
컨테이너 로그를 찾으세요 배포 상세 페이지에서 배포 지도를 찾으세요.
문제 발생 시 또는 디버깅할 때 게임 서버의 로그를 검사하세요:

배포가 중지되면 컨테이너 로그는 삭제됩니다. 설정 타사 S3 로그 저장소 에 로그를 저장하려면 설정하세요.
컨테이너 메트릭
컨테이너 메트릭을 찾으세요 배포 상세 페이지에서 배포 지도를 찾으세요.
컨테이너 메트릭(프로세서, 메모리, 네트워킹)을 검토하여:
연결 문제가 일반적으로 발생하는 경우 식별하세요 배포,
리소스 사용량 급증을 유발하는 비효율적 구현 패턴을 감지하세요,
특정 시나리오에서 비효율적인 리소스 사용을 정확히 찾아내세요,
최적화 중 서버의 리소스 사용 변경을 확인하세요,
서버 초기화의 리소스 소비 및 소요 시간을 벤치마크하세요.
히스토리 메트릭은 1분 간격의 값 평균을 표시하며, 무료 요금제에서 사용할 수 있습니다.
🌟 종량제 요금제로 업그레이드 1초 간격의 정확한 메트릭을 잠금 해제하려면.

또는 사전 정의된 클라이언트 타임아웃까지 시도하세요. 대규모 릴리스를 위한 라이브 호스팅 지원을 요청하려면 릴리스 전에.
컨텍스트 및 상태
추가 배포 정보는 JSON 형식으로 가져올 수 있습니다:
배포 내부(게임 서버)에서 다음을 사용하여, 배포 컨텍스트 API,
배포 외부(백엔드/타사)에서 다음을 사용하여, 배포 상태 API.
컨텍스트 API(배포에서)는 컨텍스트 API 토큰을 필요로 하고, 상태 API는 귀하의 Edgegap 토큰을 사용합니다.
배포 필터링
모든 배포 중에서 빠르게 검색하려면, 대시보드를 사용하세요:

API로 배포 나열 및 백엔드 통합으로 필터를 적용하세요:
ARBITRIUM_CONTEXT_URL 아래의 배포 변수와 함께 사용됩니다. nin
[ "7e709a0d8efd", "4ba353100b4b" ]
ARBITRIUM_CONTEXT_URL 아래의 배포 변수와 함께 사용됩니다. nin
[ "tagA", "tagB" ]
ARBITRIUM_CONTEXT_URL 아래의 배포 변수와 함께 사용됩니다. nin
[ "my-app", "my-other-app" ]
ARBITRIUM_CONTEXT_URL 아래의 배포 변수와 함께 사용됩니다. nin
[ "1.0.0", "prod" ]
eq 아래의 배포 변수와 함께 사용됩니다. neq 아래의 배포 변수와 함께 사용됩니다.
lt 아래의 배포 변수와 함께 사용됩니다. lte 아래의 배포 변수와 함께 사용됩니다.
gt 아래의 배포 변수와 함께 사용됩니다. gte
5
각 속성은 단일 요청에서 최대 1개의 필터 연산자를 가질 수 있습니다. 자세한 내용은 API 참조 을 참조하세요.
요청에 나타난 순서대로 여러 필드로 결과를 정렬하세요:
asc 아래의 배포 변수와 함께 사용됩니다. desc
asc 아래의 배포 변수와 함께 사용됩니다. desc
예시 필터 쿼리:
목록 오류가 있는 배포 문제 해결 및 제거를 위해.
인코딩된 URL:
형식화된 JSON 쿼리:
목록 앱 버전이 오래된 배포 릴리스가 완료되었는지 확인하려면.
인코딩된 URL:
형식화된 JSON 쿼리:
요청에 Edgegap API 토큰이 포함된 https://api.edgegap.com/v1/context/9170f5211e17/17 헤더를 추가하는 것을 잊지 마세요.
웹후크 및 포스트백
배포의 변경 사항에 대해 게임 백엔드에서 간단한 HTTP 알림을 받으려면 배포 배포 API 요청에 웹후크 URL을 지정하세요 배포 API 요청. 다음에 대해 사용 가능합니다:
On Ready: 배포 컨테이너가 성공적으로 시작됨 (이후 서버가 초기화를 시작합니다),
On Error: 배포를 시작할 수 없었고 배포 오류가 발생했습니다,
On Terminate: 배포 및 게임 서버에 더 이상 접속할 수 없습니다.
Ready 및 Error 웹후크는 동일한 배포에 대해 동시에 트리거되지 않습니다.
웹후크는 재시도되지 않습니다, 따라서 백엔드가 속도 제한 또는 오류로 인해 요청을 처리하지 못하면 웹후크가 손실될 수 있습니다. 웹후크는 비치명적 사용 사례 또는 디버깅 목적에만 사용하세요.
웹후크는 배포 수명주기를 관찰하지만 씬/레벨 초기화 상태는 알지 못합니다. 씬/레벨의 로딩 진행을 관찰하려면 게임 서버에서 맞춤형 웹후크를 구현하세요.
🚨 문제 해결
배포 문제를 해결할 때:
에 오류가 없는지 확인하세요
통합 버그를 배제하기 위해 서버를 로컬에서 실행해 보세요,
이 페이지의 문제 해결 단계를 검토하세요, 커뮤니티 디스코드에서 문의하세요 및 배포 ID를 포함하세요.
에 대해 배포 플레이어 커뮤니티 피드백을 처리하는 권장 사항은
클라이언트를 서버에 연결할 수 없음 - 요청 시간이 초과되었습니다., 요청 시간 초과 , ConnectionFailed , 또는 포트 확인 실패.
먼저 배포가 Ready 상태인지, 배포 로그에 런타임 예외나 오류가 없는지 확인하세요. 배포가 중지된 경우 우리의 대시보드.
로그에서 확인하세요 Mirror 네트코드를 사용하는 경우 "자동 서버 시작"
이NetworkManager, 선택되어 있어야 하며, 재빌드하고 푸시한 후 재배포하세요. FishNet 네트코드를 사용하는 경우 "헤드리스에서 시작"
을 활성화해야 합니다NetworkManagerServerManager
Photon Fusion 2 네트코드를 사용하는 경우, 서버가 배포 공개 IP, 외부 포트 및roomCode 을 서버에서 전달하고, 클라이언트에서도 동일한 룸 코드를 "NeworkRunner.StartGame"매개변수StartGameArgs. 배포 ID(예:b63e6003b19f 서버 점수 전략을 사용하여 최적의 경험을 보장합니다 )는 전역적으로 고유하고 클라이언트가 할당하여 쉽게 접근할 수 있으므로 훌륭한 선택입니다. 심층 분석.게임 클라이언트가 배포 상세 페이지에 표시된 외부 포트 로 연결하고 있는지 확인하세요. 이 값은 보안상의 이유로 항상 무작위화됩니다.
네트코드 통합에서 Secure Websocket (WSS) 프로토콜을 사용하는 경우, WSS 포트의 포트 구성에 TLS 업그레이드가 활성화되어 있는지 확인하세요. 앱 버전 중국에 위치해 있고
스마트 플리트 를 사용 중인가요? 연결이 만리방화벽에 의해 차단될 수 있습니다. 플리트에 중국에 위치한 서버를 추가하거나 VPN을 사용해 연결을 고려하세요.내 배포가 중지/재시작되었고 더 이상 로그에 접근할 수 없습니다.
예외로 인해 서버 프로세스가 충돌한 경우, 우리 시스템은 서버를 자동으로 재시작하려 시도합니다. 근본 원인을 찾기 위해 서버를 로컬에서 테스트해 보세요.
우리는 배포 기간 동안에만 로그를 보관합니다. 배포가 중지된 후 로그를 검사하려면,
타사 로그 저장소를 통합하세요 배포 중지의 모든 원인을 발견하기 위해..
에 대해 배포 내 배포가 X분 후 자동으로 중지되었습니다.
배포가 Ready 상태가 되면 게임 엔진 초기화가 시작됩니다. 이 과정은 몇 초에서 몇 분까지 걸릴 수 있으며 이 기간 동안 서버는 플레이어 연결을 허용하지 않습니다.
이 시간을 줄이기 위해 서버 초기화를 최적화하는 것을 고려하세요.
게임 클라이언트는 초기화 기간에 따라 제한된 시간 동안 1초 간격으로 연결을 재시도해야 하며, 이후에는 매치메이킹으로 돌아갑니다.
서버가 클라이언트와 동시에 초기화(및 언리얼 엔진의 경우 트래블)를 수행하면서 상태를 동기화할 수 있도록 로딩 씬을 추가하는 것을 고려하세요.
내 Meta Quest 기기가 다음 오류를 발생시킵니다
HTTP 0: 대상 호스트를 확인할 수 없음 Android 대상용으로 Unity 앱을 빌드할 때 인터넷 액세스 권한이 출력 APK 클라이언트 빌드 산출물에서 자동으로 제거될 수 있습니다. .
권한을 다시 추가하세요 (이후 클라이언트를 재빌드해야 합니다):
Project Settings / OpenXR /
Meta Quest Support / Internet Permissions 강제 제거 (선택 해제). ⚙️ Player Settings / Internet Access (필수로 설정).
플레이어가 내 배포를 떠나면 어떤 일이 발생합니까?
기본적으로 서버는 플레이어 연결을 거절하지 않습니다. 플레이어 인증은 여러 방법과 인증 제공자를 사용할 수 있으므로 개발자가 담당합니다.
게임 클라이언트는 예기치 않은 클라이언트 충돌 시 재접속을 시도하기 위해 연결 정보를 로컬에 저장할 수 있습니다.
진행 중인 게임에 플레이어가 참여하도록 허용하려면
세션 심층 분석 아래의 배포 변수와 함께 사용됩니다. 을 사용하는 것을 고려하세요.
내 서버가 준비된 후 CPU 사용률이 100%를 표시합니다.
이는 문제가 아닐 수 있습니다. 게임 엔진은 서버 초기화 동안 CPU 집약적 작업을 수행하는 경향이 있습니다. 배포 시작 후 2-3분 내에 CPU 사용량이 감소하지 않으면 서버를 최적화하거나 앱 버전 리소스를 늘려야 할 수 있습니다.
틱 레이트를 줄이면 서버가 메시지 처리를 덜 수행하므로 CPU 사용량에 영향을 줄 수 있습니다.
로그에서 확인하세요 Mirror 네트코드를 사용하는 경우 "자동 서버 시작"
이NetworkManager, 선택되어 있어야 하며, 재빌드하고 푸시한 후 재배포하세요. FishNet 네트코드를 사용하는 경우 "헤드리스에서 시작"
을 활성화해야 합니다NetworkManager무료 요금제에서는 1.5 vCPU와 3GB 메모리(RAM)로 제한됩니다.
새 앱 버전을 생성할 때 할당된 리소스를 늘릴 수 있습니다. 대시보드에서 앱 버전을 복제하고 서버나 이미지를 재빌드하지 않고도 이러한 값을 필요에 따라 조정할 수 있습니다.
내 배포가 반복적으로 재시작되며 `OOM kill` 오류를 표시합니다.
이 동작은 할당된 메모리량을 초과했기 때문에 발생합니다. 객체 풀링, 압축 또는 씬에서 불필요한 객체 제거로 메모리 사용을 최적화하는 것을 고려하세요.
프로젝트가 기본 씬을 로드하고 있는지 확인하세요(여기에
이가 포함되어 있으며 씬이 Unity의 Build Settings에 포함되어야 합니다).무료 요금제에서는 1.5 vCPU와 3GB 메모리(RAM)로 제한됩니다.
새 앱 버전을 생성할 때 할당된 리소스를 늘릴 수 있습니다. 대시보드에서 앱 버전을 복제하고 서버나 이미지를 재빌드하지 않고도 이러한 값을 필요에 따라 조정할 수 있습니다.
마지막 업데이트
도움이 되었나요?

