Amazon Managed Service for Apache Flink(Amazon MSF)는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려져 있었습니다.
애플리케이션 업그레이드 시 주의 사항 및 알려진 문제
브로커 재시작 후 Kafka 커밋이 체크포인트에서 반복적으로 실패
Flink 버전 1.15의 Apache Kafka 커넥터에는 Kafka Client 2.8.1의 심각한 오픈 소스 Kafka Client 버그로 인해 발생하는 알려진 오픈 소스 Apache Flink 문제가 있습니다. 자세한 내용은 브로커 재시작 후 Kafka 커밋이 체크포인트에서 반복적으로 실패
이 문제를 방지하려면 Amazon Managed Service for Apache Flink에서 Apache Flink 1.18 이상을 사용하는 것을 권장합니다.
상태 호환성의 알려진 제한 사항
-
Table API를 사용하는 경우 Apache Flink는 버전 간 상태 호환성을 보장하지 않습니다. 자세한 내용은 Apache Flink 설명서의 상태 저장 업그레이드 및 발전
을 참조하세요. -
Flink 1.6 상태는 Flink 1.18과 호환되지 않습니다. 따라서 상태를 유지한 채 1.6에서 1.18 이상으로 업그레이드하려 하면 API 요청이 거부됩니다. 대신 1.8, 1.11, 1.13, 1.15로 순차 업그레이드한 뒤 스냅샷을 생성하고, 이후 1.18 이상으로 업그레이드하는 방식으로 진행할 수 있습니다. 자세한 내용은 Apache Flink 설명서의 애플리케이션 및 Flink 버전 업그레이드
를 참조하세요.
Flink Kinesis 커넥터의 알려진 문제
-
Flink 1.11 이하 버전에서 향상된 팬아웃(EFO) 지원을 위해
amazon-kinesis-connector-flink커넥터를 사용하는 경우, Flink 1.13 이상으로 상태 저장 업그레이드를 수행하려면 추가 단계가 필요합니다. 이는 커넥터의 패키지 이름 변경 때문입니다. 자세한 내용은 amazon-kinesis-connector-flink를 참조하세요. Flink 1.11 이하 버전의
amazon-kinesis-connector-flink커넥터는software.amazon.kinesis패키징을 사용하지만, Flink 1.13 이상의 Kinesis 커넥터는org.apache.flink.streaming.connectors.kinesis를 사용합니다. 마이그레이션 지원 도구로 amazon-kinesis-connector-flink-state-migrator를 사용합니다. -
Flink 1.13 이하 버전에서
FlinkKinesisProducer를 사용 중이며 Flink 1.15 이상으로 업그레이드하려는 경우, 상태 저장 업그레이드를 위해서는 새로운KinesisStreamsSink대신 Flink 1.15 이상에서도 계속FlinkKinesisProducer를 사용해야 합니다. 하지만 싱크에 이미 사용자 지정uid가 설정되어 있는 경우FlinkKinesisProducer가 상태를 유지하지 않기 때문에KinesisStreamsSink로 전환할 수 있습니다. 사용자 지정uid가 설정되어 있으므로 Flink는 이를 동일한 연산자로 취급합니다.
Scala로 작성된 Flink 애플리케이션
-
Flink 1.15부터 Apache Flink 런타임에 Scala가 포함되지 않습니다. Flink 1.15 이상으로 업그레이드할 때 사용하려는 Scala 버전과 기타 Scala 종속성을 코드 JAR/zip에 포함해야 합니다. 자세한 내용은 Amazon Managed Service for Apache Flink 1.15.2 릴리스를 참조하세요.
-
애플리케이션이 Scala를 사용하고 있고 Flink 1.11 이하 버전(Scala 2.11)에서 Flink 1.13(Scala 2.12)으로 업그레이드하는 경우, 코드가 Scala 2.12를 사용하도록 해야 합니다. 그렇지 않으면 Flink 1.13 애플리케이션이 Flink 1.13 런타임에서 Scala 2.11 클래스를 찾지 못할 수 있습니다.
Flink 애플리케이션 다운로드 시 고려해야 할 사항
-
Flink 애플리케이션을 다운그레이드할 수 있지만, 이전에 더 낮은 Flink 버전에서 실행한 적이 있는 경우로 제한됩니다. 상태 저장 업그레이드의 경우 Managed Service for Apache Flink는 다운그레이드를 위해 동일 버전 또는 이전 버전에서 생성된 스냅샷 사용을 요구합니다.
-
Flink 1.13 이상에서 Flink 1.11 이하로 런타임을 업데이트하고 앱이 HashMap 상태 백엔드를 사용하는 경우, 애플리케이션은 계속 실패합니다.