Amazon Managed Service for Apache Flink は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Managed Service for Apache Flink で自動スケーリングを使用する
Apache Flink 用 Managed Service は、ほとんどのシナリオでソースのデータスループットとオペレーターの複雑さに対応できるように、アプリケーションの並列度を柔軟にスケーリングします。自動スケーリングはデフォルトで有効になっている。Managed Service for Apache Flink は、アプリケーションのリソース (CPU) 使用状況をモニタリングし、アプリケーションの並列処理を適宜伸縮的にスケールアップまたはスケールダウンします。
CloudWatch メトリクスの最大値が 15 分間で 75% 以上になると、アプリケーション
containerCPUUtilization
はスケールアップ (並列処理の増加) します。つまり、ScaleUp
アクションは、1 分間が 75% 以上の連続するデータポイントが 15 個あるときに開始されます。ScaleUp
アクションはアプリケーションのCurrentParallelism
を倍増します。ParallelismPerKPU
は変更されません。その結果、割り当てられた の数KPUsも倍増します。CPU 使用率が 6 時間にわたって 10% を下回ると、アプリケーションはスケールダウン (並列性の低下) します。つまり、1 分間の期間が 10% 未満の連続するデータポイントが 360 個あるときに
ScaleDown
アクションが開始されます。ScaleDown
アクションはアプリケーションの並列処理を半分 (切り上げ) にします。ParallelismPerKPU
は変更されず、割り当てられた数KPUsも半分 (切り上げ) になります。
注記
最大 1 分間containerCPUUtilization
は、スケーリングアクションに使用されるデータポイントとの相関関係を見つけるために参照できますが、アクションが初期化された正確な瞬間を反映する必要はありません。
Apache Flink 用 Managed Service では、アプリケーションの CurrentParallelism
値がアプリケーションの Parallelism
設定を下回ることはありません。
Apache Flink 用 Managed Serviceサービスがアプリケーションをスケーリングしているときは、AUTOSCALING
状態になります。 DescribeApplication または ListApplicationsアクションを使用して、現在のアプリケーションステータスを確認できます。サービスがアプリケーションをスケーリングしている間に使用できる有効なAPIアクションは、 Force
パラメータを に設定 StopApplicationすることですtrue
。
AutoScalingEnabled
プロパティ (「FlinkApplicationConfiguration
」の一部 ) を使用して、auto スケーリングの動作を有効または無効にすることができます。 AWS アカウントは、アプリケーションの parallelism
とparallelismPerKPU
設定の関数である KPUs Managed Service for Apache Flink のプロビジョニングに対して課金されます。アクティビティが急増すると、Apache Flink 用 Managed Service のコストが増加します。
料金については、「Amazon Managed Service for Apache Flink の料金
アプリケーションのスケーリングについて、以下のことに注意してください:
自動スケーリングはデフォルトで有効になっている。
Studio ノートブックにはスケーリングは適用されません。ただし、Studio Notebook を永続的状態のアプリケーションとしてデプロイすると、スケーリングはデプロイされたアプリケーションに適用されます。
アプリケーションのデフォルトの制限は 64 ですKPUs。詳細については、「Apache Flink と Studio ノートブッククォータの Managed Service」を参照してください。
自動スケーリングによってアプリケーションの並列度が更新されると、アプリケーションのダウンタイムが発生します。このダウンタイムを回避するには、以下を実行します。
自動スケーリングを無効にする
UpdateApplication アクション
parallelismPerKPU
を使用して、アプリケーションのparallelism
と を設定します。アプリケーションの並列処理設定の詳細については、「」を参照してくださいアプリケーションの並列処理を更新する。アプリケーションのリソース使用状況を定期的に監視して、アプリケーションがワークロードに適した並列度設定になっていることを確認してください。割り当てリソースの使用状況を監視する方法については、Managed Service for Apache Flink のメトリクスとディメンション を参照してください。
カスタム自動スケーリングの実装
自動スケーリングをより細かく制御したり、 以外のトリガーメトリクスを使用したりする場合はcontainerCPUUtilization
、次の例を使用できます。
-
この例では、ソースまたはシンクとして使用される Amazon MSKおよび Amazon Kinesis Data Streams からの CloudWatch メトリクスなど、Apache Flink アプリケーションとは異なるメトリクスを使用して Managed Service for Apache Flink アプリケーションをスケーリングする方法を示しています。
詳細については、「Apache Flink の拡張モニタリングと自動スケーリング
スケジュールされた自動スケーリングを実装する
ワークロードが時間の経過とともに予測可能なプロファイルに従っている場合は、Apache Flink アプリケーションを事前にスケーリングすることをお勧めします。これにより、メトリクスに基づいてリアクティブにスケーリングするのではなく、スケジュールされた時間にアプリケーションがスケーリングされます。1 日の固定時間にスケールアップとスケールダウンを設定するには、次の例を使用します。