View a markdown version of this page

시나리오 3: 데이터 인사이트 프로세스를 위한 클릭스트림 데이터 준비 - Amazon Kinesis를 사용한 AWS 기반 스트리밍 데이터 솔루션

시나리오 3: 데이터 인사이트 프로세스를 위한 클릭스트림 데이터 준비

Fast Sneakers는 트렌디한 스니커즈를 주력 상품으로 하는 패션 부티크입니다. 재고나 트렌드(예: 지난 밤 TV에서 유명 브랜드 스니커즈를 착용한 유명인이나 스포츠 스타가 출현한 경우)에 따라 해당 신발 한 켤레의 가격이 오르거나 내릴 수 있습니다. 이러한 트렌드를 추적하고 분석하여 수익을 극대화하는 것이 Fast Sneakers에게는 중요합니다.

Fast Sneakers는 유지 관리가 필요한 새로운 인프라로 인해 프로젝트에 추가 오버헤드가 발생하는 것을 원하지 않습니다. 또한 개발을 적합한 담당자로 분할하여, 데이터 엔지니어는 데이터 변환에 집중하고 데이터 사이언티스트는 기계 학습 기능에 대한 작업을 독립적으로 할 수 있기를 바랍니다.

수요에 따라 신속하게 대응하고 자동으로 가격을 조정하기 위해 Fast Sneakers는 중요한 이벤트(예: 관심 항목 클릭 및 구매 데이터)를 스트리밍하여 이벤트 데이터를 변환 및 보강하고 기계 학습 모델에 제공합니다. 이 업체의 기계 학습 모델은 가격 조정이 필요한지 여부를 결정할 수 있습니다. 이를 통해 Fast Sneakers는 가격을 자동으로 조정하여 제품의 수익을 극대화할 수 있습니다.

Fast Sneakers 실시간 가격 조정

Fast Sneakers 실시간 가격 조정

이 아키텍처 다이어그램은 Fast Sneakers가 Kinesis Data Streams, AWS Glue 및 DynamoDB Streams를 사용하여 생성한 실시간 스트리밍 솔루션을 보여 줍니다. Fast Sneakers는 이러한 서비스를 활용하여 지원 인프라를 설정하고 유지 관리하는 데 시간을 소비하지 않고도 탄력적이고 안정적인 솔루션을 구축할 수 있습니다. 스트리밍 추출, 변환 및 로드(ETL) 작업과 기계 학습 모델에 집중하여 가치를 창출하는 데 시간을 할애할 수 있습니다.

다음은 이 업체의 워크로드에 사용되는 아키텍처 및 기술에 대한 이해를 돕는 사용된 서비스에 대한 몇 가지 세부 정보입니다.

AWS Glue 및 AWS Glue 스트리밍

AWS Glue는 데이터를 카탈로그화하고, 정리하고, 보강하고, 데이터 스토어 간에 안정적으로 이동하는 데 사용할 수 있는 완전관리형 ETL 서비스입니다. AWS Glue를 사용하면 ETL 작업 생성에 따르는 비용, 복잡성 및 시간을 크게 줄일 수 있습니다. AWS Glue는 서버리스이므로 설정하거나 관리할 인프라가 없습니다. 작업이 실행되는 동안 사용한 리소스에 대한 비용만 지불하면 됩니다.

AWS Glue를 활용하여 AWS Glue 스트리밍 ETL 작업으로 소비자 애플리케이션을 생성할 수 있습니다. 이를 통해 Apache Spark 및 기타 Spark 기반 모듈 쓰기를 활용하여 이벤트 데이터를 사용하고 처리할 수 있습니다. 이 문서의 다음 단원에서는 이 시나리오에 대해 자세히 설명합니다.

AWS Glue Data Catalog

AWS Glue Data Catalog에는 AWS Glue에서 ETL 작업의 소스 및 대상으로 사용되는 데이터에 대한 참조가 포함되어 있습니다. AWS Glue Data Catalog는 데이터의 위치, 스키마 및 런타임 지표에 대한 인덱스입니다. ETL 작업을 생성하고 모니터링하는 데 데이터 카탈로그의 정보를 사용할 수 있습니다. 데이터 카탈로그의 정보는 메타데이터 테이블로 저장되며 여기서 각 테이블은 단일 데이터 스토어를 지정합니다. 크롤러를 설정하면 DynamoDB, S3 및 JDBC(Java Database Connectivity) 연결 스토어를 비롯한 다양한 유형의 데이터 스토어를 자동으로 평가하고 메타데이터와 스키마를 추출한 다음 AWS Glue Data Catalog에서 테이블 정의를 생성할 수 있습니다.

AWS Glue 스트리밍 ETL 작업에서 Amazon Kinesis Data Streams를 사용하려면 AWS Glue Data Catalog 데이터베이스의 테이블에 스트림을 정의하는 것이 좋습니다. 지원되는 여러 형식(CSV, JSON, ORC, Parquet, Avro 또는 Grok을 사용한 고객 형식) 중 하나인 Kinesis 스트림을 사용하여 스트림 소스 테이블을 정의합니다. 스키마를 직접 입력하거나 이 단계를 AWS Glue 작업에 맡겨 작업 런타임 중에 결정할 수 있습니다.

AWS Glue 스트리밍 ETL 작업

AWS Glue는 Apache Spark 서버리스 환경에서 ETL 작업을 실행합니다. AWS Glue는 이런 작업을 가상 리소스에서 실행하여 자체 서비스 계정을 프로비저닝하고 관리합니다. Apache Spark 기반 작업을 실행할 수 있을 뿐만 아니라 AWS Glue는 DynamicFrames를 사용하여 Spark를 기반으로 더 높은 수준의 기능을 제공합니다.

DynamicFrames는 구조체 및 배열과 같은 중첩 데이터를 지원하는 분산 테이블입니다. 각 레코드는 자기 설명적이며 반정형 데이터가 있는 스키마 유연성을 위해 설계되었습니다. DynamicFrame의 레코드에는 데이터와 데이터를 설명하는 스키마가 모두 포함됩니다. Apache Spark DataFramesDynamicFrames는 모두 ETL 스크립트에서 지원되며 서로 변환할 수 있습니다. DynamicFrames는 데이터 정리 및 ETL을 위한 일련의 고급 변환을 제공합니다.

AWS Glue 작업에서 Spark Streaming을 사용하면 지속적으로 실행되는 스트리밍 ETL 작업을 생성하고 Amazon Kinesis Data Streams, Apache Kafka 및 Amazon MSK와 같은 스트리밍 소스의 데이터를 사용할 수 있습니다. 이 작업은 데이터를 정리, 병합 및 변환한 다음 Amazon S3, Amazon DynamoDB 또는 JDBC 데이터 스토어를 포함한 스토어로 결과를 로드할 수 있습니다.

기본적으로 AWS Glue는 100초 동안 데이터를 처리하고 작성합니다. 이를 통해 데이터를 효율적으로 처리할 수 있으며 예상보다 늦게 도착하는 데이터에 대해 집계를 수행할 수 있습니다. 응답 속도와 집계의 정확도를 적절하게 조정하여 기간을 구성할 수 있습니다. AWS Glue 스트리밍 작업은 체크포인트를 사용하여 Kinesis Data Streams에서 읽은 데이터를 추적합니다. AWS Glue에서 스트리밍 ETL 작업을 생성하는 방법에 대한 연습은 AWS Glue에서 스트리밍 ETL 작업 추가를 참조하세요.

Amazon DynamoDB

Amazon DynamoDB는 모든 규모에서 10밀리초 미만의 성능을 제공하는 키–값 및 문서 데이터베이스입니다. 완전관리형의 내구성이 뛰어난 다중 리전, 다중 활성 데이터베이스로서, 인터넷 규모 애플리케이션을 위한 보안, 백업 및 복원, 인 메모리 캐싱 기능을 기본적으로 제공합니다. DynamoDB는 하루에 10조 개가 넘는 요청을 처리할 수 있으며 초당 2천만 개 이상의 요청까지 지원할 수 있습니다.

DynamoDB 스트림에 대한 변경 데이터 캡처

DynamoDB 스트림은 DynamoDB 테이블 항목의 변경에 대한 정렬된 정보 흐름입니다. 테이블에서 스트림을 활성화하면 DynamoDB가 테이블의 데이터 항목에 발생한 모든 변경 정보를 캡처합니다. DynamoDB는 DynamoDB 스트림의 이벤트에 자동으로 응답하는 코드 조각인 트리거를 만들 수 있도록 AWS Lambda에서 실행됩니다. 트리거를 사용하면 DynamoDB 테이블의 데이터 수정에 응답하는 애플리케이션을 구축할 수 있습니다.

테이블에서 스트림을 활성화할 경우 스트림 Amazon 리소스 이름(ARN)을 사용자가 작성한 Lambda 함수와 연결할 수 있습니다. 테이블의 항목이 수정되는 즉시 새로운 레코드가 테이블의 스트림에 표시됩니다. AWS Lambda는 새로운 스트림 레코드가 감지될 때마다 스트림을 폴링하고 Lambda 함수를 동기식으로 호출합니다.

Amazon SageMaker 및 Amazon SageMaker 서비스 엔드포인트

Amazon SageMaker는 개발자와 데이터 사이언티스트가 어떤 규모에서도 기계 학습 모델을 빠르게 구축, 훈련 및 배포할 수 있도록 지원하는 완전관리형 플랫폼입니다. SageMaker에는 함께 사용하거나 개별적으로 사용하여 기계 학습 모델을 구축, 훈련 및 배포할 수 있는 모듈이 포함되어 있습니다. Amazon SageMaker 서비스 엔드포인트를 사용하면 Amazon SageMaker 내부 또는 외부에서 개발한 배포된 모델을 통해 실시간 추론을 위한 관리형 호스팅 엔드포인트를 생성할 수 있습니다.

AWS SDK를 사용하면 콘텐츠와 함께 콘텐츠 유형 정보를 전달하는 SageMaker 엔드포인트를 호출한 다음 전달된 데이터를 기반으로 실시간 예측을 수신할 수 있습니다. 이를 통해 추론된 결과에 대한 작업을 수행하는 코드와 기계 학습 모델의 설계 및 개발을 분리할 수 있습니다.

이렇게 하면 데이터 사이언티스트가 기계 학습에 집중할 수 있고 기계 학습 모델을 사용하는 개발자는 코드에서 기계 학습을 사용하는 방법에 집중할 수 있습니다. SageMaker에서 엔드포인트를 호출하는 방법에 대한 자세한 내용은 InvokeEnpoint in the Amazon SageMaker API Reference(Amazon SageMaker API 참조의 InvokeEnpoint)를 참조하세요.

실시간으로 데이터 인사이트 추론

위의 아키텍처 다이어그램은 Fast Sneakers의 기존 웹 애플리케이션이 웹 사이트의 트래픽 및 이벤트 데이터를 제공하는 클릭스트림 이벤트가 포함된 Kinesis 데이터 스트림을 추가했음을 보여 줍니다. 분류, 제품 속성, 가격 등의 정보가 포함된 제품 카탈로그와 주문 품목, 결제, 배송 등의 데이터가 있는 주문 테이블은 별도의 DynamoDB 테이블입니다. 데이터 스트림 소스와 적절한 DynamoDB 테이블에는 AWS Glue 스트리밍 ETL 작업에서 사용할 수 있도록 AWS Glue Data Catalog에 정의된 메타데이터와 스키마가 있습니다.

Fast Sneakers는 Apache Spark, Spark Streaming 및 DynamicFrames를 AWS Glue 스트리밍 ETL 작업에 활용하여 데이터 스트림에서 데이터를 추출하고 변환함으로써 제품 및 주문 테이블의 데이터를 병합할 수 있습니다. 변환에서 하이드레이션된 데이터를 사용하면 추론 결과를 가져올 데이터 집합이 DynamoDB 테이블로 제출됩니다.

테이블에 대한 DynamoDB 스트림은 새로 작성된 각 레코드에 대해 Lambda 함수를 트리거합니다. Lambda 함수는 이전에 변환된 레코드를 AWS SDK와 함께 SageMaker 엔드포인트에 제출하여 제품에 필요한 가격 조정(있는 경우)을 추론합니다. 가격 조정이 필요하다고 기계 학습 모델이 식별하면 Lambda 함수는 카탈로그 DynamoDB 테이블의 제품에 가격 변동을 기록합니다.

요약

Amazon Kinesis Data Streams를 사용하면 실시간 스트리밍 데이터를 손쉽게 수집, 처리 및 분석할 수 있으므로 적시에 인사이트를 확보하고 새로운 정보에 신속하게 대응할 수 있습니다. AWS Glue 서버리스 데이터 통합 서비스와 함께 사용하면 기계 학습용 데이터를 준비하고 결합하는 실시간 이벤트 스트리밍 애플리케이션을 만들 수 있습니다.

Kinesis Data Streams와 AWS Glue 서비스 모두 완전관리형 서비스이므로, AWS는 빅 데이터 플랫폼을 위한 인프라 관리의 획일적인 부담을 덜어주고 사용자는 데이터를 기반으로 데이터 인사이트를 생성하는 데 집중할 수 있습니다.

Fast Sneakers는 실시간 이벤트 처리 및 기계 학습을 활용하여 웹 사이트에서 완전 자동화된 실시간 가격 조정을 수행하여 제품 재고를 최적화할 수 있습니다. 이를 통해 빅 데이터 플랫폼을 만들고 유지 관리하지 않고도 비즈니스 가치를 극대화할 수 있습니다.