Apache Flink용 매니지드 서비스에 내결함성 구현 - Managed Service for Apache Flink

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

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

Apache Flink용 매니지드 서비스에 내결함성 구현

체크포인트는 Amazon Managed Service for Apache Flink.에서 내결함성을 구현하는 데 사용하는 방법입니다. 체크포인트는 예상치 못한 애플리케이션 중단이나 페일오버로부터 즉시 복구하는 데 사용되는 실행 중인 애플리케이션의 up-to-date 백업입니다.

Apache Flink 애플리케이션의 체크포인트에 대한 자세한 내용은 Apache Flink 설명서의 체크포인트를 참조하십시오.

스냅샷은 수동으로 생성하고 관리되는 애플리케이션 상태 백업입니다. 스냅샷으로 UpdateApplication 호출을 통해 애플리케이션을 이전 상태로 복원할 수 있습니다. 자세한 내용은 스냅샷을 사용한 애플리케이션 백업 관리 단원을 참조하십시오.

애플리케이션에 체크포인트가 활성화되어 있는 경우 서비스는 예상치 못한 애플리케이션 재시작 시 애플리케이션 데이터의 백업을 생성하고 로드하여 내결함성을 제공합니다. 이러한 예기치 않은 애플리케이션 재시작은 예상치 못한 작업 재시작, 인스턴스 장애 등으로 인해 발생할 수 있습니다. 이렇게 하면 애플리케이션을 다시 시작하는 동안 장애 없이 실행하는 것과 동일한 의미 체계를 갖게 됩니다.

애플리케이션에 대해 스냅샷을 활성화하고 애플리케이션을 사용하여 구성한 경우, 서비스는 애플리케이션 업데이트 중이나 서비스 관련 확장 또는 유지 관리 중에 정확히 한 번의 처리 시맨틱을 제공합니다. ApplicationRestoreConfiguration

Apache Flink용 관리 서비스에서 체크포인트를 구성하십시오.

애플리케이션의 체크포인트 동작을 구성할 수 있습니다. 체크포인트 상태를 유지할지 여부, 상태를 체크포인트에 저장하는 빈도, 한 체크포인트 작업의 종료와 다른 체크포인트 작업의 시작 사이의 최소 간격을 정의할 수 있습니다.

또는 작업을 사용하여 다음 설정을 구성합니다. CreateApplicationUpdateApplicationAPI

  • CheckpointingEnabled — 애플리케이션에서 체크포인트가 활성화되었는지 여부를 나타냅니다.

  • CheckpointInterval — 체크포인트(지속성) 작업 사이의 시간(밀리초)을 포함합니다.

  • ConfigurationType — 기본 체크포인트 동작을 사용하려면 이 값을 DEFAULT으로 설정합니다. 다른 값을 구성하려면 이 값을 CUSTOM으로 설정하세요.

    참고

    기본 체크포인트 동작은 다음과 같습니다.

    • CheckpointingEnabled: true

    • CheckpointInterval: 60000

    • MinPauseBetweenCheckpoints: 5000

    ConfigurationTypeDEFAULT설정된 경우 를 사용하거나 애플리케이션 코드에서 값을 설정하여 다른 값으로 설정하더라도 이전 값이 사용됩니다. AWS Command Line Interface

    참고

    Flink 1.15 이후 버전에서는 Managed Service for Apache Flink가 자동 스냅샷 생성, 즉 애플리케이션 업데이트, 크기 조정 또는 중지하는 동안 stop-with-savepoint를 사용합니다.

  • MinPauseBetweenCheckpoints — 한 체크포인트 작업 종료와 다른 체크포인트 작업 시작 사이의 최소 시간(밀리초) 이 값을 설정하면 체크포인트 작업이 CheckpointInterval 보다 오래 걸리는 경우에 애플리케이션이 연속으로 체크포인트를 수행하는 것을 방지합니다.

체크포인트 API 예제를 검토하세요.

이 섹션에는 애플리케이션의 체크포인트 구성을 위한 API 작업에 대한 예제 요청이 포함되어 있습니다. API작업 입력에 JSON 파일을 사용하는 방법에 대한 자세한 내용은 을 참조하십시오. 아파치 플링크용 매니지드 서비스 API 예제 코드

새 응용 프로그램의 체크포인트 구성

CreateApplication 작업을 위한 다음 예 요청은 애플리케이션을 생성할 때 체크포인트 수행을 구성합니다.

{ "ApplicationName": "MyApplication", "RuntimeEnvironment":"FLINK-1_19", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "FlinkApplicationConfiguration": { "CheckpointConfiguration": { "CheckpointingEnabled": "true", "CheckpointInterval": 20000, "ConfigurationType": "CUSTOM", "MinPauseBetweenCheckpoints": 10000 } } }

새 애플리케이션의 체크포인트 비활성화

CreateApplication 작업을 위한 다음 예 요청은 애플리케이션을 생성할 때 체크포인트 수행을 비활성화합니다.

{ "ApplicationName": "MyApplication", "RuntimeEnvironment":"FLINK-1_19", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "FlinkApplicationConfiguration": { "CheckpointConfiguration": { "CheckpointingEnabled": "false" } } }

기존 애플리케이션의 체크포인트 구성

UpdateApplication 작업을 위한 다음 예 요청은 기존 애플리케이션의 체크포인트 수행을 구성합니다.

{ "ApplicationName": "MyApplication", "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "CheckpointingEnabledUpdate": true, "CheckpointIntervalUpdate": 20000, "ConfigurationTypeUpdate": "CUSTOM", "MinPauseBetweenCheckpointsUpdate": 10000 } } } }

기존 애플리케이션의 체크포인트 비활성화

UpdateApplication 작업을 위한 다음 예 요청은 기존 애플리케이션에 대한 체크포인트 수행을 비활성화합니다.

{ "ApplicationName": "MyApplication", "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "CheckpointingEnabledUpdate": false, "CheckpointIntervalUpdate": 20000, "ConfigurationTypeUpdate": "CUSTOM", "MinPauseBetweenCheckpointsUpdate": 10000 } } } }