아파치 플링크용 아마존 매니지드 서비스란 무엇입니까? - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려졌습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

아파치 플링크용 아마존 매니지드 서비스란 무엇입니까?

Apache Flink용 Amazon 관리형 서비스를 사용하면 자바, Scala, Python 또는 SQL을 사용하여 스트리밍 데이터를 처리하고 분석할 수 있습니다. 이 서비스를 사용하면 스트리밍 소스 및 정적 소스를 대상으로 코드를 작성하고 실행하여 시계열 분석을 수행하고 실시간 대시보드 및 지표를 제공할 수 있습니다.

Apache Flink 기반 오픈 소스 라이브러리를 사용하여 Apache Flink용 관리 서비스에서 원하는 언어로 애플리케이션을 빌드할 수 있습니다. Apache Flink는 데이터 스트림을 처리하기 위한 인기 있는 프레임워크 및 엔진입니다.

Managed Service for Apache Flink는 Apache Flink 애플리케이션을 위한 기본 인프라를 제공합니다. 컴퓨팅 리소스 프로비저닝, AZ 페일오버 복원력, 병렬 계산, 자동 확장, 애플리케이션 백업 (체크포인트 및 스냅샷으로 구현) 과 같은 핵심 기능을 처리합니다. Flink 인프라를 직접 호스팅할 때 사용하는 것과 동일한 방식으로 고급 Flink 프로그래밍 기능(예: 연산자, 함수, 소스, 싱크)을 사용할 수 있습니다.

Apache Flink용 아마존 매니지드 서비스를 사용하여 Flink 작업을 실행할 수 있는 두 가지 옵션이 있습니다. Apache Flink용 관리형 서비스를 사용하면 선택한 IDE와 Apache Flink 데이터스트림 또는 테이블 API를 사용하여 Java, Scala 또는 Python (및 임베디드 SQL) 으로 Flink 애플리케이션을 빌드할 수 있습니다. Apache Flink Studio용 관리형 서비스를 사용하면 실시간으로 대화형 방식으로 데이터 스트림을 쿼리하고 표준 SQL, Python 및 Scala를 사용하여 스트림 처리 애플리케이션을 쉽게 빌드하고 실행할 수 있습니다.

사용 사례에 가장 적합한 방법을 선택할 수 있습니다. 확실하지 않은 경우 이 섹션에서 자세한 지침을 확인할 수 있습니다.

Apache Flink용 Amazon Managed Service를 사용할지 아니면 Apache Flink Studio용 Amazon Managed Service를 사용할지 결정하기 전에 사용 사례를 고려해야 합니다.

스트리밍 ETL 또는 지속적 애플리케이션과 같은 워크로드를 처리하는 장기 실행 애플리케이션을 운영하려는 경우 Apache Flink용 관리형 서비스를 사용하는 것을 고려해야 합니다. 선택한 IDE에서 직접 Flink API를 사용하여 Flink 애플리케이션을 만들 수 있기 때문입니다. 또한 IDE를 사용하여 로컬에서 개발하면 Git의 코드 버전 관리, CI/CD 자동화 또는 유닛 테스트와 같은 SDLC (소프트웨어 개발 라이프사이클) 공통 프로세스 및 도구를 활용할 수 있습니다.

임시 데이터 탐색에 관심이 있거나, 스트리밍 데이터를 대화형 방식으로 쿼리하거나, 비공개 실시간 대시보드를 생성하려는 경우, Apache Flink Studio의 Managed Service for Apache Flink Studio를 사용하면 클릭 몇 번으로 이러한 목표를 달성할 수 있습니다. SQL에 익숙한 사용자는 장기간 실행되는 애플리케이션을 Studio에서 직접 배포하는 방안을 고려해 볼 수 있습니다.

참고

Studio 노트북을 장기 실행 애플리케이션으로 승격할 수 있습니다. 그러나 Git의 코드 버전 관리 및 CI/CD 자동화와 같은 SDLC 도구 또는 단위 테스트와 같은 기술과 통합하려는 경우 선택한 IDE를 사용하는 Apache Flink용 관리형 서비스를 사용하는 것이 좋습니다.

선택한 IDE의 Apache Flink API를 사용하여 Apache Flink용 관리 서비스에서 Java, Python 및 Scala를 사용하여 애플리케이션을 빌드할 수 있습니다. Flink 데이터스트림 및 테이블 API를 사용하여 애플리케이션을 빌드하는 방법에 대한 지침은 설명서에서 찾을 수 있습니다. Flink 애플리케이션을 만드는 데 사용할 언어와 애플리케이션 및 운영의 요구 사항을 가장 잘 충족하는 데 사용할 API를 선택할 수 있습니다. 확실하지 않은 경우 이 섹션에서 자세한 지침을 확인할 수 있습니다.

Apache Flink API는 추상화 수준이 다르므로 애플리케이션 구축 결정에 영향을 미칠 수 있습니다. 표현력이 뛰어나고 유연하며 함께 사용하여 애플리케이션을 빌드할 수 있습니다. Flink API를 하나만 사용할 필요는 없습니다. 플링크 API에 대한 자세한 내용은 아파치 플링크 설명서에서 확인할 수 있습니다.

플링크는 플링크 SQL, 테이블 API, API, API와 함께 사용되는 프로세스 함수 등 네 가지 수준의 DataStream API 추상화를 제공합니다. DataStream 이는 모두 Apache Flink용 아마존 매니지드 서비스에서 지원됩니다. 가능하면 더 높은 수준의 추상화로 시작하는 것이 좋지만 일부 Flink 기능은 Java, Python 또는 Scala로 애플리케이션을 만들 수 있는 Datastream API에서만 사용할 수 있습니다. 다음과 같은 경우 데이터스트림 API 사용을 고려해야 합니다.

  • 상태를 세밀하게 제어해야 합니다.

  • 외부 데이터베이스 또는 엔드포인트를 비동기적으로 호출하는 기능을 활용하려는 경우 (예: 추론)

  • 사용자 지정 타이머를 사용하려는 경우 (예: 사용자 지정 윈도우 설정 또는 지연 이벤트 처리 구현)

  • 상태를 재설정하지 않고도 애플리케이션의 흐름을 수정할 수 있기를 원합니다.

참고

DataStreamAPI로 언어 선택:

  • 선택한 프로그래밍 언어에 관계없이 모든 Flink 애플리케이션에 SQL을 내장할 수 있습니다.

  • DataStream API를 사용할 계획이라면 Python에서 모든 커넥터가 지원되는 것은 아닙니다.

  • 낮은 지연 시간/높은 처리량이 필요한 경우 API와 상관없이 Java/Scala를 고려해야 합니다.

  • 프로세스 함수 API에서 비동기 IO를 사용하려면 Java를 사용해야 합니다.

API 선택은 상태를 재설정하지 않고도 애플리케이션 로직을 발전시키는 능력에도 영향을 미칠 수 있습니다. 이는 Java와 Python 모두에서 DataStream API에서만 사용할 수 있는 연산자에 UID를 설정하는 기능과 같은 특정 기능에 따라 달라집니다. 자세한 내용은 Apache Flink 설명서의 모든 연산자에 대한 UUID 설정을 참조하십시오.

스트리밍 데이터 애플리케이션 시작하기

스트리밍 데이터를 지속적으로 읽고 처리하는 Managed Service for Apache Flink 애플리케이션을 생성하는 것부터 시작할 수 있습니다. 그런 다음 선택한 IDE를 사용하여 코드를 작성하고 라이브 스트리밍 데이터로 테스트하십시오. Managed Service for Apache Flink가 결과를 전송하려는 대상을 구성할 수도 있습니다.

시작하려면 다음 섹션을 읽어보는 것이 좋습니다.

또는 실시간으로 대화식으로 데이터 스트림을 쿼리하고 표준 SQL, Python 및 Scala를 사용하여 스트림 처리 애플리케이션을 쉽게 빌드하고 실행할 수 있는 Apache Flink Studio용 관리형 서비스 노트북을 만드는 것부터 시작할 수 있습니다. 에서 몇 번만 클릭하면 서버리스 노트북을 실행하여 AWS Management Console데이터 스트림을 쿼리하고 몇 초 만에 결과를 얻을 수 있습니다. 시작하려면 다음 섹션을 읽어보는 것이 좋습니다.