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의 작업 병렬 실행 및 리소스 할당을 구성하여 규모 조정을 구현할 수 있습니다. Apache Flink가 작업의 병렬 인스턴스를 스케줄링하는 방법에 대한 자세한 내용은 Apache Flink 설명서의 병렬 실행을 참조하십시오.

애플리케이션 병렬성을 구성하고 ParallelismPer KPU

다음 ParallelismConfiguration 속성을 사용하여 Managed Service for Apache Flink 애플리케이션 작업(예: 소스에서 읽기 또는 연산자 실행)에 대한 병렬 실행을 구성합니다.

  • Parallelism — 이 속성을 사용하여 기본 Apache Flink 애플리케이션 병렬성을 설정합니다. 모든 연산자, 소스 및 싱크는 애플리케이션 코드에서 재정의되지 않는 한 이 병렬성으로 실행됩니다. 기본값은 1이고, 기본 최대값은 256입니다.

  • ParallelismPerKPU— 이 속성을 사용하여 애플리케이션의 Kinesis 프로세싱 유닛 (KPU) 별로 예약할 수 있는 병렬 작업 수를 설정합니다. 기본값은 1이고 최대값은 8입니다. 블로킹 작업 (예: I/O) 이 있는 애플리케이션의 경우 값이 높을수록 KPU 리소스가 완전히 활용됩니다. ParallelismPerKPU

참고

한도는 한도 KPUs (기본값 64) 의 ParallelismPerKPU 곱과 같습니다. Parallelism KPUs한도 증가를 요청하여 한도를 늘릴 수 있습니다. 한도 증가를 요청하는 방법에 대한 지침은 Service Quotas의 “한도 증가를 요청하려면”을 참조하세요.

특정 연산자의 작업 병렬성 설정에 대한 자세한 내용은 Apache Flink 설명서의 병렬성 설정: 연산자를 참조하십시오.

Kinesis 프로세싱 유닛 할당

Apache Flink용 관리형 서비스는 용량을 다음과 같이 프로비저닝합니다. KPUs 싱글은 1v CPU 및 4GB의 메모리를 KPU 제공합니다. KPU할당될 때마다 50GB의 실행 중인 애플리케이션 스토리지도 제공됩니다.

Apache Flink용 관리형 서비스는 다음과 같이 ParallelismParallelismPerKPU 속성을 사용하여 애플리케이션을 실행하는 데 필요한 값을 계산합니다. KPUs

Allocated KPUs for the application = Parallelism/ParallelismPerKPU

Managed Service for Apache Flink는 처리량 또는 처리 활동의 급증에 대응하여 애플리케이션 리소스를 신속하게 제공합니다. 활동 급증이 지난 후 애플리케이션에서 리소스를 점진적으로 제거합니다. 리소스 자동 할당을 비활성화하려면 나중에 애플리케이션의 병렬성을 업데이트하세요.에서 설명하는 대로 AutoScalingEnabled 값을 false로 설정합니다.

KPUs애플리케이션의 기본 한도는 64입니다. 이 한도 증가를 요청하는 방법에 대한 지침은 Service Quotas의 “한도 증가를 요청하려면”을 참조하십시오.

참고

오케스트레이션 목적의 경우 추가 요금이 KPU 부과됩니다. 자세한 내용을 알아보려면 Managed Service for Apache Flink 요금을 참조하세요.

애플리케이션의 병렬성을 업데이트하세요.

이 섹션에는 애플리케이션의 병렬성을 설정하는 API 작업에 대한 샘플 요청이 포함되어 있습니다. 요청 블록을 API 작업과 함께 사용하는 방법에 대한 추가 예제와 지침은 을 참조하십시오. 아파치 플링크용 매니지드 서비스 API 예제 코드

다음 예 CreateApplication 작업 요청은 애플리케이션을 만들 때 병렬성을 설정합니다.

{ "ApplicationName": "string", "RuntimeEnvironment":"FLINK-1_18", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": { "ParallelismConfiguration": { "AutoScalingEnabled": "true", "ConfigurationType": "CUSTOM", "Parallelism": 4, "ParallelismPerKPU": 4 } } } }

UpdateApplication 작업을 위한 다음 예 요청은 기존 애플리케이션에 대한 병렬성을 설정합니다.

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "true", "ConfigurationTypeUpdate": "CUSTOM", "ParallelismPerKPUUpdate": 4, "ParallelismUpdate": 4 } } } }

UpdateApplication 작업을 위한 다음 예 요청은 기존 애플리케이션에 대한 병렬성을 비활성화합니다.

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "false" } } } }

maxParallelism 고려 사항

Flink 작업에서 확장할 수 있는 최대 병렬도는 해당 작업의 모든 연산자에 대한 maxParallelism최소값으로 제한됩니다. 예를 들어 소스와 싱크만 있는 간단한 작업의 경우 소스의 a가 16이고 싱크가 8인 maxParallelism 경우 응용 프로그램은 병렬 처리 수를 8로 확장할 수 없습니다.

maxParallelism연산자의 기본값을 계산하는 방법과 기본값을 재정의하는 방법을 알아보려면 Apache Flink 설명서의 최대 병렬성 설정을 참조하십시오.

기본 규칙에 따라 연산자를 maxParallelism 정의하지 않고 128 이하의 병렬 처리로 응용 프로그램을 시작하면 모든 연산자의 a가 128이 된다는 점에 유의하십시오. maxParallelism

참고

작업의 최대 병렬도는 상태를 유지하면서 애플리케이션을 확장하기 위한 병렬 처리의 상한입니다.

기존 애플리케이션을 maxParallelism 수정하면 이전 스냅샷으로 찍은 이전 스냅샷에서 애플리케이션을 다시 시작할 수 없습니다. maxParallelism 스냅샷 없이 애플리케이션만 다시 시작할 수 있습니다.

애플리케이션을 128보다 큰 병렬 처리로 확장하려는 경우 애플리케이션에서 를 명시적으로 설정해야 합니다. maxParallelism

  • 자동 크기 조정 로직은 Flink 작업을 작업의 최대 병렬 처리 수를 초과하는 병렬 처리로 확장하는 것을 방지합니다.

  • 사용자 지정 자동 크기 조정 또는 예약 크기 조정을 사용하는 경우 작업의 최대 병렬 처리 수를 초과하지 않도록 구성하세요.

  • 최대 병렬 처리 수 이상으로 애플리케이션을 수동으로 확장하면 애플리케이션이 시작되지 않습니다.