Amazon MWAA ワーカーの自動スケーリングの設定 - Amazon Managed Workflows for Apache Airflow

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon MWAA ワーカーの自動スケーリングの設定

自動スケーリングメカニズムは、Amazon Managed Workflows for Apache Airflow 環境で実行中およびキューに入っているタスクに応じて Apache Airflow ワーカーの数を自動的に増やし、キューに入っているタスクや実行中のタスクがなくなると、余分なワーカーを廃棄します。このトピックでは、Amazon MWAA コンソールを使用して環境で実行される Apache Airflow ワーカーの最大数を指定して、自動スケーリングを設定する方法について説明します。

注記

Amazon MWAA は Apache Airflow メトリクスを使用して、追加の Celery Executor ワーカーが必要なタイミングを判断し、必要に応じて Fargate ワーカーの数を で指定された値まで増やしますmax-workers。追加のワーカーが作業を完了し、作業負荷が減少すると、Amazon MWAA はそれらを削除し、 によって設定された値にダウンスケーリングしますmin-workers

ワーカーがダウンスケーリング中に新しいタスクを取得する場合、Amazon MWAA は Fargate リソースを保持し、ワーカーを削除しません。詳細については、「Amazon MWAA Auto Scaling の仕組み」を参照してください。

ワーカースケーリングの仕組み

Amazon MWAA は RunningTasksおよび QueuedTasksメトリクスを使用します。ここで、 (実行中のタスク + キューに入っているタスク) / (ワーカーあたりのタスク) = (必須ワーカー) です。必要なワーカー数が現在のワーカー数より大きい場合、Amazon MWAA はその値に Fargate ワーカーコンテナを、 で指定された最大値まで追加しますmax-workers

ワークロードが減少し、 RunningTasksおよび QueuedTasksメトリクスの合計が減少すると、Amazon MWAA は Fargate に環境のワーカーのスケールダウンを要求します。まだ作業を完了しているワーカーは、作業が完了するまでダウンスケーリング中も保護されます。ワークロードによっては、ワーカーがダウンスケールしている間にタスクをキューに入れることができます。

Amazon MWAA コンソールの使用

Amazon MWAA コンソールで、環境で同時に実行できるワーカーの最大数を選択できます。デフォルトでは、最大値を 25 まで指定できます。

ワーカー数を設定するには
  1. Amazon MWAA コンソールで環境ページを開きます。

  2. 環境を選択します。

  3. [編集] を選択します。

  4. [Next (次へ)] を選択します。

  5. [環境クラス] ペインで、[最大ワーカー数] に値を入力します。

  6. [Save] を選択します。

注記

環境への変更が適用されるまで数分ほどかかります。

高パフォーマンスのユースケースの例

次のセクションでは、ある環境で高いパフォーマンスと並列処理を実現するために使用できる構成の種類について説明します。

オンプレミスの Apache エアフロー

通常、オンプレミスの Apache Airflow プラットフォームでは、airflow.cfg ファイル内でタスクの並列処理、自動スケーリング、同時実行の設定を行います。

  • core.parallelism— スケジューラーごとに同時に実行できるタスクインスタンスの最大数。

  • core.dag_concurrency – DAGs (ワーカーではない) の最大同時実行数。

  • celery.worker_autoscale— 任意のワーカーで同時に実行できるタスクの最大数と最小数。

例えば、 core.parallelismが に設定100され、 core.dag_concurrencyが に設定されている場合7、2 DAGs の場合のみ、合計 の14タスクを同時に実行できます。その場合、全体的な並列処理が ( でcore.dag_concurrency) に設定されている場合でも、各 DAG は 7 つのタスクのみを同時に実行するように設定されます 100 ( で)core.parallelism

Amazon MWAA 環境の場合

Amazon MWAA 環境では、Amazon MWAA での Apache Airflow 設定オプションの使用、、および最大ワーカー数の自動スケーリングメカニズムを使用してAmazon MWAA 環境クラスの設定、Amazon MWAA コンソールでこれらの設定を直接設定できます。core.dag_concurrency は Amazon MWAA コンソールの Apache Airflow 設定オプションとしてドロップダウンリストでは使用できませんが、カスタム Apache Airflow 設定オプションとして追加できます。

環境を作成したときに、次の設定を選択したとします。

  1. 各ワーカーがデフォルトで実行できる同時タスクの最大数とコンテナの vCPU を制御する mw1.small 環境クラス

  2. 最大ワーカー数のデフォルト設定は 10 のワーカーです。

  3. celery.worker_autoscaleのワーカーあたりの5,5のタスクのための Apache Airflow 構成オプション

つまり、環境内で 50 件のタスクを同時に実行できます。50 個を超えるタスクはキューに入れられ、実行中のタスクが完了するまで待機します。

同時実行タスクをさらに実行する。以下の構成を使用して、より多くのタスクを同時に実行するように環境を変更できます。

  1. (デフォルトでは mw1.medium10 個の同時タスク) 環境クラスを選択して、各ワーカーがデフォルトで実行できる同時タスクの最大数とコンテナの vCPU を増やします。

  2. celery.worker_autoscaleApache Airflow 構成オプションとして追加してください。

  3. 最大ワーカー数を増やしてください。この例では、最大ワーカーを 10 から 20 に増やすと、環境が同時に実行できるタスクの数が倍になります。

最小ワーカー数を指定します。 AWS Command Line Interface () を使用して、環境で実行される Apache Airflow ワーカーの最小数と最大数を指定することもできますAWS CLI。例:

aws mwaa update-environment --max-workers 10 --min-workers 10 --name YOUR_ENVIRONMENT_NAME

詳細については、 AWS CLIの update-environment コマンドを参照してください。

タスクが実行状態で止まってしまう問題のトラブルシューティング

まれに、Apache Airflow がまだ実行中のタスクがあると判断することがあります。この問題を解決するには、Apache Airflow UI で孤立したタスクをクリアする必要があります。詳細については、トラブルシューティングトピック タスクが行き詰まっいるか、完了していません。 を参照してください。

次のステップ