Amazon MWAA での Apache Airflow 設定オプションの使用 - Amazon Managed Workflows for Apache Airflow

Amazon MWAA での Apache Airflow 設定オプションの使用

Apache Airflow 設定オプションは、Amazon Managed Workflows for Apache Airflow 環境に環境変数としてアタッチできます。推奨ドロップダウンリストから選択するか、Amazon MWAA コンソールでお使いの Apache Airflow バージョンに合わせてカスタム設定オプションを指定できます。このトピックでは、使用可能な Apache Airflow 設定オプションと、これらのオプションを使用して環境の Apache Airflow 設定を上書きする方法について説明します。

前提条件

このページのステップを完了するには、以下のものが必要です。

  • アクセス許可 — AWS アカウント には、管理者から、ご使用の環境の AmazonMWAAFullConsoleAccess アクセスコントロールポリシーへのアクセス許可が付与されている必要があります。さらに、Amazon MWAA 環境には、その環境で使用される AWS のリソースへのアクセスを 実行ロール で許可されている必要があります。

  • アクセス — 依存関係をウェブサーバーに直接インストールするためにパブリックリポジトリにアクセスする必要がある場合は、パブリックネットワーク のウェブサーバーアクセスが環境に設定されている必要があります。詳細については、Apache Airflow のアクセスモード を参照してください。

  • Amazon S3 設定plugins.zip で DAG、カスタムプラグイン、および requirements.txt で Python の依存関係を保存するために使用される Amazon S3 バケット は、Public Access BlockedVersioning Enabled で設定する必要があります。

仕組み

環境を作成すると、Amazon MWAAはAmazon MWAAコンソールで指定した設定を Airflow 設定オプション として指定し、それをのコンテナのAWS Fargate環境変数にアタッチします。airflow.cfg で同じ名前の設定を使用している場合は、Amazon MWAA コンソールで指定するオプションのほうが、airflow.cfg の値よりも優先されます。

デフォルトでは、Amazon MWAA 環境の Apache Airflow UI で airflow.cfg を公開しませんが設定を公開するための webserver.expose_config の設定など、Amazon MWAA コンソールで直接 Apache Airflow 設定オプションを変更できます。

設定オプションを使用してプラグインをロードする

Apache Airflow v2 のデフォルトでは、プラグインは設定を使用して「遅延的に」ロードされるように core.lazy_load_plugins : True 設定されています。カスタムプラグインを使用している場合は、Apache Airflow 設定オプションとして core.lazy_load_plugins : False を追加し、各 Airflow プロセスの開始時にプラグインをロードしてデフォルト設定を上書きする必要があります。

設定オプションの概要

Amazon MWAA コンソールで設定を追加すると、Amazon MWAA はその設定を環境変数として書き込みます。

  • リストされたオプション。ドロップダウンリストで、お使いの Apache Airflow バージョンで使用可能な設定のいずれかを選択できます。例えば、dag_concurrency : 16 です。その設定は、環境のFargateコンテナに AIRFLOW__CORE__DAG_CONCURRENCY : 16 として反映されます。

  • カスタムオプション。お使いの Apache Airflow バージョンにはない Airflow 設定オプションをドロップダウンリストに指定することもできます。例えば、foo.user : YOUR_USER_NAME です。その設定は、環境のFargateコンテナに AIRFLOW__FOO__USER : YOUR_USER_NAME として反映されます。

Apache Airflow 設定オプション

以下の画像は、Amazon MWAA コンソールで Apache Airflow 設定オプション をカスタマイズできる場所を示しています。

この画像は、Amazon MWAA コンソールの Apache Airflow 設定オプション をカスタマイズできる場所を示しています。

Apache エアフローリファレンス

Apache Airflow でサポートされている設定オプションのリストについては、Apache Airflow リファレンスガイド設定リファレンス を参照してください。Amazon MWAA で実行している Apache Airflow のバージョンのオプションにアクセスするには、ドロップダウンリストからバージョンを選択します。

Amazon MWAA コンソールの使用

以下の手順では、Airflow 設定オプションを環境に追加するステップを説明します。

  1. Amazon MWAA コンソールで、環境ページ を開きます。

  2. 環境を選択します。

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

  4. 次へ を選択します。

  5. Airflow 設定オプション ペインで カスタム設定を追加 を選択します。

  6. ドロップダウンリストから設定を選択して値を入力するか、カスタム設定を入力して値を入力します。

  7. 追加する設定ごとに カスタム設定を追加 を選択します。

  8. 保存 を選択します。

設定リファレンス

以下のセクションでは、Amazon MWAA コンソールのドロップダウンリストに利用可能な Apache Airflow 設定のリストが表示されます。

電子メールの設定

次のリストは、Apache Airflow v2 および v3 の Amazon MWAA で使用できる Airflow E メール通知設定オプションを示しています。

SMTP トラフィックにはポート 587 を使用することをお勧めします。デフォルトでは、すべての Amazon EC2 インスタンスのポート 25 でのアウトバウンド SMTP トラフィックをAWSブロックします。ポート 25 でアウトバウンド・トラフィックを送信したい場合は、この制限を解除するようリクエストする ことができます。

エアフロー設定のオプション 説明 値の例

email.email_backend

email_backend のメール通知に使用される Apache エアフローユーティリティ。

airflow.utils.email.send_email_smtp

smtp.smtp_host

smtp_host の電子メールアドレスに使用される送信サーバーの名前。

localhost

smtp.smtp_starttls

Transport Layer Security (TLS) は、smtp_starttls でインターネットの E メールの暗号化に使用されます。

smtp.smtp_ssl

セキュアソケットレイヤー (SSL) は、smtp_ssl でサーバーとメールクライアントを接続するために使用されます。

smtp.smtp_port

smtp_portでサーバに指定されたTransmission Control Protocol (TCP)。

587

smtp.smtp_mail_from

smtp_mail_from にあるアウトバウンドメールアドレス。

myemail@domain.com

タスクの設定

次のリストは、Apache Airflow v2 および v3 の Amazon MWAA の Airflow タスクのドロップダウンリストで使用できる設定を示しています。

エアフロー設定のオプション 説明 値の例

core.default_task_retries

Apache エアフロータスクを default_task_retries でリトライする回数。

3

core.parallelism

環境全体で同時に実行できるタスクインスタンスの最大数 (parallel 処理)。

40

スケジューラーの設定

次のリストは、Apache Airflow v2 および v3 の Amazon MWAA のドロップダウンリストで使用できる Apache Airflow スケジューラー設定を示しています。

エアフロー設定のオプション 説明 値の例

scheduler.catchup_by_default

catchup_by_default の特定の時間間隔に「追いつく」ための DAG 実行を作成するようにスケジューラーに指示します。

scheduler.scheduler_zombie_task_threshold

注記

Apache Airflow v3 では使用できません。

タスクインスタンスを障害としてマークし、scheduler_zombie_task_threshold 内のタスクを再スケジュールするかどうかをスケジューラーに指示します。

300

ワーカーの設定

次のリストは、Apache Airflow v2 および v3 の Amazon MWAA のドロップダウンリストで使用できる Airflow ワーカー設定を示しています。

エアフロー設定のオプション 説明 値の例

celery.worker_autoscale

worker_autoscaleCelery Executor を使用するすべてのワーカーで同時に実行できるタスクの最大数と最小数。値は次の順序でカンマで区切る必要があります:max_concurrency,min_concurrency

16、12

ウェブサーバーの設定

次のリストには、Apache Airflow v2 および v3 用の Amazon MWAA のドロップダウンリストで使用できる Apache Airflow ウェブサーバーの設定が表示されます。

エアフロー設定のオプション 説明 値の例

webserver.default_ui_timezone

注記

Apache Airflow v3 では使用できません。

default_ui_timezone の Apache Airflow UI のデフォルト日時設定。

注記

このdefault_ui_timezoneオプションを設定しても、DAG の実行がスケジュールされているタイムゾーンは変更されません。DAG のタイムゾーンを変更するには、カスタムプラグインを使用できます。詳細については、Amazon MWAA での DAG のタイムゾーンの変更 を参照してください。

America/New_York

トリガー設定

以下のリストは、Apache Airflow v2 および v3 の Amazon MWAA で使用可能な Apache Airflow トリガー 設定を示しています。

エアフロー設定のオプション 説明 値の例

mwaa.triggerer_enabled

Amazon MAA でトリガーをアクティブ化および非アクティブ化するために使用されます。デフォルトではこの値は True に設定されます。Falseに設定すると、Amazon MWAA はスケジューラーのトリガープロセスを開始しません。

triggerer.default_capacity (v2 の場合)

triggerer.capacity (v3 の場合)

各トリガーで parallel に実行できる、トリガーの数を定義します。Amazon MWAA では、両方のコンポーネントが互いに並行して実行されるため、この容量はトリガーごととスケジューラーごとに設定されます。デフォルトのスケジューラあたりの値は、それぞれ small、medium と large、xlarge、2xlarge のインスタンスに対して 60125250500、および 1000 に設定されています。

125

例とサンプルコード

DAG の例

次の DAG を使用して email_backend Apache Airflow 設定オプションを印刷できます。Amazon MWAA イベントに応答して実行するには、Amazon S3 ストレージバケットにある環境の DAG フォルダにコードをコピーします。

from airflow.decorators import dag from datetime import datetime def print_var(**kwargs): email_backend = kwargs['conf'].get(section='email', key='email_backend') print("email_backend") return email_backend @dag( dag_id="print_env_variable_example", schedule_interval=None, start_date=datetime(yyyy, m, d), catchup=False, ) def print_variable_dag(): email_backend_test = PythonOperator( task_id="email_backend_test", python_callable=print_var, provide_context=True ) print_variable_test = print_variable_dag()

電子メール通知の設定例

アプリパスワードを使用する Gmail.com メールアカウントには、次の Apache Airflow 設定オプションを使用できます。詳しくは、Gmail ヘルプリファレンスガイドアプリパスワードを使用してログインする を参照してください。

この画像は、MWAA コンソールの Apache Airflow 設定オプションを使用して gmail.com メールアカウントを設定する方法を示しています。

次のステップ

  • DAG の追加と更新で、DAG フォルダを Amazon S3 バケットにアップロードする方法について説明します。