일반

Q: Amazon Managed Service for Apache Flink란 무엇인가요?
Amazon Managed Service for Apache Flink를 사용하면 Apache Flink를 통해 실시간으로 스트리밍 데이터를 변환하고 분석할 수 있습니다. Apache Flink는 데이터 스트림 처리를 위한 오픈 소스 프레임워크 및 엔진입니다. Amazon Managed Service for Apache Flink는 Apache Flink 애플리케이션을 빌드 및 관리하고 다른 AWS 서비스와 통합하는 데 따르는 복잡성을 줄여줍니다.
 
Amazon Managed Service for Apache Flink는 스트리밍 애플리케이션의 지속적 실행에 필요한 모든 작업을 처리하며, 수신 데이터의 볼륨과 처리량에 맞춰 자동으로 규모가 조정됩니다. Amazon Managed Service for Apache Flink를 사용하면 서버를 관리할 필요가 없고, 최소 요금이나 설치 비용도 없으며, 스트리밍 애플리케이션이 소비하는 리소스에 대해서만 결제하면 됩니다.
 
Q: 실시간 스트림 처리란 무엇이고 왜 필요한가요?
실시간 데이터 소스의 폭발적인 증가로 인해 회사들이 데이터를 수집하는 속도가 더 빨라지고 있습니다. 모바일 및 웹 애플리케이션의 로그 데이터, 전자 상거래 플랫폼의 구매 데이터 또는 IoT 디바이스의 센서 데이터를 처리할 때 데이터를 실시간으로 수집하면 고객, 조직 및 비즈니스의 현재 상황을 파악하는 데 도움이 됩니다.
 
Q: Amazon Managed Service for Apache Flink로 무엇을 할 수 있나요?
많은 사용 사례에 대해 Amazon Managed Service for Apache Flink를 사용하여 지속적으로 데이터를 처리하고 며칠 또는 몇 주가 아닌 몇 초 또는 몇 분 만에 인사이트를 얻을 수 있습니다. Amazon Managed Service for Apache Flink를 사용하면 로그 분석, 클릭스트림 분석, 사물 인터넷(IoT), 광고 기술, 게임 등을 위한 포괄적인 스트림 처리 애플리케이션을 신속하게 구축할 수 있습니다. 가장 일반적인 사용 사례 4가지로는 스트리밍 추출, 전환, 적재(ETL), 지속적 지표 생성, 반응형 실시간 분석 및 대화형 데이터 스트림 쿼리가 있습니다.
 
스트리밍 ETL
스트리밍 ETL 애플리케이션을 통해 실시간으로 데이터 레이크 또는 데이터 웨어하우스에 로드하기 전에 원시 데이터를 정리, 보강, 조직 및 변형하여 배치 ETL 단계를 절감 또는 제거할 수 있습니다. 이러한 애플리케이션은 제공 전에 작은 레코드를 더 큰 파일로 버퍼링하고, 스트림 및 테이블 간 정교한 조인을 수행할 수 있습니다. 예를 들어, Amazon Managed Streaming for Apache Kafka (Amazon MSK)에 저장된 IoT 센서 데이터를 지속적으로 읽는 애플리케이션을 구축하고, 센서 유형별로 데이터를 조직하며, 중복 데이터를 제거하고, 특정 스키마별로 데이터를 정규화하며, 데이터를 Amazon Simple Storage Service(S3)에 제공할 수 있습니다.
지속적 지표 생성
지속적 지표 생성 애플리케이션을 사용하면 시간에 따른 데이터의 추세를 모니터링 및 이해할 수 있습니다. 애플리케이션은 스트리밍 데이터를 중요 정보로 집계하고, 이를 보고 데이터베이스 및 모니터링 서비스와 원활하게 통합하여 애플리케이션과 사용자에게 실시간으로 서비스를 제공합니다. Amazon Managed Service for Apache Flink를 사용하면 Apache Flink 코드(Java, Scala, Python 또는 SQL)를 사용하여 기간에 따른 시계열 분석을 지속적으로 생성할 수 있습니다. 예를 들어 모바일 게임의 경우 1분 간격으로 상위 플레이어를 계산해서 Amazon DynamoDB로 전송하는 방법으로 라이브 순위표를 만들 수 있습니다. 또한 5분 간격으로 웹 사이트의 고유 방문자 수를 계산하고 처리된 결과를 Amazon Redshift에 전송함으로써 웹 사이트에 대한 트래픽을 추적할 수 있습니다.
 
반응형 실시간 분석
반응형 실시간 분석 애플리케이션은 특정 지표가 미리 정의된 임계값에 도달하는 경우 또는 고급 사례에서 애플리케이션이 기계 학습(ML) 알고리즘을 사용하여 이상을 탐지하는 경우 실시간 경보 또는 알림을 전송합니다. 이러한 애플리케이션을 사용하면 모바일 앱에서 사용자 이탈을 예측하고 저하된 시스템을 식별하는 등 실시간으로 비즈니스의 변화에 즉시 반응할 수 있습니다. 예를 들어 시간이 지나면서 애플리케이션이 고객 관련 API의 가용성 또는 성공률을 계산한 후, 결과를 Amazon CloudWatch로 전송할 수 있습니다. 특정 범주에 해당하는 이벤트를 찾은 후 Amazon Kinesis Data Streams 및 Amazon Simple Notification Service(SNS)를 사용하여 적절한 고객에게 자동으로 알림을 전송하도록 애플리케이션을 구축할 수도 있습니다.
 
대화형 데이터 스트림 분석
대화형 분석을 사용하면 스트리밍 데이터를 실시간으로 탐색할 수 있습니다. 임시 쿼리 또는 프로그램을 통해 Amazon MSK 또는 Amazon Kinesis Data Streams의 스트림을 검사하고 이러한 스트림 내의 데이터 형태를 시각화할 수 있습니다. 예를 들어 시간대별 평균을 계산하는 실시간 지표의 동작을 보고 선택한 대상으로 집계 데이터를 전송할 수 있습니다. 대화형 분석은 스트림 처리 애플리케이션의 반복 개발에도 도움이 됩니다. 구축하는 쿼리는 새 데이터가 도착할 때마다 지속적으로 업데이트됩니다. Amazon Managed Service for Apache Flink Studio를 사용하면 이러한 쿼리를 배포하여 Auto Scaling 및 내구성이 우수한 상태 백업이 활성화된 상태로 지속적으로 실행할 수 있습니다. 
 

시작하기

Q: Amazon Managed Service for Apache Flink용 Apache Flink 애플리케이션을 시작하려면 어떻게 해야 하나요?
Amazon Managed Service for Apache Flink 콘솔에 로그인하고 새 스트림 처리 애플리케이션을 생성합니다. AWS CLI 및 AWS SDK도 사용할 수 있습니다. 애플리케이션을 생성한 후에는 선호하는 통합 개발 환경으로 이동하고, AWS에 연결한 다음, 오픈 소스 Apache Flink 라이브러리와 원하는 언어의 AWS SDK를 설치합니다. Apache Flink는 데이터 스트림 처리를 위한 오픈 소스 프레임워크이자 엔진이며, AWS SDK와 함께 작동합니다. 확장 가능한 라이브러리에는 window 및 aggregate 같은 25개 이상의 사전 구축된 스트림 처리 연산자와 함께, Amazon MSK, Amazon Kinesis Data Streams, Amazon DynamoDB, Amazon Kinesis Data Firehose 같은 AWS 서비스 통합이 포함되어 있습니다. 구축한 후에는 Amazon Managed Service for Apache Flink에 코드를 업로드합니다. Amazon Kinesis Data Analytics는 실시간 애플리케이션의 지속적 실행에 필요한 모든 작업을 처리하며, 수신 데이터의 볼륨과 처리량에 맞춰 자동으로 규모가 조정됩니다. 
 
Q: Amazon Managed Service for Apache Flink용 Apache Beam 애플리케이션을 시작하려면 어떻게 해야 하나요?
Apache Beam을 사용하여 Amazon Managed Service for Apache Flink 애플리케이션을 생성하는 작업은 Apache Flink를 시작하는 방법과 매우 비슷합니다. 위 질문의 지침을 따르면 됩니다. 개발자 안내서의 지침에 따라, Apache Beam에서 애플리케이션을 실행하는 데 필요한 구성 요소를 모두 설치해야 합니다. 참고로, Amazon Managed Service for Apache Flink는 Apache Beam에서 실행할 때만 Java SDK를 지원합니다. 
 
Q: Amazon Managed Service for Apache Flink Studio를 시작하려면 어떻게 해야 하나요?
Amazon Managed Service for Apache Flink 콘솔에서 시작하고 새로운 Studio 노트북을 생성할 수 있습니다. 노트북을 시작한 후 Apache Zeppelin에서 노트북을 열어 SQL, Python 또는 Scala로 즉시 코드를 작성할 수 있습니다. 내장된 통합과 사용자 지정 커넥터를 통한 기타 Apache Flink 지원 소스 및 대상으로 Amazon Kinesis Data Streams, Amazon MSK 및 Amazon S3의 노트북 인스턴스를 사용하여 대화형으로 애플리케이션을 개발할 수 있습니다. Apache Flink가 Flink SQL 및 Table API에서 지원하는 모든 연산자를 사용하여 데이터 스트림의 임시 쿼리를 수행하고 스트림 처리 애플리케이션을 개발할 수 있습니다. 준비가 되면 단 몇 단계로 노트북에서 Auto Scaling 및 내구성 있는 상태를 통해 지속적으로 실행 중인 스트림 처리 애플리케이션으로 코드를 구축하고 승격할 수 있습니다. 
 
Q: Amazon Managed Service for Apache Flink의 한도는 어떻게 되나요?
Amazon Managed Service for Apache Flink는 대부분 시나리오에서 소스 스트림의 데이터 처리량과 쿼리의 복잡성을 수용할 수 있도록 애플리케이션을 탄력적으로 확장 및 축소합니다. Apache Flink 애플리케이션의 서비스 한도에 대한 자세한 내용은 Amazon Managed Service for Apache Flink 개발자 안내서의 한도 섹션을 참조하세요. 
 
Q: Amazon Managed Service for Apache Flink는 스키마 등록을 지원하나요?
예. Amazon Managed Service for Apache Flink 애플리케이션에서 Apache Flink DataStream Connectors를 통해 AWS Glue의 서버리스 기능인 AWS Glue 스키마 레지스트리를 사용할 수 있습니다. Apache Kafka, Amazon MSK 및 Amazon Kinesis Data Streams를 싱크 또는 소스로 Amazon Managed Service for Apache Flink 워크로드와 통합할 수 있습니다. 시작하고 자세히 알아보려면 AWS Glue 스키마 레지스트리 개발자 안내서를 참조하세요. 

주요 개념

Q: Amazon Managed Service for Apache Flink 애플리케이션이란 무엇인가요?
애플리케이션은 사용자가 작업하는 Amazon Managed Service for Apache Flink 엔터티입니다. Amazon Managed Service for Apache Flink 애플리케이션은 실시간으로 스트리밍 데이터를 계속해서 읽고 처리합니다. 사용자는 Apache Flink 지원 언어를 사용하여 수신 스트리밍 데이터를 처리하고 출력을 생성하는 애플리케이션 코드를 작성합니다. 그러면 Amazon Managed Service for Apache Flink가 구성된 대상에 출력을 기록합니다.
 
각 애플리케이션은 3가지 기본 요소로 구성됩니다.
 
  1. 입력: 입력은 애플리케이션의 스트리밍 소스입니다. 입력 구성에서 스트리밍 소스를 데이터 스트림에 매핑합니다. 데이터는 데이터 소스에서 데이터 스트림으로 흐릅니다. 애플리케이션 코드를 사용하여 이러한 데이터 스트림에서 데이터를 처리하고, 처리된 데이터를 후속 데이터 스트림 또는 대상으로 전송합니다. Apache Flink 애플리케이션 및 Studio 노트북의 애플리케이션 코드 내에 또는 Amazon Managed Service for Apache Flink 애플리케이션용 API를 통해 입력을 추가합니다. 
  2. 애플리케이션 코드: 애플리케이션 코드는 입력을 처리하고 출력을 생성하는 일련의 Apache Flink 연산자입니다. 가장 단순한 형태로 애플리케이션 코드는 스트리밍 소스와 연결된 데이터 스트림으로부터 읽고 출력과 연결된 다른 데이터 스트림에 쓰는 하나의 Apache Flink 연산자가 될 수 있습니다. Studio 노트북의 경우 이는 노트북 안의 컨텍스트에 결과가 표시되는 단순한 Flink SQL Select 쿼리가 될 수 있습니다. Amazon Managed Service for Apache Flink 애플리케이션 또는 Studio 노트북의 지원되는 언어로 Apache Flink 코드를 작성할 수 있습니다.
  3. 출력: 그런 다음, 선택 사항으로 데이터를 외부 대상에 유지하도록 애플리케이션 출력을 구성할 수 있습니다. Amazon Managed Service for Apache Flink 애플리케이션 및 Studio 노트북의 애플리케이션 코드 내부에 이러한 출력을 추가합니다. 

Q: 지원되는 애플리케이션 코드는 무엇인가요?

Amazon Managed Service for Apache Flink는 Java, Scala 및 Python에서 오픈 소스 Apache Flink 라이브러리 및 자체 사용자 지정 코드를 사용하여 구축된 애플리케이션을 지원합니다. Amazon Managed Service for Apache Flink는 Java에서 오픈 소스 Apache Beam 라이브러리 및 자체 사용자 지정 코드를 사용하여 구축된 애플리케이션도 지원합니다. Amazon Managed Service for Apache Flink Studio는 Apache Flink 호환 SQL, Python 및 Scala를 사용한 코드 구축을 지원합니다.

애플리케이션 관리

Q: Amazon Managed Service for Apache Flink 애플리케이션의 운영 및 성능을 모니터링하려면 어떻게 해야 하나요?
AWS는 Flink Dashboard for Apache Flink 애플리케이션에 대한 액세스를 포함하여 Amazon Managed Service for Apache Flink 애플리케이션을 모니터링하는 데 사용할 수 있는 다양한 도구를 제공합니다. 이러한 도구 중 일부를 구성하여 모니터링을 수행할 수 있습니다. 애플리케이션을 모니터링하는 방법에 대한 자세한 내용은 다음 개발자 안내서를 참조하세요. 
 

Q: Amazon Managed Service for Apache Flink 애플리케이션에 대한 액세스를 관리하고 제어하려면 어떻게 해야 하나요?

Amazon Managed Service for Apache Flink가 애플리케이션에 지정되어 있는 스트리밍 데이터 소스에서 레코드를 읽기 위해서는 권한이 필요합니다. 또한 Amazon Managed Service for Apache Flink가 애플리케이션 출력을 애플리케이션 출력 구성에 지정된 대상으로 쓰기 위해서는 권한이 필요합니다. Amazon Managed Service for Apache Flink가 맡을 수 있는 AWS Identity and Access Management(IAM) 역할을 생성하여 이러한 권한을 부여할 수 있습니다. 이 역할에 부여하는 권한은 Amazon Managed Service for Apache Flink가 역할을 맡았을 때 수행할 수 있는 작업을 결정합니다. 자세한 내용은 다음 개발자 안내서를 참조하세요.

  • Amazon Managed Service for Apache Flink 개발자 안내서의 권한 부여
  • Amazon Managed Service for Apache Flink Studio 개발자 안내서의 권한 부여

Q: Amazon Managed Service for Apache Flink는 애플리케이션 규모를 어떻게 조정하나요?

Amazon Managed Service for Apache Flink는 대부분의 시나리오에서 소스 스트림의 데이터 처리량과 쿼리의 복잡성을 수용할 수 있도록 애플리케이션을 탄력적으로 조정합니다. Amazon Managed Service for Apache Flink는 Amazon KPU의 형태로 용량을 프로비저닝합니다. 1개의 KPU는 1개의 vCPU와 4GB 메모리를 제공합니다. 

Apache Flink 애플리케이션 및 Studio 노트북의 경우 Amazon Managed Service for Apache Flink는 KPU당 50GB의 실행 애플리케이션 스토리지를 할당합니다. 이 스토리지는 애플리케이션에서 체크포인트로 사용하고 임시 디스크를 통해 사용 가능합니다. 체크포인트는 실행 중인 애플리케이션의 최신 백업으로, 애플리케이션 중단으로부터 즉각적으로 복구할 때 사용됩니다. 또한 API의 Parallelism 및 ParallelismPerKPU 파라미터를 사용하여 Amazon Managed Service for Apache Flink 애플리케이션 작업의 병렬 실행(소스로부터 읽기 또는 연산자 실행)을 제어할 수 있습니다. Parallelism은 작업의 동시 인스턴스 수를 정의합니다. 모든 연산자, 소스 및 싱크는 정의된 병렬 처리를 실행하며, 기본값은 1입니다. ParallelismPerKPU는 애플리케이션의 KPU당 예약될 수 있는 병렬 작업의 수를 정의하며, 기본값은 1입니다. 자세한 내용은 Amazon Managed Service for Apache Flink 개발자 안내서의 규모 조정을 참조하세요. 
 
Q: Amazon Managed Service for Apache Flink 애플리케이션을 구축 및 관리하는 데 사용할 수 있는 모범 사례는 무엇인가요?
Apache Flink 모범 사례에 대한 자세한 내용은 Amazon Managed Service for Apache Flink 개발자 안내서의 모범 사례 섹션을 참조하세요. 이 섹션에서는 내결함성, 성능, 로깅, 코딩 등에 대한 모범 사례를 다룹니다. 
 
Amazon Managed Service for Apache Flink Studio 모범 사례에 대한 자세한 내용은 Amazon Managed Service for Apache Flink Studio 개발자 안내서의 모범 사례 섹션을 참조하세요. 이 섹션에서는 모범 사례 외에 SQL, Python 및 Scala 애플리케이션의 샘플, 코드를 지속적으로 실행되는 스트림 처리 애플리케이션으로 배포할 때의 요구 사항, 성능, 로깅 및 기타 정보도 다룹니다.
 
Q: Amazon Managed Service for Apache Flink 애플리케이션에서 Amazon VPC를 통해 리소스에 액세스할 수 있나요?
예. Amazon VPC를 통해 리소스에 액세스할 수 있습니다. Amazon Managed Service for Apache Flink 개발자 안내서의 Amazon VPC 사용 섹션에서 VPC 액세스를 위해 애플리케이션을 구성하는 방법에 대해 학습할 수 있습니다.
 
Q: Amazon Managed Service for Apache Flink 애플리케이션 하나에서 여러 VPC에 액세스할 수 있나요?
아니요. 서브넷이 여러 개 지정된 경우, 모두 같은 VPC에 있어야 합니다. 해당 VPC를 피어링해서 다른 VPC에 연결할 수 있습니다.
 
Q: VPC에 연결된 Amazon Managed Service for Apache Flink 애플리케이션에서 인터넷 및 AWS 서비스 엔드포인트에 액세스할 수 있나요?
특정 VPC의 리소스에 액세스하도록 구성된 Amazon Managed Service for Apache Flink 애플리케이션과 Amazon Managed Service for Apache Flink Studio 노트북은 기본 구성으로 인터넷에 액세스할 수 없습니다. Amazon Managed Service for Apache Flink 개발자 안내서의 인터넷 및 서비스 액세스 섹션에서 애플리케이션에 대한 인터넷 액세스를 구성하는 방법을 알아볼 수 있습니다.

요금 및 결제

Q: Amazon Managed Service for Apache Flink의 비용은 어떻게 되나요?
Amazon Managed Service for Apache Flink에서는 사용한 만큼만 요금을 지불합니다. Amazon Managed Service for Apache Flink에서는 리소스를 프로비저닝할 필요가 없고, 선결제 비용도 없습니다. 

스트리밍 애플리케이션 실행에 사용하는 Amazon KPU의 개수에 따라 시간당 요금이 청구됩니다. 단일 KPU는 하나의 vCPU의 컴퓨팅 및 4GB의 메모리로 구성된 스트림 처리 용량 단위입니다. Amazon Managed Service for Apache Flink는 스트림 처리 애플리케이션의 요구에 따라 KPU의 수를 자동으로 조정합니다. 메모리 및 컴퓨팅 수요가 처리 복잡성과 처리된 스트리밍 데이터의 처리량에 따라 다르기 때문입니다. 
 
Apache Flink 및 Apache Beam 애플리케이션의 경우 애플리케이션 오케스트레이션에 대해 애플리케이션당 단일 추가 KPU 요금이 청구됩니다. 또한 Apache Flink 및 Apache Beam 애플리케이션의 경우 실행 애플리케이션 스토리지 및 내구성 있는 애플리케이션 백업에 대해 요금이 청구됩니다. 실행 애플리케이션 스토리지는 Amazon Managed Service for Apache Flink의 상태 유지 처리 기능에 사용되며 GB/월 단위로 청구됩니다. 내구력이 뛰어난 애플리케이션 백업은 선택 사항으로, 월별 GB당 요금이 청구되고 애플리케이션에 대한 특정 시점 복구를 제공합니다. 
 
Amazon Managed Service for Apache Flink Studio의 경우 개발 또는 대화형 모드에서 애플리케이션 오케스트레이션에 대한 추가 KPU 1개와 대화형 개발에 대한 KPU 1개에 대한 요금이 부과됩니다. 애플리케이션 스토리지 실행 요금도 부과됩니다. 내구성이 뛰어난 애플리케이션 백업에는 요금이 부과되지 않습니다.
 
자세한 요금 정보는 Amazon Managed Service for Apache Flink 요금 페이지를 참조하세요.
 
Q: 실행은 되고 있지만 소스의 데이터를 처리하고 있지 않은 Amazon Managed Service for Apache Flink 애플리케이션에 대해서도 요금이 부과되나요?
Apache Flink 및 Apache Beam 애플리케이션의 경우 Amazon Managed Service for Apache Flink 애플리케이션이 실행 중인 경우 최소 2개의 KPU와 50GB의 실행 중인 애플리케이션 스토리지에 대한 요금이 부과됩니다.
 
Amazon Managed Service for Apache Flink Studio 노트북에서 애플리케이션이 실행 중인 경우 최소 3개의 KPU와 50GB의 실행 애플리케이션 스토리지에 대한 요금이 부과됩니다.
 
Q: Amazon Managed Service for Apache Flink 비용 외에 발생할 수 있는 다른 비용이 있나요?
Amazon Managed Service for Apache Flink는 완전관리형 스트림 처리 솔루션으로서, 데이터를 읽어오는 스트리밍 소스와 처리된 데이터를 작성하는 대상과는 독립적입니다. 애플리케이션에서 읽고 쓰는 서비스에 대해서는 별도로 요금이 청구됩니다.
 
Q: Amazon Managed Service for Apache Flink를 AWS 프리 티어로 사용할 수 있나요?
아니요. Amazon Managed Service for Apache Flink는 현재 AWS 프리 티어로 사용할 수 없습니다.
Q: Apache Flink란 무엇인가요?
Apache Flink는 스트림 및 배치 데이터 처리를 위한 오픈 소스 프레임워크 및 엔진입니다. 강력한 연산자를 제공하고 중복 처리와 같은 주요 스트리밍 문제를 해결하기 때문에 손쉬운 스트리밍 애플리케이션 구축이 가능합니다. Apache Flink는 데이터 스트림에 배포된 계산에 대한 데이터 배포, 커뮤니케이션 및 내결함성을 제공합니다.
 
Q: 애플리케이션은 어떻게 개발하나요?
먼저 AWS SDK, Apache Flink 및 AWS 서비스용 커넥터가 포함된 오픈 소스 라이브러리를 다운로드할 수 있습니다. Amazon Managed Service for Apache Flink 개발자 안내서에서 라이브러리 다운로드 및 최초 애플리케이션 생성 방법에 대한 지침을 얻을 수 있습니다.
 
Q: 내 애플리케이션 코드는 어떤 형태인가요?
데이터 스트림 및 스트림 연산자를 사용하여 Apache Flink 코드를 작성합니다. 애플리케이션 데이터 스트림은 코드 사용에 대한 처리를 수행하는 데이터 구조입니다. 데이터는 원본에서 애플리케이션 데이터 스트림으로 지속적으로 흐릅니다. 하나 이상의 스트림 연산자를 사용하여 변형, 파티션, 집계, 조인 및 윈도우를 포함한 애플리케이션 데이터 스트림의 처리를 정의합니다. 데이터 스트림 및 연산자는 연쇄 및 병렬 체인으로 연결될 수 있습니다. 의사 코드를 사용하는 간단한 예가 아래에 표시되어 있습니다.
DataStream <GameEvent> rawEvents = env.addSource(
 New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
 rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId, 
   event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
            .keyBy(1)
            .window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
            .apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
Q: Apache Flink 연산자를 사용하려면 어떻게 해야 하나요?
연산자는 애플리케이션 데이터 스트림을 입력으로 가져오고 처리된 데이터를 애플리케이션 데이터 스트림에 출력으로 보냅니다. 연산자는 여러 단계를 통해 애플리케이션을 구축하기 위해 연결될 수 있고, 구현 및 운영을 위해 분산 시스템에 대한 고급 지식은 필요하지 않습니다.
 
Q: 어떤 연산자가 지원되나요?
Amazon Managed Service for Apache Flink는 map, KeyBy, aggregations, windows, joins 등을 비롯하여, 다양한 사용 사례를 해결하는 데 사용할 수 있는 Apache Flink의 모든 연산자를 지원합니다. 예를 들어 map 연산자를 통해 임의 처리를 수행하고 수신 데이터 스트림으로부터 하나의 요소를 가져와 다른 요소로 생성할 수 있습니다. KeyBy는 유사한 데이터 지점을 함께 처리할 수 있도록 하는 특정 키를 사용하여 데이터를 논리적으로 구성합니다. Aggregations는 sum, min 및 max와 같은 여러 키에 걸친 처리를 수행합니다. Window Join은 두 데이터 스트림을 해당되는 키와 창에 조인합니다. 

이러한 연산자가 요구에 맞지 않는 경우 사용자 지정 연산자를 만들 수 있습니다. Amazon Managed Service for Apache Flink 개발자 안내서의 연산자 섹션에서 더 많은 예를 확인할 수 있습니다. Apache Flink 설명서에서 Apache Flink의 전체 연산자 목록을 확인할 수 있습니다. 
 
Q: Amazon Managed Service for Apache Flink 애플리케이션에서는 어떤 통합이 지원되나요?
최소한의 코드를 사용하여 Apache Flink에서 제공되는 사전 구축된 통합을 설정하거나 자체 통합을 구축하여 실제로 모든 데이터 소스에 연결할 수 있습니다. Apache Flink 기반 오픈 소스 라이브러리는 데이터 처리 제공을 위해 스트리밍 소스 및 대상 또는 싱크를 지원합니다. 또한 비동기식 I/O 커넥터를 통한 데이터 보강 지원도 포함합니다. 다음은 이러한 커넥터 중 일부입니다.
 
  • 스트리밍 데이터 소스: Amazon Managed Streaming for Apache Kafka(Amazon MSK), Amazon Kinesis Data Streams Destinations 또는 싱크: Amazon Kinesis Data Streams
  • Amazon Kinesis Data Firehose, Amazon DynamoDB, Amazon Elasticsearch Service 및 Amazon S3(파일 싱크 통합을 통함)

Q: Amazon Managed Service for Apache Flink 애플리케이션에서 스트림 및 주제 전체에 데이터를 복제할 수 있나요?

예. Amazon Managed Service for Apache Flink 애플리케이션을 사용하여 Amazon Kinesis Data Streams, Amazon MSK 및 기타 시스템 간에 데이터를 복제할 수 있습니다. 설명서에 제공된 에서 하나의 Amazon MSK 주제를 읽고 다른 주제에 쓰는 방법을 확인할 수 있습니다.
 
Q: 사용자 지정 통합이 지원되나요?
파일, 디렉터리, 소켓 또는 인터넷을 통해 액세스할 수 있는 항목으로부터 읽고 쓸 수 있도록 하는 프리미티브 세트에 구축하여 애플리케이션에 소스 또는 대상을 추가할 수 있습니다. Apache Flink는 데이터 원본 데이터 싱크에 대해 이러한 프리미티브를 제공합니다. 프리미티브에는 데이터를 지속적으로 또는 한 번, 동기식 또는 비동기식으로 읽고 쓰는 기능과 같은 구성이 포함되어 있습니다. 예를 들어 기존 파일 기반 소스 통합을 확장하여 Amazon S3로부터 지속적으로 읽는 애플리케이션을 설정할 수 있습니다.
 
Q: Amazon Managed Service for Apache Flink 애플리케이션은 어떤 전송 및 처리 모델을 제공하나요?
Amazon Managed Service for Apache Flink의 Apache Flink 애플리케이션은 애플리케이션이 소스 및 싱크를 포함한 멱등적 연산자를 사용하여 구축된 경우 ‘정확히 1회’ 전송 모델을 사용합니다. 따라서 처리된 데이터는 단 한 번만 다운스트림 결과에 영향을 미칩니다.
 
기본적으로 Amazon Managed Service for Apache Flink 애플리케이션은 Apache Flink의 정확히 1회 의미 체계를 사용합니다. Apache Flink의 정확히 1회 의미 체계를 활용하는 소스, 연산자 및 싱크를 사용하여 설계한 애플리케이션은 정확히 1회 처리 의미 체계를 지원합니다.
 
Q: 애플리케이션 스토리지에서 로컬 스토리지로 액세스할 수 있습니까?
예. Amazon Managed Service for Apache Flink 애플리케이션은 KPU당 50GB의 실행 애플리케이션 스토리지를 사용자의 애플리케이션에 제공합니다. Amazon Managed Service for Apache Flink는 애플리케이션에 따라 스토리지 규모를 조정합니다. 실행 애플리케이션 스토리지는 체크포인트를 사용하여 애플리케이션 상태를 저장하는 데 사용됩니다. 또한 데이터 캐싱 또는 다른 목적을 위해 임시 디스크를 사용하도록 애플리케이션 코드에 액세스하는 것도 가능합니다. Amazon Managed Service for Apache Flink는 체크포인트(예: 연산자, 소스, 싱크)를 통해 언제든 실행 애플리케이션 스토리지에서 데이터를 제거할 수 있습니다. 실행 애플리케이션 스토리지에 저장된 모든 데이터는 저장 시 암호화됩니다.
 
Q: Amazon Managed Service for Apache Flink는 애플리케이션을 어떻게 자동으로 백업하나요?
Amazon Managed Service for Apache Flink는 체크포인트 및 스냅샷을 사용하여 실행 중인 애플리케이션의 상태를 자동으로 백업합니다. 체크포인트는 현재 애플리케이션 상태를 저장하고, Amazon Managed Service for Apache Flink 애플리케이션에서 애플리케이션 위치를 복구하여 오류가 없는 실행과 동일한 의미 체계를 제공합니다. 체크포인트에는 실행 애플리케이션 스토리지가 사용됩니다. Apache Flink 애플리케이션용 체크포인트는 Apache Flink의 체크포인트 지정 기능을 통해 제공됩니다. 스냅샷은 애플리케이션의 특정 시점 복구 지점을 저장하며, 내구성이 뛰어난 애플리케이션 백업을 사용합니다. 스냅샷은 Flink 저장점과 유사합니다.
 
Q: 애플리케이션 스냅샷이란 무엇인가요?
스냅샷을 사용하면 특정 이전 시점에 대해 애플리케이션을 생성 및 복원할 수 있습니다. 따라서 이전 애플리케이션 상태를 유지 관리하고 언제든 애플리케이션을 롤백할 수 있습니다. 0개부터 수천 개에 이르기까지 보유하는 스냅샷의 수를 제어합니다. 스냅샷은 내구성 있는 애플리케이션 백업을 사용하며, Amazon Managed Service for Apache Flink의 요금은 크기에 따라 부과됩니다. Amazon Managed Service for Apache Flink는 기본적으로 스냅샷에 저장된 데이터를 암호화합니다. API를 통해 개별 스냅샷을 삭제하거나 애플리케이션을 삭제하여 전체 스냅샷을 삭제할 수 있습니다.
 
Q: 지원되는 Apache Flink 버전은 무엇인가요?
지원되는 Apache Flink 버전에 대한 자세한 내용은 Amazon Managed Service for Apache Flink 릴리스 정보 페이지를 참조하세요. 이 페이지에는 Amazon Managed Service for Apache Flink가 지원하는 Apache Beam, Java, Scala, Python 및 AWS SDK 버전도 포함되어 있습니다. 
Q: Amazon Managed Service for Apache Flink 애플리케이션에서 Apache Beam을 실행할 수 있나요?
예. Amazon Managed Service for Apache Flink는 Apache Beam을 사용하여 구축된 스트리밍 애플리케이션을 지원합니다. Java로 Apache Beam 스트리밍 애플리케이션을 구축하고 Amazon Managed Service for Apache Flink에서 Apache Flink를 사용하는 등 다양한 엔진 및 서비스에서 실행할 수 있습니다. 지원되는 Apache Flink 및 Apache Beam 버전에 대한 정보는 Amazon Managed Service for Apache Flink 개발자 안내서에서 확인할 수 있습니다. 

Q: Studio 애플리케이션은 어떻게 개발하나요?
Amazon Managed Service for Apache Flink Studio, Amazon Kinesis Data Streams 또는 Amazon MSK 콘솔에서 시작할 수 있습니다. 단 몇 단계로 서버리스 노트북을 시작하여 즉시 데이터 스트림을 쿼리하고 대화형 데이터 분석을 수행할 수 있습니다.
 
대화형 데이터 분석: 노트북에서 SQL, Python 또는 Scala로 코드를 작성하여 몇 초의 쿼리 응답 시간으로 스트리밍 데이터와 상호 작용할 수 있습니다. 내장된 시각화를 사용하여 노트북 안에서 데이터를 탐색하고 스트리밍 데이터에 대한 실시간 인사이트를 볼 수 있으며 Apache Flink로 구동되는 스트림 처리 애플리케이션을 개발할 수 있습니다.

코드를 프로덕션 애플리케이션으로 실행할 준비가 되면 한 단계로 서버 없이 초당 수 기가바이트 단위의 데이터를 처리하는 스트림 처리 애플리케이션으로 전환할 수 있습니다.

스트림 처리 애플리케이션: 코드를 프로덕션으로 승격할 준비가 되면 노트북 인터페이스에서 ‘Deploy as stream processing application(스트림 처리 애플리케이션으로 배포)’을 클릭하여 코드를 빌드하거나 CLI에서 단일 명령을 실행할 수 있습니다. Studio는 Amazon Managed Service for Apache Flink 애플리케이션에서처럼 Auto Scaling 및 내구성 있는 상태를 활성화하여 스트림 처리 애플리케이션을 대규모로 실행하는 데 필요한 모든 인프라 관리를 처리합니다.

Q: 내 애플리케이션 코드는 어떤 형태인가요?
Apache Flink의 Table API를 사용하여 노트북에서 선호하는 언어(SQL, Python 또는 Scala)로 코드를 작성할 수 있습니다. Table API는 확장된 SQL 기능을 지원하는 상위 수준의 추상화이자 관계형 API입니다. 선택, 필터링, 조인, 그룹화, 집계 등과 같은 익숙한 작업과 함께 창 작업과 같은 스트림 관련 개념을 제공합니다. %를 사용하여 노트북 섹션에서 사용할 언어를 지정하고 여러 언어를 전환할 수 있습니다. 인터프리터는 노트북의 각 섹션에 대한 언어 또는 데이터 처리 엔진을 지정하는 데 사용되는 Apache Zeppelin 플러그인입니다. 사용자 정의 함수를 구축하고 참조하여 코드 기능을 개선할 수도 있습니다.

Q: 지원되는 SQL 작업은 어떤 것들이 있나요?
다음과 같은 SQL 작업을 수행할 수 있습니다.

  • 스캔 및 필터링(SELECT, WHERE) 
  • 집계(GROUP BY, GROUP BY WINDOW, HAVING) 
  • 설정(UNION, UNIONALL, INTERSECT, IN, EXISTS) 
  • 순서 지정(ORDER BY, LIMIT) 
  • 조인(INNER, OUTER, Timed Window - BETWEEN, AND, 임시 테이블에 조인 – 일정 기간 동안 변경 사항을 추적하는 테이블)
  • 상위 N개
  • 중복 제거
  • 패턴 인식 

GROUP BY, OUTER JOIN 및 상위 N개 항목과 같은 일부 쿼리는 스트리밍 데이터의 업데이트 결과입니다. 즉, 스트리밍 데이터가 처리되는 동안 결과가 지속적으로 업데이트됩니다. CREATE, ALTER 및 DROP과 같은 다른 DDL 문도 지원됩니다. 쿼리 및 샘플의 전체 목록은 Apache Flink 쿼리 설명서를 참조하세요.

Q: Python 및 Scala는 어떻게 지원되나요?

Apache Flink의 Table API는 Python 문자열 및 Scala 표현식을 사용하는 언어 통합을 통해 Python 및 Scala를 지원합니다. 지원되는 작업은 선택, 주문, 그룹화, 조인, 필터링 및 창 작업을 비롯하여 지원되는 SQL 작업과 매우 유사합니다. 작업 및 샘플의 전체 목록은 개발자 안내서에 포함되어 있습니다.

Q: 지원되는 Apache Flink 및 Apache Zeppelin 버전은 무엇인가요?

지원되는 Apache Flink 버전에 대한 자세한 내용은 Amazon Managed Service for Apache Flink 릴리스 정보 페이지를 참조하세요. 이 페이지에는 Amazon Managed Service for Apache Flink가 지원하는 Apache Zeppelin, Apache Beam, Java, Scala, Python 및 AWS SDK 버전도 포함되어 있습니다.

Q: Amazon Managed Service for Apache Flink Studio 애플리케이션에서는 어떤 통합이 기본적으로 지원되나요?

  • 데이터 소스: Amazon Managed Streaming for Apache Kafka(Amazon MSK), Amazon Kinesis Data Streams, Amazon S3 
  • 대상 또는 싱크: Amazon MSK, Amazon Kinesis Data Streams 및 Amazon S3

Q: 사용자 지정 통합이 지원되나요?
Apache Flink 코드(Python, Scala 또는 Java)의 단계와 코드 줄을 몇 개 더 사용하여 지원되는 모든 Apache Flink 통합과의 연결을 정의함으로써 추가 통합을 구성할 수 있습니다. 통합 대상으로는 Amazon OpenSearch Service, Amazon ElastiCache for Redis, Amazon Aurora, Amazon Redshift, Amazon DynamoDB, Amazon Keyspaces 등이 있습니다. Amazon Managed Service for Apache Flink Studio 애플리케이션을 생성하거나 구성할 때 이 사용자 지정 커넥터에 대한 실행 파일을 연결할 수 있습니다.

서비스 수준 계약

Q: Amazon Managed Service for Apache Flink SLA에서는 무엇을 보장하나요?

서비스 수준 계약(SLA)은 Amazon Managed Service for Apache Flink에 대해 최소 99.9%의 월간 가동률을 보장합니다.

Q: SLA 서비스 크레딧을 수령할 자격이 있는지 어떻게 알 수 있나요?

같은 AWS 리전 내에서 작업을 실행하고 있는 하나 이상의 가용 영역의 월간 가동률이 월별 청구 주기 동안 99.9%보다 낮은 경우, Amazon Managed Service for Apache Flink SLA에 따라 Amazon Managed Service for Apache Flink의 SLA 서비스 크레딧 지급 대상이 됩니다. SLA 이용 약관과 요청 제출 방법에 대한 자세한 내용은 Amazon Managed Service for Apache Flink SLA 세부 정보 페이지를 참조하세요.

Amazon Kinesis Data Analytics 시작하기

Kinesis Data Analytics 요금 페이지로 이동하기
비용 계산

Amazon Kinesis Data Analytics 요금 페이지로 이동하세요.

Read the documentation
시작 안내서 검토

SQL 또는 Apache Flink에 대한 단계별 안내서에서 Amazon Kinesis Data Analytics의 사용 방법을 알아보십시오.

콘솔에서 구축 시작
스트리밍 애플리케이션 구축 시작

Amazon Kinesis Data Analytics 콘솔에서 첫 번째 스트리밍 애플리케이션을 구축합니다.