Q: Amazon Kinesis Analytics란 무엇입니까?

Amazon Kinesis Analytics는 실시간 스트리밍 데이터를 처리 및 분석하는 가장 쉬운 방법입니다. Amazon Kinesis Analytics에서는 표준 SQL을 사용하여 데이터 스트림을 처리하므로 새로운 프로그래밍 언어를 배울 필요가 없습니다. Kinesis Analytics에 수신 데이터 스트림을 지정하고, SQL 쿼리를 작성하고, 결과를 로드할 위치를 지정하기만 하면 됩니다. 그러면 데이터가 수신되는 동안 Kinesis Analytics에서 데이터에 대해 SQL 쿼리를 지속적으로 실행하고 결과를 대상에 전송합니다.

Q: 실시간 스트림 처리란 무엇이고 왜 필요합니까?

실시간 데이터 소스가 폭발적으로 증가하면서 너무나도 빠른 속도로 데이터가 유입되고 있습니다. 모바일 및 웹 애플리케이션에서 수신되는 로그 데이터이든, 전자 상거래 사이트의 구매 데이터 또는 IoT 디바이스의 센서 데이터이든, 모든 데이터는 고객, 조직 및 비즈니스가 지금 무엇을 하고 있는지 알 수 있는 정보를 기업에 제공합니다. 이러한 데이터가 수신되는 대로 가시성을 확보함으로써 비즈니스를 실시간으로 모니터링하고 새로운 비즈니스 기회를 신속하게 활용할 수 있습니다. 예를 들어 고객이 특정 시간에 있을만한 장소를 기반으로 프로모션 제안을 하거나 소셜 정서와 변화하는 고객 태도를 모니터링하여 새로운 기회를 파악하고 조치를 취할 수 있습니다.

이러한 기회를 활용하려면 기존에 정적 저장 데이터에 사용했던 분석 도구와는 다른, 즉 실시간 스트리밍 데이터를 수집 및 분석할 수 있는 분석 도구 세트가 필요합니다. 기존 분석에서는 정보를 수집하여 데이터베이스에 저장한 후, 몇 시간, 며칠 또는 몇 주 후에 이를 분석합니다. 실시간 데이터 분석을 위해서는 다른 접근 방식과 다른 도구 및 서비스가 필요합니다. 저장된 데이터에 대해 데이터베이스 쿼리를 실행하는 대신, 스트리밍 분석 플랫폼은 데이터가 데이터베이스에 저장되기 전에 지속적으로 데이터를 처리합니다. 스트리밍 데이터는 놀라운 속도로 이동하며 그 속도는 계속해서 변합니다. 스트리밍 분석 플랫폼은 이러한 데이터가 수신되는 대로 처리할 수 있어야 하며, 수신 속도는 시간당 수백 만개의 이벤트인 경우가 대부분입니다.

Q: Kinesis Analytics로 어떤 작업을 할 수 있습니까?

실시간으로 데이터를 계속해서 수집하고 며칠이나 몇 주를 기다릴 필요 없이 몇 초나 몇 분 만에 정보와 통찰력을 얻기 원하는 거의 모든 사용 사례에 Kinesis Analytics를 사용할 수 있습니다. 특히 Kinesis Analytics를 사용하면 로그 분석, 클릭스트림 분석, 사물 인터넷(IoT), 광고 기술, 게임 등을 위한 엔드 투 엔드 스트림 처리 애플리케이션을 신속하게 구축할 수 있습니다. 가장 일반적인 사용 패턴 세 가지는 시계열 분석, 실시간 대시보드, 실시간 경보 및 알림입니다.

시계열 분석 생성

시계열 분석을 사용하면 시간이 지나면서 데이터가 어떻게 움직이는지 모니터링하고 이해할 수 있습니다. Kinesis Analytics에서는 일정 기간 동안 시계열 분석을 지속적으로 생성하는 SQL 코드를 작성할 수 있습니다. 예를 들어 모바일 게임의 경우 1분 간격으로 상위 플레이어를 계산하여 이를 Amazon S3로 전송함으로써 라이브 순위표를 만들 수 있습니다. 또는 5분 간격으로 웹 사이트의 고유 방문자 수를 계산하고 처리된 결과를 Amazon Redshift에 전송함으로써 웹 사이트에 대한 트래픽을 추적할 수 있습니다.

실시간 대시보드 제공

쿼리 결과를 컴퓨팅하고 이를 라이브 대시보드로 내보내는 애플리케이션을 구축하여 거의 실시간으로 데이터를 시각화할 수 있습니다. 예를 들어 애플리케이션은 비즈니스 지표(예: 제품 카테고리별로 그룹화한 전자 상거래 사이트의 구매 건수)를 지속적으로 계산한 후, 결과를 Amazon Redshift로 전송하여 원하는 비즈니스 인텔리전스 도구로 이를 시각화할 수 있습니다. 애플리케이션에서 로그 데이터를 처리하고, 애플리케이션의 오류 수를 계산한 후, 결과를 Amazon Elasticsearch Service로 전송하여 Kibana를 통해 시각화하는 예도 고려해 보십시오.

실시간 경보 및 공지 생성

특정 지표가 미리 정의된 임계값에 도달하는 경우 또는 좀 더 고급 사례에서는 애플리케이션이 AWS에서 제공하는 기계 학습 알고리즘을 사용하여 이상을 탐지하는 경우에 실시간 경보 또는 알림을 전송하는 애플리케이션을 구축할 수 있습니다. 예를 들어 시간이 지나면서 애플리케이션이 고객 관련 API의 가용성 또는 성공률을 계산한 후, 결과를 Amazon CloudWatch로 전송할 수 있습니다. 특정 범주에 해당하는 이벤트를 찾은 후 Kinesis Streams 및 Amazon Simple Notification Service(SNS)를 사용하여 적절한 고객에게 자동으로 알림을 전송하도록 애플리케이션을 구축할 수도 있습니다.

Q: Kinesis Analytics를 시작하려면 어떻게 해야 합니까?

Kinesis Analytics 콘솔에 로그인하여 새로운 스트림 처리 애플리케이션을 생성합니다. AWS CLIAWS SDK도 사용할 수 있습니다. 다음과 같은 간단한 세 가지 단계로 엔드 투 엔드 애플리케이션을 구축할 수 있습니다. 1) 수신 스트리밍 데이터 구성, 2) SQL 쿼리 작성, 3) 결과를 로드할 위치 지정. Kinesis Analytics는 JSON, CSV 및 TSV와 같은 표준 데이터 형식을 인식하고 기본 스키마를 자동으로 생성합니다. 이 스키마를 미세 조정하거나, 입력 데이터가 비정형인 경우에는 AWS의 직관적 스키마 편집기를 사용하여 새로운 스키마를 정의할 수 있습니다. 그런 다음 사용자가 표준 SQL 쿼리를 작성할 수 있도록 Kinesis Analytics에서 이 스키마를 입력 스트림에 적용하고 입력 스트림이 지속적으로 업데이트되는 SQL 테이블처럼 보이게 만듭니다. AWS SQL 편집기를 사용하여 쿼리를 작성할 수 있습니다. SQL 편집기에서는 라이브 데이터의 구문 검사 및 테스트를 비롯하여 각종 부가 기능을 지원합니다. 또한, AWS에서는 간단한 스트림 필터에서 고급 이상 탐지 및 상위 K 분석에 이르기까지 모든 기능에 대한 SQL 코드가 포함된 템플릿을 제공합니다. Kinesis Analytics에서는 필요한 데이터 처리량을 제공할 수 있도록 모든 인프라를 프로비저닝하고 탄력적으로 조정합니다. 사용자는 인프라를 계획, 프로비저닝 또는 관리할 필요가 없습니다.

Q: Kinesis Analytics에 대한 한도에는 어떤 것이 있습니까?

Kinesis Analytics는 대부분의 시나리오에서 소스 스트림의 데이터 처리량과 쿼리의 복잡성을 수용할 수 있도록 애플리케이션을 탄력적으로 조정합니다. 하지만 Amazon Kinesis Analytics를 사용할 때는 다음의 한도를 고려하시기 바랍니다.

  • 각 레코드는 50KB를 초과할 수 없습니다. 입력 스키마를 정의할 때 50KB보다 큰 레코드를 여러 개의 레코드로 분할할 수 있습니다.
  • 계정에서 AWS 리전당 최대 5개의 Kinesis Analytics 애플리케이션을 생성할 수 있습니다. 서비스 한도 증가 양식을 제출하면 이러한 한도를 늘릴 수 있습니다.
  • 스트림의 데이터를 제대로 처리하기 위해서는 쿼리를 병렬로 실행해야 할 수도 있습니다. 이를 위해서 입력 데이터 스트림이 최대 10개의 인애플리케이션 스트림에 매핑되도록 지정할 수 있습니다.
  • Kinesis 처리 단위(KPU)의 최대 개수는 8개입니다.
  • 결과를 최대 4개의 대상에 유지하도록 애플리케이션 출력을 구성할 수 있습니다.
  • 참조 데이터를 저장하는 Amazon S3 객체의 크기는 최대 1GB가 될 수 있습니다.

Q: Kinesis Analytics 애플리케이션이란 무엇입니까?

애플리케이션은 사용자가 작업하는 Kinesis Analytics 엔터티입니다. Kinesis Analytics 애플리케이션은 실시간으로 스트리밍 데이터를 계속해서 읽고 처리합니다. 수신 스트리밍 데이터를 처리하고 출력을 생성하도록 사용자가 SQL을 사용하여 애플리케이션 코드를 작성합니다. 그러면 Kinesis Analytics가 출력을 구성된 대상에 작성합니다.

각 애플리케이션은 세 가지 기본 요소로 구성됩니다.

  • 입력 – 애플리케이션의 스트리밍 소스. 입력 구성에서 스트리밍 소스를 애플리케이션 입력 스트림에 매핑합니다. 인애플리케이션 스트림은 지속적으로 업데이트되는 테이블과 같습니다. 이 테이블에서 SELECT 및 INSERT SQL 작업을 수행할 수 있습니다. 각 입력 레코드에는 연결된 스키마가 있으며, 이 스키마는 레코드를 인애플리케이션 스트림에 삽입할 때 함께 적용됩니다.
  • 애플리케이션 코드 – 입력을 처리하고 출력을 생성하는 일련의 SQL 문. 가장 간단한 형태의 애플리케이션 코드는 스트리밍 입력에서 선택하여 결과를 스트리밍 출력에 삽입하는 단일 SQL 문이 될 수 있습니다. 또한, 하나의 출력이 다음 SQL 문의 입력으로 공급되는 일련의 SQL 문이 될 수도 있습니다. 그뿐만 아니라 입력 스트림을 여러 스트림으로 분할하고 추가 쿼리를 적용하여 이러한 분할된 스트림을 처리하도록 애플리케이션 코드를 작성할 수 있습니다. 
  • 출력 – 중간 결과를 보관하도록 하나 이상의 인애플리케이션 스트림을 생성할 수 있습니다. 그런 다음 선택 사항으로 특정 인애플리케이션 스트림의 데이터를 외부 대상에 유지하도록 애플리케이션 출력을 구성할 수 있습니다. 

Q: 인애플리케이션 스트림이란 무엇입니까?

인애플리케이션 스트림은 사용자가 SELECT 및 INSERT SQL 작업을 수행할 수 있도록 데이터를 애플리케이션에 지속적으로 저장하는 엔터티입니다. SQL 테이블을 사용할 때와 같은 방식으로 인애플리케이션 스트림과 상호 작용합니다. 하지만 스트림은 데이터가 지속적으로 업데이트된다는 점에서 테이블과 다릅니다. 중간 쿼리 결과를 저장하도록 애플리케이션 코드에서 인애플리케이션 스트림을 추가로 생성할 수 있습니다. 마지막으로, 구성된 입력 및 출력이 인애플리케이션 스트림으로 애플리케이션에 표시됩니다.

Q: Kinesis Analytics 애플리케이션에서 지원되는 입력 유형은 무엇입니까?

Kinesis Analytics에서는 스트리밍 데이터 소스와 참조 데이터 소스라는 두 가지 유형의 입력을 지원합니다. 스트리밍 데이터 소스는 지속적으로 생성되는 데이터로, 애플리케이션에서 읽고 처리합니다. 참조 데이터 소스는 정적 데이터로, 애플리케이션은 스트리밍 소스에서 수신되는 데이터를 보강하는 데 이를 사용합니다. 각 애플리케이션은 스트리밍 데이터 소스와 참조 데이터 소스를 각각 하나씩만 가질 수 있습니다. 애플리케이션은 Amazon Kinesis Streams 또는 Amazon Kinesis Firehose를 비롯하여 스트리밍 데이터 소스의 새로운 데이터를 지속적으로 읽고 처리합니다. 애플리케이션은 SQL JOIN을 통해 스트리밍 데이터 소스를 보강하려는 목적으로 참조 데이터 소스(Amazon S3 등) 전체를 읽습니다.

Q: 참조 데이터 소스란 무엇입니까?

참조 데이터 소스는 정적 데이터로, 애플리케이션은 스트리밍 소스에서 수신되는 데이터를 보강하는 데 이를 사용합니다. 참조 데이터는 S3 버킷에 객체로 저장합니다. 애플리케이션이 시작되면 Kinesis Analytics에서 S3 객체를 읽고 인애플리케이션 SQL 테이블을 생성하여 참조 데이터를 저장합니다. 그러면 애플리케이션 코드에서 이를 인애플리케이션 스트림에 조인할 수 있습니다. UpdateApplication API를 호출하여 데이터를 SQL 테이블에 업데이트할 수 있습니다.

Q: 지원되는 애플리케이션 코드는 무엇입니까?

Kinesis Analytics는 ANSI SQL을 지원하며 스트리밍 데이터를 좀 더 손쉽게 사용할 수 있도록 표준 SQL에 대한 일부 확장을 지원합니다. 또한, Kinesis Analytics에서는 이상 탐지, 근사치 상위 K, 근사치 고유 항목 등을 비롯하여 SQL 함수로 표시된 여러 기계 학습 알고리즘을 제공합니다.

Q: 어떤 대상이 지원됩니까?

Kinesis Analytics는 애플리케이션당 최대 4개의 대상을 지원합니다. SQL 결과를 Amazon S3, Amazon Redshift 및 Amazon Elasticsearch Service(Amazon Kinesis Firehose를 통해), 그리고 Amazon Kinesis Streams에 유지할 수 있습니다. SQL 결과를 Amazon Kinesis Streams에 전송하여 Kinesis Analytics에서 직접 지원하지 않는 대상에 작성하고, AWS Lambda와의 통합을 활용하여 원하는 대상에 전송할 수 있습니다.


Q: 스트리밍 데이터 소스를 설정하려면 어떻게 해야 합니까?

스트리밍 데이터 소스는 Amazon Kinesis 스트림 또는 Amazon Kinesis Firehose 전송 스트림이 될 수 있습니다. Kinesis Analytics 애플리케이션은 새로운 데이터가 수신되는 대로 계속해서 스트리밍 데이터 소스에서 실시간으로 데이터를 읽습니다. 인애플리케이션 스트림을 통해 SQL 코드에서 데이터를 액세스할 수 있습니다. 인애플리케이션 스트림은 SQL 테이블처럼 작동합니다. 여기에서 데이터를 생성, 삽입 및 선택할 수 있기 때문입니다. 하지만 인애플리케이션 스트림은 스트리밍 데이터 소스의 새로운 데이터로 계속 업데이트된다는 것이 다릅니다.

AWS Management Console을 사용하여 스트리밍 데이터 소스를 추가할 수 있습니다. 소스에 대한 자세한 내용은 Kinesis Analytics Developer GuideConfiguring Application Input 섹션을 참조하십시오.

Q: 참조 데이터 소스를 설정하려면 어떻게 해야 합니까?

Amazon S3 객체가 참조 데이터 소스가 될 수 있습니다. Kinesis Analytics 애플리케이션은 실행을 시작할 때 S3 객체 전체를 읽습니다. 테이블을 통해 SQL 코드에서 데이터를 액세스할 수 있습니다. 참조 데이터 소스의 가장 일반적인 사용 사례는 SQL JOIN을 사용하여 스트리밍 데이터 소스에서 수신되는 데이터를 보강하는 것입니다.

AWS CLI를 사용하여 S3 버킷, 객체, IAM 역할 및 연결된 스키마를 지정함으로써 참조 데이터 소스를 추가할 수 있습니다. Kinesis Analytics에서는 애플리케이션이 시작될 때 이 데이터를 로드하고, 업데이트 API 호출이 수행될 때마다 다시 로드합니다.

Q: 어떤 데이터 형식이 지원됩니까?

Kinesis Analytics에서는 DiscoverInputSchema API를 사용하여 스키마를 탐지하고 UTF-8 인코딩 JSON 및 CSV 레코드를 자동으로 파싱합니다. 이 스키마는 인애플리케이션 스트림에 삽입될 때 스트림으로부터 읽는 데이터에 함께 적용됩니다.

구분 기호를 사용하지 않거나 CSV 이외의 다른 구분 기호를 사용하는 기타 UTF-8 인코딩 데이터의 경우 또는 검색 API가 스키마를 모두 검색하지는 못한 경우, 대화식 스키마 편집기를 사용하여 스키마를 정의하거나 문자열 조작 함수를 사용하여 데이터를 구조화할 수 있습니다. 자세한 내용은 Kinesis Analytics Developer Guide에서 Using the Schema Discovery Feature and Related Editing을 참조하십시오.

Q: 내 입력 스트림은 어떻게 SQL 코드에 노출됩니까?

Kinesis Analytics는 사용자가 지정한 스키마를 적용하고, 스트리밍 소스의 경우에는 하나 이상의 인애플리케이션 스키마에 데이터를 삽입하고 참조 소스의 경우에는 단일 SQL 테이블에 데이터를 삽입합니다. 인애플리케이션 스트림의 기본 개수는 사용 사례 대부분의 수요를 충족할 수 있는 수입니다. CloudWatch 지표 MillisBehindLatest에 정의된 바와 같이 애플리케이션이 소스 스트림의 최신 데이터를 처리하지 못하는 경우에는 이 수를 늘려야 합니다. 소스 스트림의 처리량과 쿼리 복잡성 둘 다 필요한 인애플리케이션 스트림의 수에 영향을 줍니다. 소스 스트림에 매핑된 인애플리케이션 스트림의 수를 지정하는 파라미터를 입력 병렬 처리라고 부릅니다.


Q: 내 애플리케이션 코드는 어떤 형태입니까?

애플리케이션 코드는 입력을 처리하고 출력을 생성하는 일련의 SQL 문입니다. 이 SQL 문은 인애플리케이션 스트림과 참조 테이블로 운영됩니다. 인애플리케이션 스트림은 지속적으로 업데이트되는 테이블과 같습니다. 이 테이블에서 SELECT 및 INSERT SQL 작업을 수행할 수 있습니다. 구성된 소스와 대상은 인애플리케이션 스트림을 통해 SQL 코드에 노출됩니다. 또한, 인애플리케이션 스트림을 추가로 생성하여 중간 쿼리 결과를 저장할 수 있습니다.

다음 패턴을 적용하여 인애플리케이션 스트림을 사용할 수 있습니다.

  • SELECT 문은 언제나 INSERT 문의 컨텍스트에서 사용합니다. 행을 선택할 때 결과를 다른 인애플리케이션 스트림에 삽입합니다.
  • INSERT 문은 펌프 컨텍스트에서 사용합니다. 펌프를 사용하여 INSERT 문이 지속되도록 하고 인애플리케이션 스트림에 작성합니다.
  • 펌프를 사용하여 인애플리케이션 스트림을 연결함으로써 하나의 인애플리케이션 스트림에서 선택하여 다른 인애플리케이션 스트림에 삽입합니다. 

다음 SQL 코드는 간단한 사용 가능한 애플리케이션을 제공합니다.

CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (

    ticker_symbol VARCHAR(4),

    change DOUBLE,

    price DOUBLE);

 

CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM    

    SELECT STREAM ticker_symbol, change, price    

    FROM "SOURCE_SQL_STREAM_001";

애플리케이션 코드에 대한 자세한 내용은 Kinesis Analytics Developer Guide에서 Application Code를 참조하십시오.

Q: Kinesis Analytics는 SQL 코드 작성에 어떤 도움이 됩니까?

Kinesis Analytics에는 스트리밍 필터, 텀블링 윈도우, 이상 탐지 등을 비롯하여 일반 사용 사례용 분석 템플릿 라이브러리가 포함되어 있습니다. AWS Management Console에 있는 SQL 편집기에서 이 템플릿에 액세스할 수 있습니다. 애플리케이션을 생성한 후 SQL 편집기로 이동하면 콘솔의 왼쪽 위 모서리에 템플릿이 있습니다.

Q: Kinesis Analytics에서 실시간 이상 탐지를 수행하려면 어떻게 해야 합니까?

Kinesis Analytics에는 이상 탐지를 비롯하여 몇 가지 고급 분석용으로 사전에 구축된 SQL 함수가 포함되어 있습니다. SQL 코드에서 이 함수를 호출하기만 하면 실시간으로 이상 현상을 탐지할 수 있습니다. Kinesis Analytics는 Random Cut Forest 알고리즘을 사용하여 이상 탐지를 구현합니다. Random Cut Forest에 대한 자세한 내용은 Streaming Data Anomaly Detection 백서를 참조하십시오.


Q: 대상은 어떻게 설정합니까?

애플리케이션 코드에서 SQL 문의 출력을 하나 이상의 애플리케이션 스트림에 작성합니다. 원하는 경우 출력 구성을 애플리케이션에 추가하여 특정 인애플리케이션 스트림에 작성된 모든 항목이 최대 4개의 외부 대상에 유지되도록 할 수 있습니다. 이러한 외부 대상은 Amazon S3 버킷, Amazon Redshift 테이블, Amazon Elasticsearch 도메인(Amazon Kinesis Firehose를 통해) 및 Amazon Kinesis 스트림이 될 수 있습니다. 각 애플리케이션은 최대 4개의 대상을 지원할 수 있으며 위의 대상을 원하는 조합으로 구성할 수 있습니다. 자세한 내용은 Kinesis Analytics Developer Guide에서 Configuring Output Streams를 참조하십시오.

Q: 내가 선호하는 대상이 직접 지원되지 않습니다. 이 대상으로 SQL 결과를 전송하려면 어떻게 해야 합니까?

AWS Lambda를 사용하여 직접 지원되지 않는 대상에 작성할 수 있습니다. 결과를 Amazon Kinesis 스트림에 작성한 후 AWS Lambda를 사용하여 처리된 결과를 읽고 원하는 대상으로 전송하는 것이 좋습니다. 자세한 내용은 Kinesis Analytics Developer Guide에서 Example: AWS Lambda Integration을 참조하십시오. 또는 Amazon Kinesis Firehose 전송 스트림을 사용하여 데이터를 Amazon S3로 로드한 후 AWS Lambda 함수를 트리거하여 해당 데이터를 읽고 원하는 대상으로 전송할 수도 있습니다. 자세한 내용은 AWS Lambda Developer Guide에서 Using AWS Lambda with Amazon S3를 참조하십시오.

Q: Kinesis Analytics에서는 어떤 전달 모델을 지원합니까?

Kinesis Analytics에서는 "최소한 한 번" 전달 모델을 사용하여 애플리케이션 출력을 구성된 대상에 전송합니다. Kinesis Analytics 애플리케이션은 내부 체크포인트를 사용합니다. 체크포인트는 데이터 손실 없이 출력 레코드가 대상이 전달된 특정 시점을 말합니다. Kinesis Analytics에서는 필요에 따라 체크포인트를 사용하여 애플리케이션 출력이 구성된 대상으로 최소한 한번은 전달되도록 합니다. 전달 모델에 대한 자세한 내용은 Kinesis Analytics Developer Guide에서 Configuring Application Output을 참조하십시오.


Q: Kinesis Analytics 애플리케이션의 작업 및 성능을 모니터링하려면 어떻게 해야 합니까?

AWS에서는 Kinesis Analytics 애플리케이션을 모니터링하는 데 사용할 수 있는 다양한 도구를 제공합니다. 이러한 도구 중 일부를 구성하여 모니터링을 수행할 수 있습니다. 애플리케이션을 모니터링하는 방법에 대한 자세한 내용은 Kinesis Analytics Developer Guide에서 Monitoring Kinesis Analytics를 참조하십시오.

Q: Kinesis Analytics 애플리케이션에 대한 액세스를 어떻게 관리하고 제어합니까?

Kinesis Analytics가 애플리케이션에 지정되어 있는 스트리밍 데이터 소스에서 레코드를 읽기 위해서는 권한이 필요합니다. 또한, Kinesis Analytics가 애플리케이션 출력을 애플리케이션 출력 구성에 지정되어 있는 스트림에 작성하기 위해서는 권한이 필요합니다. Kinesis Analytics가 맡을 수 있는 IAM 역할을 생성하여 이러한 권한을 부여할 수 있습니다. 이 역할에 부여한 권한은 Kinesis Analytics가 역할을 맡았을 때 수행할 수 있는 작업을 결정합니다. 자세한 내용은 Kinesis Analytics Developer Guide에서 Granting Permissions를 참조하십시오.

Q: Kinesis Analytics는 내 애플리케이션을 어떻게 확장합니까?

Kinesis Analytics는 대부분의 시나리오에서 소스 스트림의 데이터 처리량과 쿼리의 복잡성을 수용할 수 있도록 애플리케이션을 탄력적으로 조정합니다. Kinesis Analytics는 Amazon Kinesis 처리 단위(KPU)의 형태로 용량을 프로비저닝합니다. 단일 KPU는 메모리(4GB)와 해당 컴퓨팅 및 네트워킹을 제공합니다.
각 스트리밍 소스는 해당 인애플리케이션 스트림에 매핑됩니다. 대부분 고객에게 필요하지는 않지만, 입력 병렬 처리 파라미터를 지정하여 소스가 매핑된 인애플리케이션 스트림의 수를 늘리면 KPU를 좀 더 효율적으로 사용할 수 있습니다. Kinesis Analytics는 스트리밍 데이터 소스의 파티션(예: Amazon Kinesis 스트림의 샤드)을 지정된 인애플리케이션 스트림 수에 따라 균등하게 할당합니다. 예를 들어 샤드가 10개인 Amazon Kinesis 스트림을 스트리밍 데이터 소스로 사용하고 2개의 입력 병렬 처리를 지정한 경우, Kinesis Analytics는 Amazon Kinesis 샤드 5개를 "SOURCE_SQL_STREAM_001" 및 "SOURCE_SQL_STREAM_002"라는 2개의 인애플리케이션 스트림에 각각 할당합니다. 자세한 내용은 에서 Kinesis Analytics Developer Guide에서 Configuring Application Input을 참조하십시오.

Q: 내 Kinesis Analytics 애플리케이션을 구축 및 관리하는 데 사용할 수 있는 모범 사례는 무엇입니까?

모범 사례에 대한 자세한 내용은 Kinesis Analytics Developer Guide에서 Best Practices를 참조하십시오. 이 섹션은 애플리케이션 관리, 입력 스키마 정의, 출력에 연결, 애플리케이션 코드 작성에 대한 내용은 다룹니다.


Q: 특정 SQL 문이 올바르게 작동하도록 하려면 어떻게 해야 합니까?

자세한 내용은Kinesis Analytics Developer Guide에서 Example Applications를 참조하십시오. 이 섹션에는 사용할 수 있는 여러 SQL 예제가 나와 있습니다. 또한, Kinesis Analytics SQL Reference는 스트리밍 SQL 문 작성에 대한 상세한 지침을 제공합니다. 여전히 문제가 발생하면 Amazon Kinesis 포럼에 질문을 남겨주십시오.

Q: Kinesis Analytics에서 내 스키마를 탐지하거나 검색하지 못했습니다. Kinesis Analytics를 사용하려면 어떻게 해야 합니까?

구분 기호를 사용하지 않거나 CSV 이외의 다른 구분 기호를 사용하는 기타 UTF-8 인코딩 데이터의 경우 또는 검색 API가 스키마를 모두 검색하지는 못한 경우, 직접 스키마를 정의하거나 문자열 조작 함수를 사용하여 데이터를 구조화할 수 있습니다. 자세한 내용은 Kinesis Analytics Developer Guide에서 Using the Schema Discovery Feature and Related Editing을 참조하십시오.

Q: 내 애플리케이션이 올바르게 실행되도록 하려면 모니터링해야 할 중요 파라미터는 무엇입니까?

모니터링해야 할 가장 중요한 파라미터는 CloudWatch 지표인 MillisBehindLatest입니다. 이 지표는 현재 스트림에서 읽기가 얼마나 지연되고 있는지 보여줍니다. 이 지표는 소스 스트림의 레코드의 처리 속도가 충분히 빠른지 결정하는 데 효과적인 메커니즘을 제공합니다. 1시간 이상 지연되는 경우 트리거되도록 CloudWatch 경보를 설정해야 합니다(이 시간은 사용 사례에 따라 다르며 필요에 따라 조정할 수 있습니다). 자세한 내용은 Kinesis Analytics Developer Guide에서 Best Practices 섹션을 참조하십시오.

Q: Kinesis Analytics 애플리케이션 실행 시 잘못된 코드 오류를 해결하려면 어떻게 해야 합니까?
Kinesis Analytics 애플리케이션의 잘못된 코드 오류 및 문제 해결에 대한 자세한 내용은 Amazon Kinesis Analytics 개발자 가이드에서 문제 해결 섹션을 참조하십시오.


Q: Kinesis Analytics의 요금은 어떻게 됩니까?

Kinesis Analytics에서는 사용한 만큼만 비용을 지불합니다. 스트림 처리 애플리케이션을 실행하는 데 사용된 Kinesis 처리 단위(또는 KPU)의 평균 개수에 따라 시간당 비용이 청구됩니다. KPU 평균 개수는 가장 가까운 정수로 올림 처리합니다.

단일 KPU는 메모리(4GB), 컴퓨팅(1vCPU) 및 해당 네트워킹 기능으로 구성된 스트림 처리 리소스입니다. 처리하는 동안 스트리밍 애플리케이션의 메모리와 컴퓨팅 사용량이 변하므로 Kinesis Analytics에서는 스트리밍 워크로드에 따라 KPU 수를 탄력적으로 자동 조정합니다. Kinesis Analytics에서는 리소스를 프로비저닝할 필요가 없고, 선결제 금액이나 최소 비용도 없습니다.

요금에 대한 자세한 내용은 Kinesis Analytics 요금 페이지를 참조하십시오.

Q: AWS 프리 티어에서 Kinesis Analytics를 사용할 수 있습니까?

아니요. Kinesis Analytics는 현재 AWS 프리 티어에서 사용할 수 없습니다. AWS 프리 티어는 AWS 서비스 그룹을 무료로 체험해 볼 수 있도록 하는 프로그램입니다.

Q: 실행은 되고 있지만 소스의 데이터를 처리하고 있지 않은 Kinesis Analytics 애플리케이션에 대해서도 요금이 부과됩니까?

Kinesis Analytics 애플리케이션이 실행되고 있는 경우 최소 1개의 KPU에 대한 요금이 부과됩니다.

Q: Kinesis Analytics 비용 외에 발생할 수 있는 다른 비용이 있습니까?

Kinesis Analytics는 완전관리형 스트림 처리 솔루션으로서, 데이터를 읽어오는 스트리밍 소스와 처리된 데이터를 작성하는 대상과는 독립적입니다. 출력 및 입력 스트림과 관련된 Kinesis Firehose 및 Kinesis Streams 사용 비용과는 독립적으로 비용이 청구됩니다.

Q: Kinesis Analytics는 Amazon Kinesis 클라이언트 라이브러리를 사용하여 자체 애플리케이션을 실행하는 것과 어떻게 다릅니까?

Amazon Kinesis 클라이언트 라이브러리(KCL)는 Amazon Kinesis 스트림의 데이터를 읽고 처리하는 Amazon Kinesis 애플리케이션을 손쉽게 구축할 수 있도록 지원하는 사전에 구축된 라이브러리입니다. KCL은 스트림 볼륨 변화에 따른 조정, 스트리밍 데이터 로드 밸런싱, 분산 서비스 조직화 및 내결함성 있는 데이터 처리와 같은 복잡한 문제를 처리합니다. KCL을 사용하면 애플리케이션을 개발하는 동안 비즈니스 로직에 집중할 수 있습니다.

Kinesis Analytics에서는 실시간 스트리밍 데이터를 처리 및 쿼리할 수 있습니다. 표준 SQL을 사용하여 데이터 스트림을 처리하므로 새로운 프로그래밍 언어를 배울 필요가 없습니다. Kinesis Analytics를 수신 데이터 스트림에 지정하고, SQL 쿼리를 작성한 후, 결과를 로드할 위치를 지정하기만 하면 됩니다. Kinesis Analytics에서는 KCL을 사용하여 기본 애플리케이션의 일부로서 스트리밍 데이터 소스의 데이터를 읽습니다. Kinesis Analytics는 KCL 사용과 관련된 여러 가지 좀 더 복잡한 개념(예: 체크포인트)뿐만 아니라 사용자에게서 이를 추출합니다.

완전관리형 솔루션을 원하고 SQL을 사용하여 스트림의 데이터를 처리하길 원한다면 Kinesis Analytics를 사용해야 합니다. Kinesis Analytics에서 지원하지 않는 요구 사항을 적용하여 사용자 정의 처리 솔루션을 구축해야 하고 이에 따른 소비자 애플리케이션을 관리할 수 있다면 KCL을 사용하십시오.