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용 관리형 서비스는 다음과 같이 Parallelism
및 ParallelismPerKPU
속성을 사용하여 애플리케이션을 실행하는 데 필요한 값을 계산합니다. 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 작업을 작업의 최대 병렬 처리 수를 초과하는 병렬 처리로 확장하는 것을 방지합니다.
사용자 지정 자동 크기 조정 또는 예약 크기 조정을 사용하는 경우 작업의 최대 병렬 처리 수를 초과하지 않도록 구성하세요.
최대 병렬 처리 수 이상으로 애플리케이션을 수동으로 확장하면 애플리케이션이 시작되지 않습니다.