제퍼넷 로고

GamesKraft가 Amazon Redshift 데이터 공유를 사용하여 증가하는 분석 워크로드를 지원하는 방법 | 아마존 웹 서비스

시간

이 게시물은 Gameskraft의 기술 책임자인 Anshuman Varshney가 공동 작성했습니다.

게임크래프트 인도 최고의 온라인 게임 회사 중 하나로, 러미, 루도, 포커 등 다양한 카테고리에 걸쳐 브랜드별로 게임 경험을 제공합니다. 러미컬쳐, 루도 문화, 포켓52플레이십. 게임크래프트가 보유하고 있는 기네스 세계 기록 세계 최대 온라인 러미 토너먼트를 조직했으며 ISO 인증 플랫폼을 구축한 인도 최초의 게임 회사 중 하나입니다.

아마존 레드 시프트 프로비저닝된 옵션과 서버리스 옵션을 모두 제공하는 완전 관리형 데이터 웨어하우징 서비스로, 데이터 웨어하우스를 관리할 필요 없이 분석을 보다 효율적으로 실행하고 확장할 수 있습니다. Amazon Redshift를 사용하면 SQL을 사용하여 데이터 웨어하우스, 운영 데이터베이스 및 데이터 레이크 전반에 걸쳐 정형 및 반정형 데이터를 분석할 수 있으며, AWS가 설계한 하드웨어 및 기계 학습(ML)을 사용하여 대규모로 최고의 가격 대비 성능을 제공할 수 있습니다.

이 게시물에서는 Gameskraft가 Amazon Redshift를 어떻게 사용했는지 보여줍니다. 데이터 공유 와 함께 동시성 확장WLM 최적화 증가하는 분석 워크로드를 지원하기 위해.

Amazon Redshift 사용 사례

Gameskraft는 Amazon Redshift를 사용했습니다. RA3 인스턴스 데이터 웨어하우스를 위해 RMS(Redshift Managed Storage)를 사용합니다. 업스트림 데이터 파이프라인은 다음을 포함한 다양한 데이터 소스를 통합하는 강력한 시스템입니다. 아마존 키네 시스Apache Kafka 용 Amazon Managed Streaming (Amazon MSK) 클릭스트림 이벤트 처리 Amazon 관계형 데이터베이스 서비스 (Amazon RDS) 델타 트랜잭션의 경우 아마존 DynamoDB 델타게임 관련 정보입니다. 또한 제품, 마케팅, 고객 경험과 관련된 데이터가 포함된 데이터가 공급업체 API에서 추출됩니다. 그러면 이 다양한 데이터가 모두 통합되어 아마존 단순 스토리지 서비스 (Amazon S3) 데이터 레이크는 Redshift 데이터 웨어하우스에 업로드되기 전입니다. 이러한 업스트림 데이터 소스는 데이터 생산자 구성 요소를 구성합니다.

Gameskraft는 Amazon Redshift를 사용했습니다. 워크로드 관리(WLM) 데이터 생산자를 위해 중요한 작업을 실행하는 ETL(추출, 변환 및 로드) 대기열에 더 높은 우선 순위가 할당되어 워크로드 내의 우선 순위를 관리합니다. 다운스트림 소비자는 비즈니스 인텔리전스(BI) 도구로 구성되며, 여러 데이터 과학 및 데이터 분석 팀은 적절한 우선순위 값을 가진 자체 WLM 대기열을 가지고 있습니다.

Gameskraft의 게임 제품 포트폴리오가 증가함에 따라 전담 데이터 분석 및 데이터 과학 팀이 약 XNUMX배 성장했습니다. 결과적으로 데이터 통합이 XNUMX배 증가했고 Redshift 클러스터에 제출된 임시 쿼리도 XNUMX배 증가했습니다. 이러한 쿼리 패턴과 동시성은 본질적으로 예측할 수 없습니다. 또한 시간이 지남에 따라 BI 대시보드(예약 및 라이브 모두) 수가 증가하여 Redshift 클러스터에 제출되는 쿼리가 늘어났습니다.

이렇게 증가하는 작업량으로 인해 Gameskraft는 다음과 같은 과제를 관찰하고 있었습니다.

  • 중요한 ETL 작업 런타임 증가
  • 여러 대기열에서 쿼리 대기 시간 증가
  • 클러스터의 다른 대기열에 걸쳐 예측할 수 없는 임시 쿼리 워크로드가 미치는 영향

Gameskraft는 이러한 모든 과제를 완화하고 수집 및 소비 워크로드 처리를 독립적으로 확장할 수 있는 유연성을 제공하는 솔루션을 찾고 있었습니다. Gameskraft는 또한 예측할 수 없는 미래 성장을 충족할 수 있는 솔루션을 찾고 있었습니다.

솔루션 개요

Gameskraft는 다음을 사용하여 이러한 문제를 단계적으로 해결했습니다. Amazon Redshift 동시성 확장, Amazon Redshift 데이터 공유, Amazon Redshift 서버리스및 Redshift 프로비저닝된 클러스터.

Amazon Redshift 동시성 확장을 사용하면 지속적으로 빠른 쿼리 성능으로 수천 명의 동시 사용자와 동시 쿼리를 쉽게 지원할 수 있습니다. 동시성이 증가함에 따라 Amazon Redshift는 쿼리 처리 능력을 몇 초 만에 자동으로 추가하여 지연 없이 쿼리를 처리합니다. 워크로드 수요가 줄어들면 이 추가 처리 능력이 자동으로 제거되므로 동시성 확장 클러스터가 사용되는 시간에 대해서만 비용을 지불하면 됩니다. Amazon Redshift는 활성 클러스터당 매일 1시간의 무료 동시성 확장 크레딧을 제공하므로 매월 30시간의 무료 크레딧을 누적할 수 있습니다.

Gameskraft 지원 동시성 확장 선택적 WLM 대기열 사용량이 가장 많은 동안 해당 대기열의 쿼리 대기 시간을 완화하고 ETL 쿼리 런타임을 줄이는 데도 도움이 되었습니다. 이전 설정에서는 ETL, 임시 쿼리, BI 도구 및 데이터 과학을 위한 XNUMX개의 특수 대기열을 유지했습니다. 다른 프로세스의 방해를 방지하기 위해 다음을 사용하여 최소한의 쿼리 시간 제한을 적용했습니다. 쿼리 모니터링 규칙(QMR). 그러나 ETL 및 BI 도구 대기열이 모두 지속적으로 점유되어 나머지 대기열의 성능에 영향을 미쳤습니다.

동시성 확장은 임시 쿼리 대기열의 쿼리 대기 시간을 줄이는 데 도움이 되었습니다. 그럼에도 불구하고 수집에 영향을 미치는 다운스트림 소비 워크로드(예: 임시 쿼리) 문제는 지속되었으며 Gameskraft는 이러한 워크로드를 독립적으로 관리할 수 있는 솔루션을 찾고 있었습니다.

다음 표에는 솔루션 구현 전 워크로드 관리 구성이 요약되어 있습니다.

용법 동시성 확장 모드 메인/메모리 동시성 % 쿼리 모니터링 규칙
etl 여러 데이터 통합에서 수집하는 경우 오프 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 2700
report 예정된 보고 목적으로 오프 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 600
datascience 데이터 과학 워크로드용 오프 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 300
readonly 임시 및 일일 분석용 자동 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 120
bi_tool BI 도구의 경우 자동 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 300

확장의 유연성을 달성하기 위해 Gameskraft는 다음을 사용했습니다. Amazon Redshift 데이터 공유. Amazon Redshift 데이터 공유를 사용하면 단일 클러스터가 제공하는 사용 편의성, 성능 및 비용 이점을 다중 클러스터 배포로 확장하는 동시에 데이터를 공유할 수 있습니다. 데이터 공유를 사용하면 데이터를 복사하거나 이동할 필요 없이 Amazon Redshift 데이터 웨어하우스 전체에서 즉각적이고 세부적이며 빠른 데이터 액세스가 가능합니다. 데이터 공유는 데이터에 대한 실시간 액세스를 제공하므로 사용자는 데이터 웨어하우스에서 업데이트되는 최신의 일관된 정보를 항상 관찰할 수 있습니다. 프로비저닝된 클러스터, AWS 계정 내의 서버리스 엔드포인트, AWS 계정 및 AWS 리전 전체에서 라이브 데이터를 안전하게 공유할 수 있습니다.

데이터 공유는 RA3 프로비저닝된 클러스터 및 서버리스 작업 그룹을 뒷받침하는 RMS(Redshift Managed Storage)를 기반으로 구축되어 여러 웨어하우스가 별도의 격리된 컴퓨팅으로 동일한 데이터를 쿼리할 수 있도록 합니다. 공유 데이터에 액세스하는 쿼리는 소비자 클러스터에서 실행되며 생산자 클러스터의 성능에 영향을 주지 않고 RMS에서 직접 데이터를 읽습니다. 이제 다양한 데이터 액세스 패턴과 SLA 요구 사항을 갖춘 워크로드를 신속하게 온보딩할 수 있으며 리소스 경합에 대해 걱정할 필요가 없습니다.

우리는 ETL을 독립적으로 관리하기 위해 기본 생산자 클러스터에서 모든 ETL 워크로드를 실행하기로 결정했습니다. 우리는 데이터 공유를 사용하여 데이터 과학 서버리스 작업 그룹, BI 프로비저닝 클러스터, 임시 쿼리 프로비저닝 클러스터 및 데이터 통합 ​​서버리스 작업 그룹과 데이터에 대한 읽기 전용 액세스를 공유했습니다. 이러한 별도의 컴퓨팅 리소스를 사용하는 팀은 생산자와 소비자 간에 데이터를 복사하지 않고도 동일한 데이터를 쿼리할 수 있습니다. 또한 소비자 대기열에 동시성 확장을 도입하여 BI 도구의 우선 순위를 지정하고 나머지 대기열에 대한 시간 제한을 연장했습니다. 이러한 수정으로 전반적인 효율성과 처리량이 눈에 띄게 향상되었습니다.

다음 표에는 생산자 클러스터에 대한 새로운 워크로드 관리 구성이 요약되어 있습니다.

용법 동시성 확장 모드 메인/메모리 동시성 % 쿼리 모니터링 규칙
etl 여러 데이터 통합에서 수집하는 경우 자동 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 3600

다음 표에는 소비자 클러스터에 대한 새로운 워크로드 관리 구성이 요약되어 있습니다.

용법 동시성 확장 모드 메인/메모리 동시성 % 쿼리 모니터링 규칙
report 예정된 보고 목적으로 오프 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 1200
쿼리 대기열 시간(초) > 1800
스펙트럼 스캔 행 수(행) > 100000
스펙트럼 스캔(MB) > 3072
datascience 데이터 과학 워크로드용 오프 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 600
쿼리 대기열 시간(초) > 1800
스펙트럼 스캔 행 수(행) > 100000
스펙트럼 스캔(MB) > 3072
readonly 임시 및 일일 분석용 자동 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 900
쿼리 대기열 시간(초) > 3600
스펙트럼 스캔(MB) > 3072
스펙트럼 스캔 행 수(행) > 100000
bi_tool_live 라이브 BI 도구의 경우 자동 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 900
쿼리 대기열 시간(초) > 1800
스펙트럼 스캔(MB) > 1024
스펙트럼 스캔 행 수(행) > 1000
bi_tool_schedule 예약된 BI 도구의 경우 자동 자동 다음에 대한 작업 중지:
쿼리 런타임(초) > 1800
쿼리 대기열 시간(초) > 3600
스펙트럼 스캔(MB) > 1024
스펙트럼 스캔 행 수(행) > 1000

솔루션 구현

Gameskraft는 중단 없는 시스템 운영을 유지하고 가동 중지 시간보다 원활한 솔루션을 우선시하는 데 전념하고 있습니다. 이 원칙을 추구하면서 데이터 공유를 위한 원활한 마이그레이션 프로세스를 보장하기 위한 전략적 조치가 취해졌으며 여기에는 다음 단계가 포함됩니다.

  • 계획 :
    • 분석, 데이터 과학 및 BI 팀의 잠재적인 액세스 복잡성을 완화하기 위해 사용자 및 그룹을 소비자에게 복제합니다.
    • 외부 스키마와 같은 필수 구성 요소를 포함하여 소비자 내에 포괄적인 설정을 설정합니다. 아마존 레드시프트 스펙트럼.
    • 소비자의 요구 사항에 맞게 WLM 구성을 미세 조정합니다.
  • 구현 :
    • 소비자 클러스터별 CPU 활용도, 읽기/쓰기 처리량, IOPS 및 대기 시간에 대한 통찰력 있는 모니터링 대시보드를 Grafana에 도입하여 감독 기능을 강화합니다.
    • 생산자 클러스터의 모든 인터리브 키 테이블을 복합 정렬 키 테이블로 변경하여 데이터를 원활하게 전환합니다.
    • 소비자의 데이터 공유 데이터베이스에서 외부 스키마를 생성하고 동일한 이름을 가진 생산자 클러스터의 스키마를 미러링합니다. 이 접근 방식을 사용하면 여러 위치에서 쿼리를 조정할 필요성이 최소화됩니다.
  • 테스트 :
    • 동일한 워크로드와 두 배의 워크로드를 실행하여 모든 데이터 포인트를 꼼꼼하게 검증하기 위해 일주일 동안 내부 회귀 테스트 및 감사 프로세스를 수행합니다.
  • 최종 변경 :
    • 소비자 클러스터의 엔드포인트를 생산자 클러스터의 엔드포인트와 동일한 도메인으로 바꾸는 것을 포함하여 클러스터 엔드포인트에 대한 DNS 레코드를 업데이트하여 연결을 간소화하고 여러 위치에서 변경하는 것을 방지합니다.
    • 생산자 클러스터에서 그룹 및 사용자 권한을 취소하여 데이터 보안 및 액세스 제어를 보장합니다.

다음 다이어그램은 Gameskraft Amazon Redshift 데이터 공유 아키텍처를 보여줍니다.

이 다이어그램은 Gameskraft Amazon Redshift 데이터 공유 아키텍처를 보여줍니다.

다음 다이어그램은 여러 소비자 클러스터를 사용한 Amazon Redshift 데이터 공유 아키텍처를 보여줍니다.

이 다이어그램은 여러 소비자 클러스터를 사용한 Amazon Redshift 데이터 공유 아키텍처를 보여줍니다.

데이터 공유 구현을 통해 Gameskraft는 생산자와 소비자 워크로드를 분리할 수 있었습니다. 또한 데이터 공유는 생산자와 소비자 데이터 웨어하우스를 독립적으로 확장할 수 있는 유연성을 제공했습니다.

전체 솔루션의 구현을 통해 Gameskraft는 생산자 클러스터에서 실행되는 ETL 워크로드에 대해 더 빈번한 데이터 새로 고침(전체 작업 런타임의 43% 감소)을 지원하는 동시에 증가하는(사용자 BI의 XNUMX배 증가) 지원 기능을 지원하는 데 도움이 되었습니다. 워크로드 및 임시 쿼리) 및 예측할 수 없는 소비자 워크로드입니다.

다음 대시보드는 중요한 ETL 파이프라인 런타임 중 일부(솔루션 구현 전과 솔루션 구현 후)를 보여줍니다.

첫 번째는 솔루션 구현 전후에 실행되는 델타 P1/P2/P3 작업을 보여줍니다(기간: 분).

이 스크린샷은 솔루션 구현 전후(분 단위)의 델타 P1/P2/P3 작업 실행을 보여줍니다.

다음은 솔루션 구현 전후(분 단위)의 일일 이벤트 ETL P1/P2/P3 작업 실행을 보여줍니다.

이 스크린샷은 솔루션 구현 전후(분 단위)의 일일 이벤트 ETL P1/P2/P3 작업 실행을 보여줍니다.

주요 고려 사항

Gameskraft는 Amazon S3에 데이터 레이크가 있는 최신 데이터 아키텍처를 수용합니다. 데이터 레이크에 대한 원활한 액세스를 제공하기 위해 우리는 데이터 웨어하우스(Amazon Redshift)와 데이터 레이크(Amazon S3) 사이를 연결하는 Redshift Spectrum의 혁신적인 기능을 사용합니다. 이를 통해 데이터를 Redshift 클러스터에 복제할 필요 없이 Amazon S3에 저장된 데이터에 대해 직접 데이터 변환 및 분석을 수행할 수 있습니다.

Gameskraft는 이 데이터 공유 솔루션을 구현하는 동안 몇 가지 주요 교훈을 얻었습니다.

  • 첫째, 이 글을 쓰는 시점에서 Amazon Redshift 데이터 공유는 지원하지 않습니다 외부 스키마, 테이블 또는 외부 테이블의 런타임 바인딩 뷰를 데이터 공유에 추가합니다. 이를 가능하게 하기 위해 우리는 포인터로 외부 스키마를 만들었습니다. AWS 접착제 데이터 베이스. 동일한 AWS Glue 데이터베이스가 소비자 측의 외부 스키마에서 참조됩니다.
  • 둘째, Amazon Redshift는 인터리브 정렬 키가 있는 테이블과 인터리브 정렬 키가 있는 테이블을 참조하는 보기를 공유하는 것을 지원하지 않습니다. 수많은 테이블과 뷰에 인터리브된 정렬 키가 있기 때문에 데이터 공유에 포함하기 위한 전제 조건에는 복합 정렬 키를 사용하도록 정렬 키 구성을 수정하는 것이 포함됩니다.

결론

이 게시물에서는 Gameskraft가 생산자 및 소비자 클러스터 아키텍처와 함께 Amazon Redshift에서 데이터 공유 및 동시성 확장을 사용하여 다음을 달성하는 방법을 살펴보았습니다.

  • 생산자와 소비자의 모든 대기열에 대한 쿼리 대기 시간을 줄입니다.
  • 워크로드 및 대기열 요구 사항에 따라 생산자와 소비자를 독립적으로 확장
  • ETL 파이프라인 성능과 데이터 새로 고침 주기를 개선하여 생산자 클러스터에서 더 자주 새로 고침을 지원합니다.
  • 생산자 클러스터의 ETL 파이프라인에 영향을 주지 않고 소비자의 더 많은 대기열 및 워크로드(BI 도구 대기열, 데이터 통합 ​​대기열, 데이터 과학 대기열, 다운스트림 팀 대기열, 임시 쿼리 대기열)를 온보딩합니다.
  • 프로비저닝된 Redshift 클러스터와 Redshift Serverless를 혼합하여 여러 소비자를 사용할 수 있는 유연성

이러한 Amazon Redshift 기능과 아키텍처는 증가하고 예측할 수 없는 분석 워크로드를 지원하는 데 도움이 될 수 있습니다.


저자에 관하여

안슈만 바쉬니 백엔드와 데이터 엔지니어링에 대한 배경 지식을 갖춘 Gameskraft의 기술 책임자입니다. 그는 고성능의 확장 가능한 솔루션을 제공하기 위해 다기능 팀을 이끌고 멘토링한 입증된 실적을 보유하고 있습니다. 업무 외에도 그는 가족과 함께 즐거운 시간을 보내고 영화적 경험을 즐기며 여행을 통해 새로운 목적지를 탐험할 수 있는 모든 기회를 포착합니다.

프라풀라 와니 AWS의 Amazon Redshift 전문가 솔루션 아키텍트입니다. 그는 분석 아키텍처 설계 및 Amazon Redshift 개념 증명에 대해 AWS 고객과 협력하고 있습니다. 여가 시간에는 아들과 함께 체스를 칩니다.

사우로프 낸디 AWS의 솔루션스 아키텍트입니다. 그는 AWS 고객과 협력하여 복잡한 비즈니스 문제를 해결하는 솔루션을 설계하고 구현합니다. 여가 시간에는 새로운 장소를 탐험하고 사진과 비디오 편집에 빠져드는 것을 좋아합니다.

샤생크 테와리 AWS의 수석 기술 계정 관리자입니다. 그는 AWS 고객이 아키텍처를 최적화하여 성능, 규모 및 비용 효율성을 달성하도록 돕습니다. 여가 시간에는 아이들과 비디오 게임을 하는 것을 좋아합니다. 휴가 기간 동안 그는 산에 트레킹하고 모험 스포츠를 즐기는 것을 좋아합니다.

spot_img

최신 인텔리전스

spot_img