

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

# トラブルシューティング:Amazon MWAA 環境の作成と更新　
<a name="t-create-update-environment"></a>

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

**Contents**
+ [`requirements.txt` の更新](#troubleshooting-reqs)
  + [新しいバージョンを指定しましたが、`requirements.txt` 環境の更新に 20 分以上かかります。](#t-requirements)
+ [プラグイン](#troubleshooting-plugins)
  + [Amazon MWAA はカスタム UI の実装をサポートしていますか。](#custom-ui)
+ [バケットを作成する](#troubleshooting-create-bucket)
  + [S3 のパブリックアクセスのブロック設定を選択できない](#t-create-bucket)
+ [環境を作成する](#troubleshooting-create-environment)
  + [環境を作成しようとしましたが、`Creating` 状態のままです。](#t-stuck-failure)
  + [環境を作成しようとしましたが、ステータスが `Create failed` と表示されます](#t-create-environ-failed)
  + [VPC を選択したときに `Network Failure` エラーが表示されました](#t-network-failure)
  + [環境を作成したときに、サービス、パーティション、またはリソースに「渡さなければなりません」というエラーが表示されました。](#t-service-partition)
  + [環境を作成しようとしましたが、ステータスは `Available` と表示されますが、Airflow UI にアクセスしようとすると、`Empty Reply from Server` または `502 Bad Gateway` エラーが表示されます。](#t-create-environ-empty-reply)
  + [ユーザー名がランダムな文字名の集まりになっている環境を作成しようとしました](#t-create-environ-random-un)
+ [環境の更新](#troubleshooting-update-environment)
  + [環境クラスを変更しようとしましたが、更新に失敗しました](#t-rollback-billing-failure)
+ [アクセス環境](#troubleshooting-access-environment)
  + [Apache Airflow UI にアクセスできません](#t-no-access-airflow-ui)

## `requirements.txt` の更新
<a name="troubleshooting-reqs"></a>

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

### 新しいバージョンを指定しましたが、`requirements.txt` 環境の更新に 20 分以上かかります。
<a name="t-requirements"></a>

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

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

1. Apache Airflow のログを確認してください。Apache Airflow ログを有効にした場合は、CloudWatch コンソールの [ロググループ](https://console.aws.amazon.com/cloudwatch/home#logsV2:log-groups) ページでロググループが正常に作成されたことを確認します。空のログが表示される場合、最も一般的な理由は、ログが書き込まれる CloudWatch または Amazon S3 の実行ロールにアクセス権限がないことが原因です。詳細については、[実行ロール](mwaa-create-role.md) を参照してください。

1. Apache Airflow 構成オプションを確認してください。Secrets Manager を使用している場合は、Apache Airflow 構成オプションとして指定したキーと値のペアが正しく設定されていることを確認してください。詳細については、[AWS Secrets Manager シークレットを使用した Apache Airflow 接続の設定](connections-secrets-manager.md) を参照してください。

1. VPCのネットワーク構成を確認します。詳細については、[環境を作成しようとしましたが、`Creating` 状態のままです。](#t-stuck-failure) を参照してください。

1. 実行ロールの権限を確認します。実行ロールは、AWS ユーザーに代わって他のサービス AWS Identity and Access Management (Amazon S3、CloudWatch、Amazon SQS、Amazon ECR など) のリソースを呼び出すアクセス権限を Amazon MWAA に付与するアクセス権限ポリシーを持つ (IAM) ロールです。[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) または [AWS 所有キー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) にもアクセスを許可する必要があります。詳細については、[実行ロール](mwaa-create-role.md) を参照してください。

1. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある [環境の検証](https://github.com/awslabs/aws-support-tools/tree/master/MWAA) スクリプトを参照してください。

## プラグイン
<a name="troubleshooting-plugins"></a>

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

### Amazon MWAA はカスタム UI の実装をサポートしていますか。
<a name="custom-ui"></a>

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 のバージョン](airflow-versions.md) を参照してください。

## バケットを作成する
<a name="troubleshooting-create-bucket"></a>

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

### S3 のパブリックアクセスのブロック設定を選択できない
<a name="t-create-bucket"></a>

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

1. 手順に従って [JSON ポリシーを実行ロールに追加します](mwaa-create-role.md)。

1. 以下の JSON ポリシーを添付する：

   ```
   {
     "Effect":"Allow",
     "Action":[
       "s3:GetObject*",
       "s3:GetBucket*",
       "s3:List*"
     ],
     "Resource":[
       "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
       "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
     ]
   }
   ```

   {{amzn-s3-demo-bucket}} のサンプルプレースホルダーを Amazon S3 バケット名に置き換えます。

1. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある [環境の検証](https://github.com/awslabs/aws-support-tools/tree/master/MWAA) スクリプトを参照してください。

## 環境を作成する
<a name="troubleshooting-create-environment"></a>

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

### 環境を作成しようとしましたが、`Creating` 状態のままです。
<a name="t-stuck-failure"></a>

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

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

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

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

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

1. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある [環境の検証](https://github.com/awslabs/aws-support-tools/tree/master/MWAA) スクリプトを参照してください。

### 環境を作成しようとしましたが、ステータスが `Create failed` と表示されます
<a name="t-create-environ-failed"></a>

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

1. VPCのネットワーク構成を確認します。詳細については、[環境を作成しようとしましたが、`Creating` 状態のままです。](#t-stuck-failure) を参照してください。

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

1. 実行ロールの権限を確認します。実行ロールは、AWS ユーザーに代わって他のサービス AWS Identity and Access Management (Amazon S3、CloudWatch、Amazon SQS、Amazon ECR など) のリソースを呼び出すアクセス権限を Amazon MWAA に付与するアクセス権限ポリシーを持つ (IAM) ロールです。[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) または [AWS 所有キー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) にもアクセスを許可する必要があります。詳細については、[実行ロール](mwaa-create-role.md) を参照してください。

1. Apache Airflow のログを確認してください。Apache Airflow ログを有効にした場合は、CloudWatch コンソールの [ロググループ](https://console.aws.amazon.com/cloudwatch/home#logsV2:log-groups) ページでロググループが正常に作成されたことを確認します。空のログが表示される場合、最も一般的な理由は、ログが書き込まれる CloudWatch または Amazon S3 の実行ロールにアクセス権限がないことが原因です。詳細については、[実行ロール](mwaa-create-role.md) を参照してください。

1. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある [環境の検証](https://github.com/awslabs/aws-support-tools/tree/master/MWAA) スクリプトを参照してください。

1. インターネットにアクセス *せず* に Amazon VPC を使用している場合は、Amazon S3 ゲートウェイエンドポイントを作成し、Amazon S3 にアクセスするために必要最小限のアクセス権限を Amazon ECR に付与していることを確認してください。Amazon S3 ゲートウェイエンドポイントの作成についての詳細は、以下を参照してください。
   + [インターネットに接続せずに Amazon VPC ネットワークを作成する](vpc-create.md#vpc-create-template-private-only)
   + [Amazon Elastic Container Registry ユーザーガイド](https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html#ecr-setting-up-s3-gateway)の *Amazon S3 ゲートウェイのエンドポイントの作成*

### VPC を選択したときに `Network Failure` エラーが表示されました
<a name="t-network-failure"></a>

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

### 環境を作成したときに、サービス、パーティション、またはリソースに「渡さなければなりません」というエラーが表示されました。
<a name="t-service-partition"></a>

次のステップを推奨します。
+ Amazon S3 バケットに指定した URI の URI の末尾に「/」が含まれている場合、このエラーが表示される可能性があります。パスの '/' を削除することをお勧めします。値は、次のような形式になります。

  ```
  s3://amzn-s3-demo-bucket
  ```

### 環境を作成しようとしましたが、ステータスは `Available` と表示されますが、Airflow UI にアクセスしようとすると、`Empty Reply from Server` または `502 Bad Gateway` エラーが表示されます。
<a name="t-create-environ-empty-reply"></a>

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

1. VPC セキュリティグループの設定を確認します。詳細については、[環境を作成しようとしましたが、`Creating` 状態のままです。](#t-stuck-failure) を参照してください。

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

1. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある [環境の検証](https://github.com/awslabs/aws-support-tools/tree/master/MWAA) スクリプトを参照してください。

### ユーザー名がランダムな文字名の集まりになっている環境を作成しようとしました
<a name="t-create-environ-random-un"></a>
+ Apache Airflow のユーザ名は最大 64 文字です。AWS Identity and Access Management (IAM) ロールがこの長さを超えた場合は、ハッシュアルゴリズムを使用して一意性を保ちながら短縮します。

## 環境の更新
<a name="troubleshooting-update-environment"></a>

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

### 環境クラスを変更しようとしましたが、更新に失敗しました
<a name="t-rollback-billing-failure"></a>

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

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

1. GitHub の [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) を使用して、DAG、カスタムプラグイン、Python の依存関係をローカルでテストします。

1. Amazon MWAA 環境の Amazon VPC ネットワークのセットアップと設定を確認するトラブルシューティングスクリプトを実行するには、GitHub AWS Support ツールにある [環境の検証](https://github.com/awslabs/aws-support-tools/tree/master/MWAA) スクリプトを参照してください。

## アクセス環境
<a name="troubleshooting-access-environment"></a>

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

### Apache Airflow UI にアクセスできません
<a name="t-no-access-airflow-ui"></a>

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

1. ユーザー権限を確認してください。Apache Airflow UI にアクセスするために使用できるアクセス許可ポリシーの権限が付与されていない可能性があります。詳細については、[Amazon MWAA 環境へのアクセス](access-policies.md) を参照してください。

1. ネットワークアクセスを確認してください。**プライベートネットワーク** アクセスモードを選択したことが原因と考えられます。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 エンドポイントへのアクセスの管理](vpc-vpe-access.md) を参照してください。