Use a escalabilidade automática no Managed Service for Apache Flink - Managed Service for Apache Flink

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 containerCPUUtilization for maior que 75 por cento ou acima de 15 minutos. Isso significa que a ação ScaleUp é iniciada quando há 15 pontos de dados consecutivos com um período de 1 minuto igual ou superior a 75%. Uma ação ScaleUp dobra o CurrentParallelism do seu aplicativo. O ParallelismPerKPU nã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ção ScaleDown divide pela metade (arredondando para cima) o paralelismo do aplicativo. O ParallelismPerKPU nã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:

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:

  • AutoScaling

    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: