Amazon Managed Workflows for Apache Airflow (Amazon MWAA) 環境で Apache Airflow UI を開こうとすると、「接続がタイムアウトしました」というエラーが表示されます。
簡単な説明
Amazon MWAA 環境では、Apache Airflow UI のパブリックアクセスモードとプライベートアクセスモードが用意されています。パブリックアクセスモードでは、Apache Airflow ウェブサーバーはインターネットに開放され、追加の設定なしでアクセスできます。ただし、セキュリティグループを使用して Apache Airflow ウェブサーバーのネットワークアクセスを制御することはできません。したがって、このオプションはプライベートアクセスモードに比べて安全性が低いと見なされます。プライベートアクセスモードでは、Apache Airflow ウェブサーバーは環境内の Amazon 仮想プライベートクラウド (Amazon VPC) 内でのみ公開されます。Amazon MWAA は、環境ごとに VPC 内に VPC エンドポイントを作成します。したがって、Apache Airflow UI にアクセスするには VPC へのアクセスが必要です。プライベートネットワークアクセスモードでは、追加のネットワーク設定が必要です。
解決方法
プライベートネットワークアクセスモードで Apache Airflow ウェブサーバーにアクセスするには、次のいずれかの方法を使用します。
AWS Direct Connect または VPN
AWS Direct Connect または VPN 接続を使用してオンプレミスネットワークを Amazon VPC に接続している場合は、ネットワーキングチームに相談して Amazon MWAA ウェブサーバーアドレスへのアクセスを設定してください。ネットワークパスが確立されたら、環境に関連付けられているセキュリティグループを確認して、Amazon MWAA ウェブサーバーがソース IP またはサブネットからの HTTPS (TCP 443) トラフィックを許可していることを確認します。また、AWS Client VPN を使用して、プライベートネットワークアクセスを設定することもできます。
それでも問題が解決しない場合は、以下を試してください。
- nslookup や dig (dig<airflow-web-server-address>) などのツールを使用して DNS 解決を確認します。
- telnet (telnet<airflow-web-server-address-443>) などのツールを使用して、ポートレベルの接続を確認します。
それでも問題が解決しない場合は、ブラウザにウェブプロキシが設定されているかどうかを確認します。その場合は、テストのためにプロキシを無効にするか、プロキシ設定の問題を修正してください。
Linux 踏み台ホスト
踏み台ホストは、インターネットとプライベートサブネットの間を仲介するものとして使用できます。ホストは通常、SSH サーバが稼動している Linux マシンです。踏み台ホストへの SSH トンネルを確立して、Amazon VPC 内のリソースにアクセスできます。その後、FoxyProxy などのブラウザプロキシを使用して、SSH トンネル経由で Apache Airflow UI を開くことができます。Linux 踏み台ホストをセットアップするには、「チュートリアル: Linux 踏み台ホストを使用したプライベートネットワークアクセスの設定」を参照してください。
Windows マシンなどのグラフィカルユーザーインターフェイス (GUI) を備えた Amazon Elastic Compute Cloud (Amazon EC2) インスタンスがある場合、このインスタンスを使用して Apache Airflow UI にアクセスできます。
ロードバランサー
ロードバランサーは、インターネットとプライベートサブネットの間を仲介するものとしても使用できます。踏み台ホストとは異なり、追加の設定をしなくてもロードバランサーのアドレスに直接アクセスできます。
ロードバランサーを設定するには、以下の操作を行います。
- MWAA ウェブサーバのプライベート IP アドレスを特定します。これらの IP アドレスを取得するには、Apache Airflow UI アドレスで DNS 検索を実行します (dig +short<airflow-web-server-address>)。
- Amazon MWAA ウェブサーバーのプライベート IP アドレスのターゲットグループを作成します。
- Matcher に 200 と 302 が含まれるように、ターゲットグループのヘルスチェック設定を構成します。
**注意:**この設定を行わないと、Apache Airflow ウェブサーバーが 302 リダイレクトで応答すると、ターゲットに異常のフラグが付けられることがあります。
- HTTPS リスナーとターゲットグループを作成して、Application Load Balancer を作成します。
注意: HTTPS リスナーを作成する前に SSL 証明書が必要です。AWS Certificate Manager (ACM) で SSL 証明書を作成するには、選択したドメインまたはサブドメインにサインインします。
- 作成した Application Load Balancer のアドレスを使用して Apache Airflow UI へのアクセスをテストします。
注意: Amazon MWAA では、Apache Airflow UI にアクセスするためにウェブログイントークンが必要です。したがって、Application Load Balancer を介して Apache Airflow UI にアクセスする場合は、ウェブログイントークンを作成し、このトークンをクエリ文字列として渡す必要があります。このトークンの作成を自動化するには、「フェデレーティッドアイデンティティを使用したプライベート Amazon MWAA 環境へのアクセス」を参照してください。
関連情報
Apache Airflow アクセスモード
Apache Airflow UI にアクセスする