기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
GAMEOPS03-BP03 로드 테스트를 조기에 자주 수행
로드 테스트는 시스템의 실제 트래픽을 시뮬레이션하여 신뢰성과 성능을 평가하는 프로세스입니다.
이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준: 높음
구현 지침
로드 테스트는 리소스의 성능 기준을 개발하고 시스템의 용량을 이해하는 데 있어 핵심 요소입니다.이 요소는 재무 예측, 아키텍처 설계, 리소스 할당, 자동화된 조정 구성 및 출시 후 조정 전 활동을 안내할 수 있습니다. 추가 혜택은 다음과 같습니다.
-
최적화된 인프라: 리소스가 초과되거나 과소 프로비저닝될 수 있습니다. 필요한 리소스를 이해하면 비용이 절감되고 관리할 인프라가 줄어듭니다.
-
확장성 준비: 특정 메커니즘과 기능은 사용자를 게임으로 빠르게 유도할 수 있습니다. 규모를 조정하는 시기와 방법을 아는 것은 수요 증가를 적절하게 충족하고 플레이어를 잃는 것의 차이일 수 있습니다. 로드 테스트 결과를 사용하여 다양한 조정 수준에서 시스템 임계값, 알림 포인트 및 중요 알림 포인트를 사용하여 런북을 준비합니다.
-
더 높은 품질의 코드: 서비스 간 과도한 크로스톡, 배치되지 않은 데이터베이스 호출, 비효율적인 알고리즘, 메모리 누수 및 서비스 성능 저하 문제와 같은 문제가 대규모로 식별하기 더 간단한 경우가 있습니다.
-
동작 검증: 다양한 종류의 실패를 테스트에 주입하면 시스템의 예상 동작을 검증하거나 수정해야 하는 오류 처리 문제를 발견할 수 있습니다.
개발자는 개발 프로세스 전반에 걸쳐 여러 지점에서 로드 테스트를 수행하는 것이 가장 좋습니다. 각 단계에서는 다양한 이점을 얻을 수 있기 때문입니다. 초기에는 변경을 수행하는 것이 더 저렴하고 간단하면서도 아키텍처 결정과 리팩터링 작업을 안내합니다. 각 스프린트 또는 반복이 끝나면 최신 기능을 사용하여 애플리케이션의 성능을 검증합니다.
프로덕션에 배포하기 전에 예상되는 실제 사용 패턴을 시뮬레이션하는 대규모 로드 테스트는 프로덕션 워크로드를 처리하는 시스템의 능력을 확인합니다. 배포 후 정기적인 로드 테스트는 시스템 성능을 모니터링하고 시간 경과에 따라 발생할 수 있는 변경 사항 또는 병목 현상을 식별합니다.
플레이어 트래픽을 시뮬레이션하려면 게임 클라이언트 흐름을 에뮬레이션하고 게임 백엔드와 트랜잭션하여 실제 플레이어 동작을 시뮬레이션하는 경량 클라이언트 또는 봇이 필요합니다. 이 데이터는 일반적으로 게임 플레이 로그와 인간 기반 QA 테스트에서 생성된 데이터를 통해 캡처될 뿐만 아니라 실제 플레이어가 게임의 조기 액세스 빌드를 플레이하도록 초대되는 실제 제한적 규모 알파 또는 베타 테스트를 통해 캡처됩니다.
향후 발생할 수 있는 장애 문제를 해결하고 향후 로드 테스트를 비교할 수 있는 성능 지표를 유지하려면 운영 실행서에 시스템 동작을 기록하는 것이 중요합니다. 또한 인간 QA 담당자가 로드 테스트 중에 게임을 테스트하도록 하는 것이 좋습니다. 봇이 식별하지 못하고 지표가 반영되지 않는 문제를 발견할 수 있기 때문입니다.
AWS Fault Injection Service
구현 단계
-
제공된 배포 파일을 사용하여 EKS 클러스터 내에서 Locust 제어 및 작업자 포드를 사용자 지정하고 배포하여 확장 가능하고 관리 가능한 로드 생성을 지원합니다.
-
로드 테스트 중 시스템 동작과 지표를 운영 런북에 기록하여 향후 문제 해결을 지원하고 성능 기준을 설정합니다.
-
결함 주입 실험을 사용하여 실제 중단을 시뮬레이션하고 시스템 성능, 관찰성 및 복원력에서 숨겨진 문제를 발견합니다.