Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) era conhecido como Amazon Kinesis Data Analytics for Apache Flink.
Use a escalabilidade automática no Managed Service for Apache Flink
O Managed Service for Apache Flink dimensiona elasticamente o paralelismo de seu aplicativo para acomodar o throughput de dados de sua fonte e a complexidade de seu operador na maioria dos cenários. O ajuste de escala automático está habilitado por padrão. O Managed Service for Apache Flink monitora o uso de recursos (CPU) do seu aplicativo e aumenta ou diminui elasticamente o paralelismo do seu aplicativo de acordo com:
Seu aplicativo aumenta a escala verticalmente (aumenta o paralelismo) se a métrica máxima do CloudWatch
containerCPUUtilizationfor maior que 75 por cento ou acima de 15 minutos. Isso significa que a açãoScaleUpé iniciada quando há 15 pontos de dados consecutivos com um período de 1 minuto igual ou superior a 75%. Uma açãoScaleUpdobra oCurrentParallelismdo seu aplicativo. OParallelismPerKPUnão é modificado. Como consequência, o número de KPUs alocadas também dobra.Seu aplicativo reduz a escala verticalmente (diminui o paralelismo) quando o uso da CPU permanece abaixo de 10% por seis horas. Isso significa que a ação
ScaleDowné iniciada quando há 360 pontos de dados consecutivos com um período de 1 minuto inferior a 10%. Uma açãoScaleDowndivide pela metade (arredondando para cima) o paralelismo do aplicativo. OParallelismPerKPUnão é modificado e o número de KPUs alocadas também é reduzido pela metade (arredondado para cima).
nota
Um período máximo de containerCPUUtilization acima de 1 minuto pode ser referenciado para encontrar a correlação com um ponto de dados usado para a ação de escalabilidade, mas não é necessário refletir o momento exato em que a ação é iniciada.
O Managed Service for Apache Flink não reduzirá o valor CurrentParallelism do seu aplicativo para menos do que a configuração Parallelism do seu aplicativo.
Quando o serviço do Managed Service for Apache Flink estiver escalando seu aplicativo, ele estará no status AUTOSCALING. Você pode verificar o status atual do seu aplicativo usando as ações DescribeApplication ou ListApplications. Enquanto o serviço está escalando seu aplicativo, a única ação de API válida que você pode usar é StopApplication com o parâmetro Force definido como true.
Você pode usar a propriedade AutoScalingEnabled (parte de FlinkApplicationConfiguration) para ativar ou desativar o comportamento de ajuste de escala automático. Sua conta AWS é cobrada pelas KPUs que o Managed Service for Apache Flink provisiona, o que é uma função das configurações parallelism e parallelismPerKPU do seu aplicativo. Um pico de atividade aumenta os custos do Managed Service for Apache Flink.
Para obter mais informações sobre preços, consulte Preço do Amazon Managed Service for Apache Flink
Observe o seguinte sobre escalonamento de aplicativo:
O ajuste de escala automático está habilitado por padrão.
O escalonamento não se aplica aos blocos de anotações do Studio. No entanto, se você implantar um bloco de anotações do Studio como um aplicativo de estado durável, o escalonamento será aplicado ao aplicativo implantado.
Seu aplicativo tem um limite padrão de 64 KPUs. Para obter mais informações, consulte Quota do notebook do Managed Service for Apache Flink e Studio.
Quando o ajuste automático de escala automático atualiza o paralelismo do aplicativo, o aplicativo passa por um tempo de inatividade. Para evitar esse tempo de inatividade, faça o seguinte:
Desabilitar o ajuste de escala automático
Configure
parallelismeparallelismPerKPUdo seu aplicativo com a ação UpdateApplication. Para obter mais informações sobre como definir as configurações de paralelismo do aplicativo, consulte Atualize o paralelismo do seu aplicativo.Monitore periodicamente o uso de recursos do seu aplicativo para verificar se ele tem as configurações de paralelismo corretas para seu workload. Para obter informações sobre monitoramento de alocação de recursos, consulte Métricas e dimensões no Managed Service for Apache Flink.
Implemente a escalabilidade automática personalizada
Se você quiser um controle mais refinado sobre a escalabilidade automática ou usar outras métricas diferentes de containerCPUUtilization, você pode usar este exemplo:
-
Esses exemplos ilustram como escalar seu aplicativo Managed Service for Apache Flink usando uma métrica CloudWatch diferente do aplicativo Apache Flink, incluindo métricas do Amazon MSK e do Amazon Kinesis Data Streams, usadas como fontes ou coletores.
Para obter informações adicionais, consulte Monitoramento aprimorado e escalabilidade automática para o Apache Flink
Implemente a escalabilidade automática programada
Se sua workload seguir um perfil previsível ao longo do tempo, talvez você prefira escalar seu aplicativo Apache Flink preventivamente. Isso escala seu aplicativo em um horário programado, em vez de escalar reativamente com base em uma métrica. Para configurar a escalabilidade vertical e horizontal em horários fixos do dia, você pode usar este exemplo: