

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 서버 원격 측정 지표로 모니터링
<a name="monitoring-gamelift-servers-metrics"></a>

Amazon GameLift Servers는 관리형 Amazon EC2 및 컨테이너 플릿에서 실행되는 게임 서버의 원격 측정 지표를 수집하고 게시하도록 구성할 수 있습니다. 이러한 지표는 서버 빌드와 함께 원격 측정 수집기를 배포한 후 사용할 수 있습니다. 지표 시스템은 모든 SDK(C\$1\$1, C\$1, Go), 모든 플러그인(Unreal, Unity), Amazon GameLift Servers 게임 서버 래퍼를 지원합니다. [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html), [Amazon CloudWatch를 사용하여 Amazon GameLift Servers 모니터링](monitoring-cloudwatch.md), [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) 대시보드로의 지표 데이터 흐름(시각화에 권장됨).

![\[telemetry_metrics\]](http://docs.aws.amazon.com/ko_kr/gameliftservers/latest/developerguide/images/telemetry_metrics.png)


## 원격 측정 지표의 이점
<a name="gamelift-servers-metrics-benefits"></a>

원격 측정 지표 시스템은 5가지 주요 이점을 제공합니다.
+ **게임 엔진별 지표** - 게임 엔진 플러그인(Unreal, Unity)은 게임 성능 최적화에 중요한 서버 틱 시간, 프레임 속도, 엔진 수준 리소스 사용률과 같은 엔진별 성능 지표와 네이티브 통합을 제공합니다.
+ **사용자 지정 지표 지원** - 서버 SDK 함수 호출을 사용하여 자체 게임별 지표를 정의하고 추적하여 게임에 중요한 사용자 지정 게임 플레이 이벤트, 비즈니스 로직 성능, 애플리케이션별 데이터 포인트를 모니터링합니다.
+ **자동 수집** - 지표는 추가 계측이 필요 없고 [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) 및 Amazon CloudWatch와의 직접 통합 없이 원격 측정 수집기 배포 후 자동으로 흐릅니다.
+ **다중 수준 모니터링** - 용량 및 규모 조정에 대한 플릿 수준 지표, 리소스 사용률에 대한 인스턴스 수준 지표, 성능 추적을 위한 게임 세션 지표입니다.
+ **범용 호환성** - 모든 Amazon GameLift Servers 지원되는 개발 환경과 호환되고, 모든 서버 SDK와 통합되며, 게임 엔진 플러그인에서 기본적으로 지원됩니다.

**참고**  
원격 측정 지표는 Amazon Linux 2023 또는 Windows를 실행하는 Amazon GameLift Servers 관리형 Amazon EC2 또는 컨테이너 플릿에 사용할 수 있습니다.

## 시작하기 전 준비 사항
<a name="gamelift-servers-metrics-prerequisites"></a>

### 필요한 AWS 리소스
<a name="required-aws-resources"></a>
+ AWS 에 대해 구성된 계정입니다Amazon GameLift Servers.
+ 다음에서 실행 중인 관리형 플릿:
  + 지원되는 운영 체제가 있는 Amazon EC2 또는
  + Amazon Linux 2023가 있는 컨테이너
+ 적절한 IAM 권한

### IAM 요구 사항
<a name="iam-requirements"></a>

다음 IAM 권한은 해당 서비스를 사용할 계획인 경우에만 필요합니다.
+ **[Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)**(Prometheus에 지표를 게시하는 경우에만 필요)
  + `aps:RemoteWrite` 권한
  + Prometheus 워크스페이스에 대한 액세스
+ **Amazon CloudWatch**(Amazon CloudWatch에 지표를 게시하는 경우에만 필요)
  + `cloudwatch:PutMetricData` 권한
  + 지표 네임스페이스에 대한 액세스
+ **[Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)**(Grafana 대시보드를 사용하는 경우에만 필요)
  + `grafana:Read` 권한
  + 대시보드 액세스를 위한 SSO 구성

# 구현
<a name="gamelift-servers-metrics-setup"></a>

개발 환경에 따라 구현 경로를 선택합니다.

## SDK 구현
<a name="sdk-implementation"></a>


| SDK 유형 | SDK 설정 | 사용자 지정 지표 | API 참조 | 
| --- | --- | --- | --- | 
| Go SDK | [전체 설정 가이드](https://github.com/amazon-gamelift/amazon-gamelift-servers-go-server-sdk/blob/main/telemetry-metrics/METRICS.md) | [Go 지표 API](https://github.com/amazon-gamelift/amazon-gamelift-servers-go-server-sdk/blob/main/telemetry-metrics/CUSTOM_METRICS.md) | [Go 작업 및 데이터 유형](https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-server-sdk-go-actions.html) | 
| C\$1 SDK | [전체 설정 가이드](https://github.com/amazon-gamelift/amazon-gamelift-servers-csharp-server-sdk/blob/main/telemetry-metrics/METRICS.md) | [C\$1 지표 API](https://github.com/amazon-gamelift/amazon-gamelift-servers-csharp-server-sdk/blob/main/telemetry-metrics/CUSTOM_METRICS.md) | [C\$1 작업 및 데이터 유형](https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-server-sdk5-csharp-actions.html) | 
| C\$1\$1 SDK | [전체 설정 가이드](https://github.com/amazon-gamelift/amazon-gamelift-servers-cpp-server-sdk/blob/main/telemetry-metrics/METRICS.md) | [C\$1\$1 지표 API](https://github.com/amazon-gamelift/amazon-gamelift-servers-cpp-server-sdk/blob/main/telemetry-metrics/CUSTOM_METRICS.md) | [C\$1\$1 작업 및 데이터 유형](https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-server-sdk5-cpp-actions.html) | 

## 플러그인 구현
<a name="plugin-implementation"></a>


| 플러그인 | 플러그인 설정 | 사용자 지정 지표 | API 참조 | 
| --- | --- | --- | --- | 
| 비현실적 | [전체 설정 가이드](https://github.com/amazon-gamelift/amazon-gamelift-plugin-unreal/blob/main/TelemetryMetrics/METRICS.md) | [Unreal 지표 API](https://github.com/amazon-gamelift/amazon-gamelift-plugin-unreal/blob/main/TelemetryMetrics/CUSTOM_METRICS.md) | [Unreal 작업 및 데이터 유형](https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-server-sdk5-unreal-actions.html) | 
| Unity | [전체 설정 가이드](https://github.com/amazon-gamelift/amazon-gamelift-plugin-unity/blob/main/TelemetryMetrics/METRICS.md) | [Unity 지표 API](https://github.com/amazon-gamelift/amazon-gamelift-plugin-unity/blob/main/TelemetryMetrics/CUSTOM_METRICS.md) | [C\$1 작업 및 데이터 유형](https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-server-sdk5-csharp-actions.html) | 

## 워크플로 구현
<a name="implementation-workflow"></a>

각 구현은 2단계 프로세스를 따릅니다.

1. **전체 설정 가이드(METRICS.md)** - 인프라 배포, AWS 인프라 구성, 플릿 설정 및 Grafana 대시보드 구성.

1. **API 구현 가이드(CUSTOM\$1METRICS.md)** - 언어별 SDK 사용, 지표 유형, 사용자 지정 지표 생성, 고급 구성.

### Verification(확인)
<a name="verification"></a>

1. [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) 워크스페이스 또는 Amazon CloudWatch 콘솔에서 수신되는 원격 측정 데이터를 확인하여 지표 흐름을 검증합니다.

1. 사전 구축된 대시보드를 사용하여 [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)의 대시보드 가시성을 확인합니다.

1. 모니터링 대시보드에 표시되는지 확인하여 사용자 지정 지표를 테스트합니다.

**참고**  
구현을 완료한 후 이 페이지로 돌아가서 [사용 가능한 지표](gamelift-servers-metrics-types.md) 페이지로 이동합니다.

# 사용 가능한 지표
<a name="gamelift-servers-metrics-types"></a>

지표는 세 가지 범주로 구분됩니다.
+ 자동으로 수집된 지표
+ SDK 제공 지표
+ 사용자 지정 지표

## 자동 지표 수집
<a name="metrics-automatic-collection"></a>

이러한 지표에는 코드 변경이 필요하지 않습니다.

### 인스턴스 지표
<a name="metrics-instance-level"></a>


| 지표 유형 | 설명 | 사용 사례 | 
| --- | --- | --- | 
| CPU | 인스턴스당 사용률 | 리소스 모니터링 | 
| Memory | 물리적 메모리 사용량 및 백분율 | 용량 계획 | 
| 네트워크 I/O | 전송/수신된 바이트 및 패킷 | 연결 상태 | 
| 디스크 I/O | 읽기/쓰기 작업 및 처리량 | 스토리지 성능 | 

### 플릿 지표
<a name="metrics-fleet-level"></a>


| 지표 유형 | 설명 | 사용 사례 | 
| --- | --- | --- | 
| 활성 인스턴스 | 실행 중인 인스턴스 수 | 플릿 조정 | 
| 게임 세션 | 활성 및 사용 가능한 세션 | 용량 관리 | 
| 충돌된 게임 세션 | 충돌된 게임 세션 | 오류 모니터링 | 

## SDK 제공 지표
<a name="metrics-sdk-functions"></a>

다음 코드에는 SDK 함수 호출이 필요합니다.

### 서버 타이밍 지표
<a name="metrics-server-timings"></a>


| 지표 | 설명 | 구현 | 
| --- | --- | --- | 
| 서버 델타 시간 | 현재 서버 틱과 이전 서버 틱 간의 시간 차이입니다. 서버 틱 속도의 일관성을 측정합니다. | GetDeltaTime() 호출 | 
| 서버 틱 속도 | 서버가 업데이트를 처리하는 초당 횟수를 표시합니다. | 자동으로 계산됨 | 
| 서버 틱 시간 | 서버가 단일 틱 또는 업데이트를 처리하는 데 걸리는 시간 | GetTickTime() 호출 | 
| 서버 월드 틱 시간 | 서버가 각 틱으로 게임 월드를 업데이트하는 데 걸리는 시간 | GetWorldUpdateTime() 호출 | 

**구현:** 엔진에 구애받지 않는 SDK(C\$1\$1, C\$1, Go)의 경우 계산된 타이밍 값으로 게임 루프에서 SDK 함수를 호출하여 이러한 지표를 구현합니다. 엔진 플러그인(Unreal, Unity)의 경우 이러한 지표는 엔진 통합을 통해 자동으로 캡처됩니다.

### 네트워크 지표
<a name="metrics-networking"></a>


| 지표 | 설명 | 구현 | 
| --- | --- | --- | 
| 연결 | 서버가 설정한 총 네트워크 연결 수 | InitMetrics() 이후 자동 | 
| 네트워크 I/O(바이트) | 서버가 네트워크를 통해 송신 및 수신하는 총 바이트 수 | InitMetrics() 이후 자동 | 
| 네트워크 I/O(패킷) | 서버가 송신 및 수신하는 총 네트워크 패킷 수 | InitMetrics() 이후 자동 | 
| 패킷 손실 | 전송 중에 손실되는 네트워크 패킷의 백분율 | InitMetrics() 이후 자동 | 

**구현:** SDK 함수 호출을 네트워킹 라이브러리와 통합합니다. SDK는 다양한 네트워크 구현에 대한 지침을 제공합니다.

### 프로세스 지표
<a name="metrics-process-level"></a>


| 지표 | 설명 | 구현 | 
| --- | --- | --- | 
| CPU 사용량(%) | 게임 서버 프로세스에서 사용 중인 CPU 리소스의 백분율 | InitMetrics() 이후 자동 | 
| 메모리 사용량(단위) | 서버 프로세스에서 사용 중인 총 메모리 양 | InitMetrics() 이후 자동 | 
| 물리적 메모리 사용량(%) | 현재 사용 중인 서버의 총 물리적 메모리 백분율 | InitMetrics() 이후 자동 | 
| 서버 상태 | 게임 서버 상태 | InitMetrics() 이후 자동 | 

**구현:** 이러한 지표는 각 게임 세션 프로세스에 대해 SDK에서 자동으로 수집됩니다.

#### 프로세스별 대시보드 조직
<a name="process-metrics-dashboards"></a>

프로세스별 지표는 두 가지 특수 대시보드에서 사용할 수 있습니다.
+ **서버 성능 대시보드** - 개별 게임 세션에 대한 서버 타이밍(델타 시간, 틱 속도, 틱 시간, 월드 틱 시간), 네트워크 지표(연결, I/O 바이트/패킷, 패킷 손실), 메모리 사용량, CPU 사용량을 포함합니다.
+ **인스턴스 성능 대시보드** - 인스턴스 리소스 소비에 가장 많이 기여하는 프로세스를 식별하는 데 도움이 되는 ‘상위 N개 메모리 소비 게임 세션’ 및 ‘상위 N개 CPU 소비 게임 세션" 표를 제공합니다. 게임 세션 링크를 클릭하면 세부 지표를 심층적으로 조사할 수 있습니다.

#### 프로세스별 지표 사용 사례
<a name="process-metrics-use-cases"></a>

프로세스별/게임 세션별 지표는 다음 모니터링 시나리오를 지원합니다.
+ **심층 성능 조사** - 특정 프로세스 또는 게임 세션으로 인해 호스트/인스턴스의 성능이 저하된 경우 프로세스별 지표는 상위 CPU 및 메모리 소비 게임 세션 표를 통해 문제가 발생한 프로세스를 식별하는 데 도움이 됩니다.
+ **게임 서버 충돌 조사** - 게임 세션이 충돌할 때 이러한 지표는 충돌이 메모리 부족, CPU 과부하 또는 네트워크 대역폭 문제로 인한 것인지 확인하는 데 도움이 됩니다.
+ **플레이어 보고 문제 조사** - 플레이어가 게임 플레이 중에 지연 또는 중단을 보고하면 프로세스별 지표는 CPU, 메모리, 네트워크, 틱 시간 또는 월드 업데이트 시간의 병목 현상을 식별하는 데 도움이 됩니다.
+ **다양한 빌드의 성능 변화 식별** - 틱 시간, 틱 속도, 월드 업데이트 시간 지표를 통해 개발자는 다양한 서버 빌드에서 게임 성능이 어떻게 변경되는지 측정할 수 있습니다.
+ **게임 플레이의 지연 및 느려짐 감지** - 틱 시간, 틱 속도, 월드 업데이트 시간 지표는 서버가 게임을 업데이트하는 속도를 반영하므로 플레이어 경험에 직접적인 영향을 미칩니다.
+ **벤치마킹** - 플레이어 수, 게임 모드, 기타 변수와 같은 요인을 기반으로 다양한 게임 시나리오가 서버 성능에 미치는 영향을 식별합니다.

## 대시보드 조직
<a name="metrics-dashboard-usage"></a>

지표는 다양한 모니터링 시나리오를 위해 [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)의 특수 대시보드로 구성됩니다. 사용 가능한 대시보드는 플릿 유형에 따라 다릅니다.

### EC2 플릿 대시보드
<a name="ec2-fleet-dashboards"></a>
+ **EC2 플릿 개요 대시보드** - 상위 수준 플릿 용량, 조정 인사이트, 동시 플레이어(CCU), 인스턴스, 플레이어 용량, 충돌된 게임 세션.
+ **인스턴스 개요 대시보드** - 평균 CPU, 메모리, 네트워크, 디스크 사용률을 포함한 모든 인스턴스의 집계된 호스트 수준 지표.
+ **인스턴스 성능 대시보드** - 리소스 집약적인 프로세스를 식별하기 위한 ‘상위 N개 메모리 소비 게임 세션’ 및 ‘상위 N개 CPU 소비 게임 세션’ 표가 있는 개별 인스턴스에 대한 세부 지표.
+ **서버 성능 대시보드(EC2)** - EC2 인스턴스의 개별 게임 세션에 대한 게임 루프 타이밍, 네트워크 성능, 메모리, CPU 지표.

### 컨테이너 플릿 대시보드
<a name="container-fleet-dashboards"></a>
+ **컨테이너 플릿 개요 대시보드** - CPU 예약, 메모리 사용률, 컨테이너 그룹 상태를 포함한 컨테이너 플릿 리소스 사용률에 대한 상위 수준 개요.
+ **컨테이너 성능 대시보드** - CPU 사용률, 메모리 사용량, 네트워크 I/O, 스토리지 성능을 포함하여 특정 ECS 작업 내의 개별 컨테이너에 대한 세부 지표.
+ **서버 성능 대시보드(컨테이너)** - 컨테이너의 개별 게임 세션에 대한 게임 루프 타이밍, 네트워크 성능, 메모리, CPU 지표.

자세한 대시보드 정보와 사용 지침은 [대시보드 조직 및 사용량](gamelift-servers-metrics-dashboards.md) 섹션을 참조하세요.

# 작동 방식
<a name="gamelift-servers-metrics-architecture"></a>

원격 측정 지표 시스템은 게임 서버에서 시각화 대시보드로의 간단한 4단계 데이터 흐름을 따릅니다.

**컬렉션:** GameLift Server SDK 또는 플러그인과 통합된 게임 서버는 동일한 인스턴스에서 실행되는 로컬 원격 측정 수집기에 지표를 자동으로 내보냅니다. SDK는 코드에서 정의한 자동 지표(서버 수명 주기, 리소스 사용량) 및 사용자 지정 지표를 모두 캡처합니다.

**처리:** 원격 측정 수집기는 게임 서버의 지표를 집계하여 인스턴스 수준 성능 데이터(CPU, 메모리, 네트워크, 디스크 사용량)와 결합합니다. 이를 통해 게임 성능과 기본 인프라를 모두 전체적으로 파악할 수 있습니다.

**스토리지:** 처리된 지표는 선택한 지표 웨어하우스로 내보내집니다. 고성능 시계열 스토리지를 위한 [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html), AWS 서비스 통합을 위한 Amazon CloudWatch 또는 둘 다. 모든 데이터 전송은 인증되고 암호화됩니다.

**시각화:** [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)는 지표 웨어하우스에 연결하여 사전 구축된 GameLift 대시보드를 표시합니다. 이러한 대시보드는 게임 호스팅 인프라를 모니터링하고 문제를 해결하는 데 도움이 되는 플릿 개요, 서버 성능 세부 정보, 컨테이너 모니터링 보기를 제공합니다.

**참고**  
게임 서버와 원격 측정 수집기 간의 모든 지표 전송은 보안을 위해 인스턴스에서 로컬로 이루어집니다. 수집기만 적절한 인증을 사용하여 AWS 서비스와 통신합니다.

# 대시보드 조직 및 사용량
<a name="gamelift-servers-metrics-dashboards"></a>

[Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)의 포괄적인 대시보드에서 지표를 봅니다. 사용 가능한 대시보드는 플릿 유형에 따라 다릅니다.

## 플릿 유형별 대시보드 가용성
<a name="dashboard-fleet-types"></a>

다음 표에는 각 플릿 유형에 사용할 수 있는 대시보드를 보여 줍니다.


| 대시보드 | 플릿 유형 | 설명 | 
| --- | --- | --- | 
| EC2 플릿 개요 | EC2 Fleet | 동시 플레이어(CCU), 인스턴스, 플레이어 용량에 대한 정보를 표시합니다. | 
| 인스턴스 개요 | EC2 Fleet | 모든 플릿 인스턴스의 평균 CPU, 메모리, 네트워크 사용률을 표시합니다. | 
| 인스턴스 성능 | EC2 Fleet | 개별 인스턴스에 대한 세부 지표(CPU, 메모리, 디스크, 네트워크)를 표시합니다. | 
| 컨테이너 플릿 개요 | 컨테이너 플릿 | 관리형 컨테이너 플릿에 있는 모든 컨테이너의 평균 리소스 사용률을 표시합니다. | 
| 컨테이너 성능 | 컨테이너 플릿 | 특정 ECS 작업 내의 개별 컨테이너에 대한 세부 지표를 표시합니다. | 
| 서버 성능 | 둘 다 | 지정된 게임 서버 프로세스의 네트워크, 메모리, 런타임 성능을 표시합니다(EC2 및 컨테이너 플릿의 별도 버전). | 

**관리형 EC2 플릿:**
+ EC2 플릿 개요는 높은 수준의 플릿 용량과 규모 조정 인사이트를 제공합니다.
+ 호스트 수준 모니터링을 위해 인스턴스 개요 및 인스턴스 성능 대시보드를 사용합니다.
+ 시스템 수준 가시성을 위해 호스트 지표 수신기를 통해 수집된 지표입니다.
+ EC2 인스턴스 리소스 사용률 및 성능에 중점을 둡니다.
+ 서버 성능(EC2)은 기본 인프라와 관계없이 게임 서버 애플리케이션 지표를 모니터링합니다.

**관리형 컨테이너 플릿:**
+ ECS 작업 및 컨테이너 수준 모니터링을 위해 컨테이너 플릿 개요 및 컨테이너 성능 대시보드를 사용합니다.
+ 컨테이너화된 워크로드 가시성을 위해 ECS 컨테이너 수신기를 통해 수집된 지표입니다.
+ 작업 수준 집계 및 컨테이너 리소스 격리에 중점을 둡니다.
+ 서버 성능(컨테이너)은 기본 인프라와 관계없이 게임 서버 애플리케이션 지표를 모니터링합니다.

## EC2 플릿 개요 대시보드
<a name="fleet-overview-dashboard"></a>

이 대시보드는 전 세계 및 위치별로 플릿의 사용률 및 용량에 대한 개략적인 개요를 제공합니다. 게임 서버 중지, 시작 및 충돌수뿐만 아니라 정상 게임 서버의 비율을 보여주는 그래프가 특징입니다. FleetID 및 위치를 기준으로 필터링할 수 있습니다.

### 플릿 개요 지표
<a name="fleet-overview-metrics"></a>

다음 표에는 플릿 개요 대시보드에서 사용할 수 있는 지표를 보여 줍니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/gameliftservers/latest/developerguide/gamelift-servers-metrics-dashboards.html)

**참고**  
CCU 지표는 게임 서버 코드에서 구현해야 합니다. 이러한 지표는 자동으로 수집되지 않으므로 애플리케이션에서 구현하고 보고해야 합니다.

## 인스턴스 개요 대시보드
<a name="instances-overview-dashboard"></a>

이 대시보드는 플릿의 모든 인스턴스에서 집계된 호스트 수준 지표를 제공합니다. 현재 평균은 인스턴스의 전체 상태를 보여줍니다. 성능이 저하되면 CPU 사용량, 메모리 사용량, 네트워크, 디스크 사용량에 병목 현상이 있는지 확인합니다. FleetID 및 위치를 기준으로 필터링할 수 있습니다.

### 인스턴스 개요 지표
<a name="instances-overview-metrics"></a>

다음 표에는 인스턴스 개요 대시보드에서 사용할 수 있는 지표를 보여 줍니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/gameliftservers/latest/developerguide/gamelift-servers-metrics-dashboards.html)

**참고**  
인스턴스 수준 지표는 호스트 지표 수신기를 통해 수집되며 플릿의 인프라 성능에 대한 시스템 수준 가시성을 제공합니다. 이 대시보드를 사용하여 전체 플릿 상태 추세를 식별하고 성능 문제가 감지되면 개별 인스턴스로 드릴다운합니다.

## 인스턴스 성능 대시보드
<a name="instance-performance-dashboard"></a>

이 대시보드는 개별 인스턴스에 대한 자세한 성능 지표를 제공합니다. 현재 평균은 인스턴스의 전체 상태를 보여 줍니다. 성능이 저하되면 CPU 사용량, 메모리 사용량, 파일 시스템 사용량에 병목 현상이 있는지 확인합니다. 인스턴스 리소스 소비에 가장 많이 기여하는 프로세스를 식별하는 데 도움이 되는 ‘상위 N개 메모리 소비 게임 세션’ 및 ‘상위 N개 CPU 소비 게임 세션" 표를 제공합니다. 게임 세션 링크를 클릭하면 세부 지표를 심층적으로 조사할 수 있습니다. 특정 인스턴스 ID를 기준으로 필터링할 수 있습니다.

### 플릿 성능 지표
<a name="instance-performance-metrics"></a>

다음 표에는 인스턴스 성능 대시보드에서 사용할 수 있는 지표를 보여 줍니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/gameliftservers/latest/developerguide/gamelift-servers-metrics-dashboards.html)

**참고**  
상위 N개 메모리 및 CPU 소비 게임 세션 테이블은 전체 인스턴스 성능에 영향을 미칠 수 있는 성능 병목 현상과 리소스 집약적인 프로세스를 식별하는 데 필수적입니다. 이러한 순위를 통해 추가 조사를 위해 문제가 있는 게임 세션을 빠르게 식별할 수 있습니다.

## 컨테이너 플릿 개요 대시보드
<a name="container-fleet-overview-dashboard"></a>

이 대시보드는 컨테이너 플릿의 리소스 사용률 및 용량에 대한 개략적인 개요를 제공합니다. CPU 예약, 메모리 사용률, 컨테이너 그룹 상태를 포함한 관리형 컨테이너 플릿에 있는 모든 컨테이너의 평균 리소스 사용률을 표시합니다. FleetID 및 위치를 기준으로 필터링할 수 있습니다.

### 컨테이너 플릿 개요 지표
<a name="container-fleet-overview-metrics"></a>

다음 표에는 컨테이너 플릿 개요 대시보드에서 사용할 수 있는 지표를 보여 줍니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/gameliftservers/latest/developerguide/gamelift-servers-metrics-dashboards.html)

**참고**  
컨테이너 플릿 지표는 ECS 컨테이너 수신기를 통해 수집되며 작업 수준 집계 및 컨테이너 리소스 격리에 중점을 두고 컨테이너화된 워크로드 가시성을 제공합니다.

## 컨테이너 성능 대시보드
<a name="container-performance-dashboard"></a>

이 대시보드는 특정 ECS 작업 내의 개별 컨테이너에 대한 자세한 성능 지표를 제공합니다. CPU 사용률, 메모리 사용량, 네트워크 I/O, 스토리지 성능 등 개별 컨테이너에 대한 자세한 지표를 표시합니다. 특정 컨테이너 ID 또는 ECS 작업을 기준으로 필터링할 수 있습니다.

### 컨테이너 성능 지표
<a name="container-performance-metrics"></a>

다음 표에는 컨테이너 성능 대시보드에서 사용할 수 있는 지표를 보여 줍니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/gameliftservers/latest/developerguide/gamelift-servers-metrics-dashboards.html)

**참고**  
컨테이너 성능 지표는 ECS 작업 내의 개별 컨테이너 리소스 소비 및 성능 특성에 대한 자세한 가시성을 제공합니다.

## 서버 성능 대시보드
<a name="server-performance-dashboard"></a>

서버 성능 대시보드에는 개별 게임 세션의 서버 타이밍, 네트워크 활동, 메모리, CPU 사용량과 관련된 지표가 표시됩니다. 게임 세션 ID를 기준으로 필터링하고 지표를 Amazon CloudWatch 또는 [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)로 직접 내보낼 수 있습니다.

### 서버 성능 지표
<a name="server-performance-metrics"></a>

다음 표에는 서버 성능 대시보드에서 사용할 수 있는 지표를 보여 줍니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/gameliftservers/latest/developerguide/gamelift-servers-metrics-dashboards.html)

# 일반적인 모니터링 시나리오
<a name="gamelift-servers-metrics-scenarios"></a>

## 심층 성능 조사 분석
<a name="scenario-dive-deep-performance"></a>

**시나리오:** 특정 프로세스 또는 게임 세션으로 인해 호스트/인스턴스 성능이 저하되고 있음

**조사 단계:**
+ 인스턴스 성능 대시보드에 액세스합니다.
+ ‘상위 N개 메모리 소비 게임 세션’ 테이블을 검토하여 인스턴스 메모리 소비에 가장 많이 기여하는 프로세스를 식별합니다.
+ ‘상위 N개 CPU 소비 게임 세션’ 테이블을 검토하여 인스턴스 CPU 사용률에 가장 많이 기여하는 프로세스를 식별합니다.
+ 게임 세션 링크를 클릭하여 세부 지표를 심층적으로 조사할 수 있습니다.
+ 서버 타이밍(서버 델타 시간, 서버 틱 속도, 서버 틱 시간, 서버 월드 틱 시간)을 분석하여 성능 병목 현상을 식별합니다.

## 게임 서버 충돌 조사
<a name="scenario-game-server-crash"></a>

**시나리오:** 게임 세션이 중단되어 근본 원인을 파악해야 함

**조사 단계:**
+ 충돌한 게임 세션에 대한 서버 성능 대시보드에 액세스합니다.
+ 메모리 사용량(단위) 및 물리적 메모리 사용량(%)을 확인하여 충돌이 메모리 부족으로 인한 것인지 확인합니다.
+ CPU 사용량(%)을 검토하여 CPU 과부하로 인해 충돌이 발생했는지 확인합니다.
+ 네트워크 I/O(바이트) 및 네트워크 I/O(패킷)를 분석하여 네트워크 대역폭 문제가 충돌에 기여했는지 확인합니다.
+ 패킷 손실 비율을 검사하여 네트워크 관련 문제를 식별합니다.

## 플레이어 보고 문제 조사
<a name="scenario-player-reported-issues"></a>

**시나리오:** 플레이어가 게임 플레이 중 지연 또는 중단을 보고합니다.

**조사 단계:**
+ 영향을 받은 게임 세션에 대한 서버 성능 대시보드에 액세스합니다.
+ 서버 틱 시간 및 서버 월드 틱 시간을 검토하여 게임 업데이트 지연을 식별합니다.
+ 서버 틱 속도를 확인하여 서버 업데이트 빈도가 일정한지 확인합니다.
+ CPU 사용량(%)을 분석하여 처리 병목 현상을 식별합니다.
+ 메모리 사용량 지표를 검토하여 메모리 관련 성능 문제를 식별합니다.
+ 네트워크 I/O 지표 및 패킷 손실을 확인하여 네트워크 병목 현상을 식별합니다.

## 다양한 게임 서버 빌드의 성능 변경 사항 식별
<a name="scenario-performance-changes-builds"></a>

**시나리오:** 다양한 서버 빌드에서 게임 성능이 어떻게 변하는지 측정하려고 합니다.

**조사 단계:**
+ 서버 틱 시간 지표를 서로 다른 빌드 간에 비교하여 처리 효율성 변화를 측정합니다.
+ 빌드 간 서버 틱 속도 일관성을 분석하여 성능 역행을 식별합니다.
+ 서버 월드 틱 시간을 검토하여 게임 월드 업데이트 성능 변경 사항을 측정합니다.
+ 빌드 간 메모리 사용량 패턴을 비교하여 메모리 최적화 개선 또는 역행을 식별합니다.
+ CPU 사용량 추세를 모니터링하여 계산 효율성 변화를 평가합니다.

## 게임 플레이의 지연 및 느려짐 감지
<a name="scenario-detect-gameplay-delays"></a>

**시나리오:** 서버 응답성과 게임 업데이트 속도를 모니터링해야 함

**조사 단계:**
+ 서버 틱 시간을 모니터링하여 서버가 각 업데이트 주기를 처리하는 속도를 측정합니다.
+ 서버 틱 속도를 추적하여 초당 일관된 게임 상태 업데이트를 보장합니다.
+ 서버 월드 틱 시간을 분석하여 게임 월드 업데이트 속도를 측정하면 고객 경험에 직접적인 영향을 미칩니다.
+ 서버 델타 시간 변형에 대한 알림을 설정하여 일관되지 않은 서버 성능을 감지합니다.

## 다양한 게임 시나리오 벤치마킹
<a name="scenario-benchmarking"></a>

**시나리오:** 다양한 게임 시나리오가 서버 성능에 미치는 영향을 파악하고자 합니다.

**조사 단계:**
+ 다양한 플레이어 수의 서버 성능 지표를 비교하여 조정 영향을 이해합니다.
+ 서버 틱 시간 및 CPU 사용량 지표를 사용하여 게임 모드 간의 성능 차이를 분석합니다.
+ 다양한 게임 시나리오에서 메모리 사용량 패턴을 모니터링하여 리소스 집약적인 기능을 식별합니다.
+ 네트워크 I/O 지표를 추적하여 다양한 게임 플레이 시나리오의 대역폭 요구 사항을 이해합니다.
+ 인스턴스 성능 대시보드를 사용하여 리소스 소비가 가장 높은 게임 세션을 생성하는 게임 시나리오를 식별합니다.

## 높은 리소스 사용률 응답
<a name="scenario-high-resource-utilization"></a>

**시나리오:** 비정상적인 리소스 스파이크(CPU 85% 초과, 메모리 90% 초과)

**조사 단계:**

### 영향을 받는 리소스 식별
<a name="identify-affected-resources"></a>
+ DescribeGameSessionDetails API를 사용합니다.
+ 필요한 경우 상태별로 필터링합니다.
+ 영향을 받는 인스턴스를 문서화합니다.

### 리소스 사용량 분석
<a name="analyze-resource-usage"></a>
+ 인스턴스 개요 대시보드를 검토합니다.
+ 플릿의 사용률을 비교합니다.
+ 과거 패턴을 확인합니다.

### 게임 서버 영향 모니터링
<a name="monitor-game-server-impact"></a>
+ 서버 성능 지표를 확인합니다.
+ 틱 시간 및 패킷 손실을 검토합니다.
+ 메모리 누수를 모니터링합니다.

### 해결 단계
<a name="resolution-steps"></a>
+ 세션 로그를 다운로드합니다.
+ 빌드 문제를 해결합니다.
+ 개선 사항을 모니터링합니다.

## 게임 서버 충돌 분석
<a name="scenario-server-crashes"></a>

**시나리오:** 플릿 전반의 여러 오류 상태 게임 세션

**조사 단계:**

### 초기 평가
<a name="initial-assessment"></a>
+ 플릿 개요 대시보드에 액세스합니다.
+ 충돌한 세션 테이블을 검토합니다.
+ 타이밍/위치의 패턴을 기록해 둡니다.

### 성능 분석
<a name="performance-analysis"></a>
+ 서버 타이밍 지표를 확인합니다.
+ 리소스 사용률을 검토합니다.
+ 네트워크 성능을 모니터링합니다.

### 인프라 검토
<a name="infrastructure-review"></a>
+ 플릿 용량을 확인합니다.
+ 인스턴스 상태를 확인합니다.
+ 조정 정책을 검토합니다.

### 해결 경로
<a name="resolution-path"></a>
+ 서버 로그를 분석합니다.
+ 코드 최적화를 검토합니다.
+ 수정 사항을 구현합니다.

## 플릿 용량 최적화
<a name="scenario-fleet-optimization"></a>

**시나리오:** 게임 시작 또는 벤치마크 연구

**분석 단계:**

### 리소스 사용률
<a name="resource-utilization"></a>
+ 위치별로 필터링합니다.
+ P50/P95/P99 지표를 검토합니다.
+ 사용 패턴을 분석합니다.

### 인스턴스 유형 분석
<a name="instance-type-analysis"></a>
+ 유형별로 성능을 비교합니다.
+ 확장 대상을 식별합니다.
+ 사용률 패턴을 문서화합니다.

### 최적화 작업
<a name="optimization-actions"></a>
+ 조정 정책을 조정합니다.
+ 인스턴스 유형을 수정합니다.
+ 플릿 구성을 업데이트합니다.

# 문제 해결 가이드
<a name="gamelift-servers-metrics-troubleshooting"></a>

## 일반적인 문제 및 해결 단계
<a name="common-issues-resolution"></a>

### 누락되거나 불완전한 지표
<a name="troubleshooting-missing-metrics"></a>

#### 증상
<a name="missing-metrics-symptoms"></a>
+ 대시보드에 지표가 표시되지 않음.
+ 부분적인 지표 수집.
+ 지연된 지표 업데이트.

#### 해결 단계
<a name="missing-metrics-resolution"></a>

##### A. 수집기 상태 확인
<a name="verify-collector-status"></a>

systemd 서비스 확인:

```
sudo systemctl status gamelift-telemetry-collector
```

수집기 로그 검토:

```
sudo journalctl -u gamelift-telemetry-collector
```
+ 수집기 구성 확인.

##### B. IAM 권한 확인
<a name="iam-permission-verification"></a>
+ 인스턴스 역할 권한 확인.
+ 필요한 정책 확인.
  + `aps:RemoteWrite`
  + `cloudwatch:PutMetricData`
+ 역할 신뢰 관계 검증.

##### C. 네트워크 연결
<a name="network-connectivity"></a>
+ 엔드포인트 액세스 확인.
+ 보안 그룹 규칙 확인.
+ 네트워크 ACL 검토.

### 인증 오류
<a name="troubleshooting-authentication-errors"></a>

#### 증상
<a name="auth-errors-symptoms"></a>
+ SigV4 인증 실패.
+ 액세스 거부됨 메시지 수신.
+ 자격 증명 새로 고침 문제.

#### 해결 단계
<a name="auth-errors-resolution"></a>

##### A. SigV4 인증
<a name="sigv4-authentication"></a>
+ 임시 자격 증명 확인.
+ 자격 증명 교체 확인.
+ 인스턴스 프로파일 검증.

##### B. AMP 액세스
<a name="amp-access"></a>
+ 워크스페이스 구성 검토.
+ 원격 쓰기 URL 확인.
+ IAM 역할 바인딩 확인.

### 대시보드 문제
<a name="troubleshooting-dashboard-issues"></a>

#### 증상
<a name="dashboard-issues-symptoms"></a>
+ 비어 있는 대시보드.
+ 누락된 데이터 포인트.
+ 인증 실패.

#### 해결 단계
<a name="dashboard-issues-resolution"></a>

##### A. 데이터 소스 구성
<a name="data-source-configuration"></a>
+ Prometheus 연결 확인.
+ Amazon CloudWatch 통합 확인.
+ 데이터 소스 권한 테스트.

##### B. Grafana 액세스
<a name="grafana-access"></a>
+ SSO 구성 확인.
+ 필요한 경우 2FA 설정 확인.
+ 사용자 권한 확인.

### Windows 관련 문제
<a name="troubleshooting-windows-issues"></a>

#### 증상
<a name="windows-issues-symptoms"></a>
+ 서비스 시작에 실패.
+ 지표 수집 격차.
+ 권한 오류.

#### 해결 단계
<a name="windows-issues-resolution"></a>
+ Windows 서비스 상태 확인.
+ Windows 이벤트 로그 확인.
+ 수집기 구성 검토.
+ Windows별 경로 검증.