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