Amazon Managed Service for Apache Flink는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려졌습니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Managed Service for Apache Flink 애플리케이션에 대한 시스템 롤백 활성화
시스템 롤백 기능을 사용하면 Amazon Managed Service for Apache Flink에서 실행 중인 Apache Flink 애플리케이션의 가용성을 높일 수 있습니다. 이 구성을 선택하면 UpdateApplication
또는 와 같은 작업이 코드 또는 구성 버그로 autoscaling
실행될 때 서비스가 애플리케이션을 이전에 실행 중인 버전으로 자동으로 되돌릴 수 있습니다.
참고
시스템 롤백 기능을 사용하려면 애플리케이션을 업데이트하여 옵트인해야 합니다. 기존 애플리케이션은 기본적으로 시스템 롤백을 자동으로 사용하지 않습니다.
작동 방식
업데이트 또는 조정 작업과 같은 애플리케이션 작업을 시작하면 Amazon Managed Service for Apache Flink가 먼저 해당 작업을 실행하려고 시도합니다. 코드 버그 또는 권한 부족과 같이 작업이 성공하지 못하게 하는 문제를 감지하면 서비스가 자동으로 RollbackApplication
작업을 시작합니다.
롤백은 연결된 애플리케이션 상태와 함께 애플리케이션을 성공적으로 실행된 이전 버전으로 복원하려고 시도합니다. 롤백에 성공하면 애플리케이션은 이전 버전을 사용하여 가동 중지 시간을 최소화하면서 데이터를 계속 처리합니다. 자동 롤백도 실패하면 Amazon Managed Service for Apache Flink가 애플리케이션을 READY
상태로 전환하므로 오류를 수정하고 작업을 다시 시도하는 등의 추가 작업을 수행할 수 있습니다.
자동 시스템 롤백을 사용하려면 옵트인해야 합니다. 이 시점부터 콘솔을 사용하거나 애플리케이션의 모든 작업에 API 대해 활성화할 수 있습니다.
다음 UpdateApplication
예제 작업 요청은 애플리케이션에 대한 시스템 롤백을 활성화합니다.
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "ApplicationSystemRollbackConfigurationUpdate": { "RollbackEnabledUpdate": "true" } } }
자동 시스템 롤백에 대한 일반적인 시나리오 검토
다음 시나리오는 자동 시스템 롤백이 유용한 위치를 보여줍니다.
애플리케이션 업데이트: 기본 메서드를 통해 Flink 작업을 초기화할 때 버그가 있는 새 코드로 애플리케이션을 업데이트하면 자동 롤백을 통해 이전 작업 버전을 복원할 수 있습니다. 시스템 롤백이 도움이 되는 기타 업데이트 시나리오는 다음과 같습니다.
-
애플리케이션이 보다 높은 병렬 처리로 실행되도록 업데이트되는 경우maxParallelism.
-
Flink 작업을 시작하는 동안 오류가 발생하는 VPC 애플리케이션의 서브넷이 잘못되어 애플리케이션이 실행되도록 업데이트되는 경우.
-
Flink 버전 업그레이드: 새 Apache Flink 버전으로 업그레이드하고 업그레이드된 애플리케이션에 스냅샷 호환성 문제가 발생하면 시스템 롤백을 통해 이전 Flink 버전으로 자동으로 되돌릴 수 있습니다.
AutoScaling: 스냅샷과 Flink 작업 그래프 간의 연산자 불일치로 인해 애플리케이션이 확장되지만 저장점에서 복원하는 데 문제가 발생하는 경우.
시스템 롤백APIs에 작업 사용
가시성을 높이기 위해 Amazon Managed Service for Apache Flink에는 장애 및 APIs 관련 시스템 롤백을 추적하는 데 도움이 되는 애플리케이션 작업과 관련된 두 가지가 있습니다.
ListApplicationOperations
여기에는 , UpdateApplication
, Maintenance
RollbackApplication
및 기타를 포함하여 애플리케이션에서 수행된 모든 작업이 역순으로 API 나열됩니다. 다음 예제 ListApplicationOperations
작업 요청에는 애플리케이션의 처음 10개 애플리케이션 작업이 나열됩니다.
{ "ApplicationName": "MyApplication", "Limit": 10 }
에 대한 다음 예제 요청은 목록을 애플리케이션의 이전 업데이트로 필터링하는 데 ListApplicationOperations
도움이 됩니다.
{ "ApplicationName": "MyApplication", "operation": "UpdateApplication" }
DescribeApplicationOperation
이는 해당하는 경우 실패 이유를 ListApplicationOperations
포함하여 에서 나열한 특정 작업에 대한 자세한 정보를 API 제공합니다. DescribeApplicationOperation
작업에 대한 다음 예제 요청은 특정 애플리케이션 작업에 대한 세부 정보를 나열합니다.
{ "ApplicationName": "MyApplication", "OperationId": "xyzoperation" }
문제 해결 정보는 시스템 롤백 모범 사례를 참조하세요.