トラブルシューティング:Amazon MWAA 環境の作成と更新  - Amazon Managed Workflows for Apache Airflow

トラブルシューティング:Amazon MWAA 環境の作成と更新 

このページのトピックでは、Amazon Managed Workflows for Apache Airflow 環境を作成および更新する際に発生する可能性のあるエラーと、これらのエラーの解決方法を記載しています。

目次

requirements.txt の更新

以下のトピックでは、requirements.txt を更新する際に受け取る可能性のあるエラーについて説明しています。

新しいバージョンを指定しましたが、requirements.txt 環境の更新に 20 分以上かかります。

お客様の環境で requirements.txt ファイルの新しいバージョンをインストールするのに 20 分以上かかる場合、環境の更新は失敗し、Amazon MWAA はコンテナイメージの最新の安定したバージョンにロールバックします。

  1. パッケージのバージョンを確認します。requirements.txt 内の Python 依存関係には、常に特定のバージョン (==) または最上位バージョン (<=) を指定することをお勧めします。

  2. Apache Airflow のログを確認してください。Apache Airflow ログを有効にした場合は、CloudWatch コンソールの ロググループ ページでロググループが正常に作成されたことを確認します。空のログが表示される場合、最も一般的な理由は、ログが書き込まれる CloudWatch または Amazon S3 の実行ロールにアクセス権限がないことが原因です。詳細については、「実行ロール」を参照してください。

  3. Apache Airflow 構成オプションを確認してください。Secrets Manager を使用している場合は、Apache Airflow 構成オプションとして指定したキーと値のペアが正しく設定されていることを確認してください。詳細については、「Apache Airflow 接続を秘密 AWS Secrets Manager を使用して構成する」を参照してください。

  4. VPCのネットワーク構成を確認します。詳細については、「環境を作成しようとしましたが、「作成中」の状態のままです。」を参照してください。

  5. 実行ロールの権限を確認します。実行ロールは、AWS ユーザーに代わって他のサービス AWS Identity and Access Management (Amazon S3、CloudWatch、Amazon SQS、Amazon ECR など) のリソースを呼び出すアクセス権限を Amazon MWAA に付与するアクセス権限ポリシーを持つ (IAM) ロールです。顧客管理キー または AWS 所有キー にもアクセスを許可する必要があります。詳細については、「実行ロール」を参照してください。

  6. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある 環境の検証 スクリプトを参照してください。

プラグイン

次のトピックでは、Apache Airflow プラグインを設定または更新する際に発生する可能性のある問題について説明します。

Amazon MWAA はカスタム UI の実装をサポートしていますか。

Apache Airflow v2.2.2 以降では、Amazon MWAA は Apache Airflow ウェブサーバーへのプラグインのインストールとカスタム UI の実装をサポートしています。Amazon MWAA 環境で Apache Airflow v2.0.2 以前を実行している場合、カスタム UI を実装することはできません。 

バージョン管理と既存環境のアップグレードの詳細については、「Amazon Managed Workflows for Apache Airflow 上の Apache Airflow のバージョン」を参照してください。

プラグインを使用して Amazon MWAA ローカルランナー にカスタム UI の変更を実装できますが、Amazon MWAA で同じことを行おうとしても、変更内容は表示されず、エラーも発生しません。この問題が発生する理由

Amazon MWAA ローカルランナーでは、すべての Apache Airflow コンポーネントが 1 つのイメージにバンドルされているため、カスタム UI プラグインの変更を適用できます。

バケットを作成する

次のトピックでは、Amazon S3 バケットを作成する時に発生する可能性があるエラーについて説明します。

S3 のパブリックアクセスのブロック設定を選択できない

Amazon MWAA 環境の 実行ロール は、Amazon S3バケット上の GetBucketPublicAccessBlock 操作に対する権限を必要とし、バケットがパブリックアクセスをブロックしていることを確認します。次のステップを推奨します。

  1. 手順に従って JSON ポリシーを実行ロールに追加します

  2. 以下の JSON ポリシーを添付する:

    { "Effect":"Allow", "Action":[ "s3:GetObject*", "s3:GetBucket*", "s3:List*" ], "Resource":[ "arn:aws:s3:::YOUR_S3_BUCKET_NAME", "arn:aws:s3:::YOUR_S3_BUCKET_NAME/*" ] }

    YOUR_S3_BUCKET_NAME のサンプルプレースホルダーを、my-mwaa-unique-s3-bucket-name などの Amazon S3 バケット名に置き換えてください。

  3. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある 環境の検証 スクリプトを参照してください。

環境を作成する

次のトピックでは、環境を作成する時に発生する可能性があるエラーについて説明します。

環境を作成しようとしましたが、「作成中」の状態のままです。

次のステップを推奨します。

  1. VPC ネットワークをパブリックルーティングで確認してください。インターネットにアクセスできる Amazon VPC を使用している場合は、以下を確認してください。

    1. Amazon VPCは、 AWS で定義されているように、Amazon MWAA 環境で使用される異なる Amazon MWAA でのネットワーキングについて リソース間のネットワークトラフィックを許可するように構成されています。例えば、VPC セキュリティグループは、自己参照ルールですべてのトラフィックを許可するか、オプションで HTTPS ポート範囲 443 と TCP ポート範囲 5432 のポート範囲を指定する必要があります。

  2. プライベートルーティングで VPC ネットワークを確認します。インターネットにアクセスせずに Amazon VPC を使用している場合は、以下を確認してください。

    1. Amazon VPC が、Amazon MWAA でのネットワーキングについて で定義されているように、Amazon MWAA 環境の異なる AWS リソース間のネットワーク・トラフィックを許可するように構成されています。たとえば、2 つのプライベートサブネットには NAT ゲートウェイ (または NAT インスタンス) へのルートテーブルやインターネットゲートウェイを持つことはできません。

  3. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある 環境の検証 スクリプトを参照してください。

環境を作成しようとしましたが、ステータスが「Create failed」と表示されます。

次のステップを推奨します。

  1. VPCのネットワーク構成を確認します。詳細については、「環境を作成しようとしましたが、「作成中」の状態のままです。」を参照してください。

  2. ユーザー権限を確認してください。Amazon MWAA は、環境を作成する前に、ユーザーの認証情報に対してドライランを実行します。お客様の AWS アカウントには、環境用のリソースの一部を作成する権限が AWS Identity and Access Management (IAM) にない場合があります。たとえば、プライベートネットワークの Apache Airflow アクセスモードを選択した場合、AWS アカウントに VPC エンドポイントの作成を許可する環境の AmazonMWAAFullConsoleAccess アクセスコントロールポリシーへのアクセス権限が管理者から付与されている必要があります。

  3. 実行ロールの権限を確認します。実行ロールは、AWS ユーザーに代わって他のサービス AWS Identity and Access Management (Amazon S3、CloudWatch、Amazon SQS、Amazon ECR など) のリソースを呼び出すアクセス権限を Amazon MWAA に付与するアクセス権限ポリシーを持つ (IAM) ロールです。顧客管理キー または AWS 所有キー にもアクセスを許可する必要があります。詳細については、「実行ロール」を参照してください。

  4. Apache Airflow のログを確認してください。Apache Airflow ログを有効にした場合は、CloudWatch コンソールの ロググループ ページでロググループが正常に作成されたことを確認します。空のログが表示される場合、最も一般的な理由は、ログが書き込まれる CloudWatch または Amazon S3 の実行ロールにアクセス権限がないことが原因です。詳細については、「実行ロール」を参照してください。

  5. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある 環境の検証 スクリプトを参照してください。

  6. インターネットにアクセスせずに Amazon VPC を使用している場合は、Amazon S3 ゲートウェイエンドポイントを作成し、Amazon S3 にアクセスするために必要最小限のアクセス権限を Amazon ECR に付与していることを確認してください。Amazon S3 ゲートウェイエンドポイントの作成についての詳細は、以下を参照してください。

VPC を選択したときに「ネットワーク障害」エラーが表示されました

次のステップを推奨します。

  • 環境の作成時に Amazon VPC を選択したときに「Network Failure」エラーが表示される場合は、実行中のブラウザ内プロキシをすべてオフにしてから、もう一度試してください。

環境を作成したときに、サービス、パーティション、またはリソースに「渡さなければなりません」というエラーが表示されました。

次のステップを推奨します。

  • Amazon S3 バケットに指定した URI の URI の末尾に「/」が含まれている場合、このエラーが表示される可能性があります。パスの '/' を削除することをお勧めします。値は以下のフォーマットでなければならない:

    s3://your-bucket-name

環境を作成しようとしたところ、ステータスが「使用可能」と表示されているのに、Airflow UI にアクセスしようとすると、「サーバーからの返信が空です」または「502 Bad ゲートウェイ」というエラーが表示されます。

次のステップを推奨します。

  1. VPC セキュリティグループの設定を確認する。詳細については、「環境を作成しようとしましたが、「作成中」の状態のままです。」を参照してください。

  2. リストアップされている Apache Airflow パッケージが、Amazon MWAA で実行している Apache Airflow requirements.txt バージョンに対応していることを確認してください。詳細については、「Python 依存関係のインストール」を参照してください。

  3. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある 環境の検証 スクリプトを参照してください。

ユーザー名がランダムな文字名の集まりになっている環境を作成しようとしました

  • Apache Airflow のユーザ名は最大 64 文字です。AWS Identity and Access Management (IAM) ロールがこの長さを超えた場合は、ハッシュアルゴリズムを使用して一意性を保ちながら短縮します。

update-environment

以下のトピックでは、環境を更新する際に受け取る可能性のあるエラーについて説明します。

環境クラスを変更しようとしましたが、更新に失敗しました

環境を別の環境カテゴリ(mw1.mediummw1.small に変更するなど)に更新し、環境の更新リクエストに失敗した場合、環境の状態は UPDATE_FAILED 状態になり、以前の安定したバージョンの環境にロールバックされ、そのバージョンに応じて課金されます。

次のステップを推奨します。

  1. GitHub の aws-mwaa-local-runner を使用して、DAG、カスタムプラグイン、Python の依存関係をローカルでテストします。

  2. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある 環境の検証 スクリプトを参照してください。

アクセス環境

以下のトピックでは、環境にアクセスする際に受け取る可能性のあるエラーについて説明します。

Apache Airflow UI にアクセスできません

次のステップを推奨します。

  1. ユーザー権限を確認してください。Apache Airflow UI を表示できるアクセス権ポリシーの権限が与えられていない可能性があります。詳細については、「Amazon MWAA 環境へのアクセス」を参照してください。

  2. ネットワークアクセスを確認してください。[プライベートネットワーク] アクセスモードを選択したことが原因と考えられます。Apache Airflow UI の URL が以下の形式の 387fbcn-8dh4-9hfj-0dnd-834jhdfb-vpce.c10.us-west-2.airflow.amazonaws.com である場合、これは Apache Airflow ウェブサーバー用にプライベートルートを使用していることを意味します。Apache Airflow アクセスモードをパブリックネットワークアクセスモードに更新するか、Apache Airflow ウェブサーバーの VPC エンドポイントにアクセスするメカニズムを作成できます。詳細については、「Amazon MWAA でのサービス固有の Amazon VPC エンドポイントへのアクセスの管理」を参照してください。