Amazon MWAA でのサービス固有の Amazon VPC エンドポイントへのアクセスの管理
VPC エンドポイント(AWS PrivateLink)を使用すると、インターネットゲートウェイ、NAT デバイス、VPN、またはファイアウォールプロキシを必要とせずに、VPC をAWSでホストされているサービスにプライベートに接続できます。これらのエンドポイントは、水平方向にスケーラブルで可用性の高い仮想デバイスであり、VPC 内のインスタンスと AWS サービス間の通信が可能になります。このページでは、Amazon MWAA によって作成された VPC エンドポイントと、Amazon Managed Workflows for Apache Airflow で プライベートネットワーク アクセスモードを選択した場合に Apache Airflow ウェブサーバーの VPC エンドポイントにアクセスする方法について説明します。
目次
料金
VPC エンドポイントの概要
Amazon MWAA 環境を作成すると、Amazon MWAA はお客様の環境用に 1 つから 2 つの VPC エンドポイントを作成します。これらのエンドポイントは、Amazon VPC 内の Elastic Network Interface (ENI) とプライベート IP アドレスで表されます。これらのエンドポイントが作成されると、これらの IP 宛のトラフィックは、環境で使用されている AWS サービスに対応するように、プライベートまたはパブリックにルーティングされます。
パブリックネットワークアクセスモード
Apache Airflow ウェブサーバーで パブリックネットワーク アクセスモードを選択した場合、ネットワークトラフィックはインターネット経由でパブリックにルーティングされます。
-
Amazon MWAA は Amazon Aurora PostgreSQL メタデータデータベース用の VPC インターフェイスエンドポイントを作成します。エンドポイントは、プライベートサブネットにマッピングされたアベイラビリティーゾーンに作成され、他の AWS アカウント からは独立したものになります。
-
その後、Amazon MWAA はプライベートサブネットの IP アドレスをインターフェイスエンドポイントにバインドします。これは、Amazon VPC の各アベイラビリティーゾーンから単一の IP をバインドするというベストプラクティスをサポートするように設計されています。
プライベートネットワークアクセスモード
Apache Airflow ウェブサーバーで プライベートネットワーク アクセスモードを選択した場合、ネットワークトラフィックは Amazon VPC 内 でプライベートにルーティングされます。
-
Amazon MWAA は、Apache Airflow ウェブサーバー用の VPC インターフェイスエンドポイントと、Amazon Aurora PostgreSQL メタデータデータベース用のインターフェイスエンドポイントを作成します。エンドポイントは、プライベートサブネットにマッピングされたアベイラビリティーゾーンに作成され、他の AWS アカウント からは独立したものになります。
-
その後、Amazon MWAA はプライベートサブネットの IP アドレスをインターフェイスエンドポイントにバインドします。これは、Amazon VPC の各アベイラビリティーゾーンから単一の IP をバインドするというベストプラクティスをサポートするように設計されています。
他のAWSサービスを使用する権限
インターフェースエンドポイントは、環境の実行ロールを使用して、AWS Identity and Access Management(IAM)で AWS のリソースへの権限を管理します。環境で AWS つ以上のサービスが増えると、環境の実行ロールを使用して各サービスの権限を設定する必要があります。アクセス許可を追加するには、Amazon MWAA 実行ロール を参照してください。
Apache Airflow ウェブサーバーの プライベートネットワーク アクセスモードを選択した場合は、VPC エンドポイントポリシーで各エンドポイントのアクセス権限も許可する必要があります。詳細については、VPC エンドポイントポリシー (プライベートルーティングのみ) を参照してください。
VPC エンドポイントへのアクセス
このセクションでは、Amazon MWAA によって作成された VPC エンドポイントにアクセスする方法と、Apache Airflow VPC エンドポイントのプライベート IP アドレスを識別する方法について説明します。
Amazon VPC コンソールで VPC エンドポイントにアクセスする
以下のセクションでは、Amazon MWAA によって作成された VPC エンドポイント、および Amazon VPC に プライベートルーティング を使用している場合に作成した VPC エンドポイントを表示する手順を示します。
VPC エンドポイントにアクセスするには
-
Amazon VPC コンソールで エンドポイントのページ
を開きます。 -
AWS リージョン を選択します。
-
Amazon MWAA によって作成された VPC インターフェイスエンドポイントと、Amazon VPC で プライベートルーティング を使用している場合は作成した VPC エンドポイントが表示されます。
プライベートルーティング を使用する Amazon VPC に必要な VPC サービスエンドポイントの詳細については、Amazon VPC に必要な VPC サービスエンドポイントをプライベートルーティングで作成する を参照してください。
Apache Airflow ウェブサーバーとその VPC エンドポイントのプライベート IP アドレスの識別
次の手順では、Apache Airflow ウェブサーバーのホスト名と VPC インターフェースエンドポイントのホスト名、およびそれらのプライベート IP アドレスを取得する方法について説明します。
-
次の AWS Command Line Interface (AWS CLI) コマンドを使用して、Apache Airflow ウェブサーバーのホスト名を取得します。
aws mwaa get-environment --nameYOUR_ENVIRONMENT_NAME--query 'Environment.WebserverUrl'次のような応答が返されます。
"99aa99aa-55aa-44a1-a91f-f4552cf4e2f5-vpce.c10.us-west-2.airflow.amazonaws.com" -
前のコマンドの応答で返されたホスト名で dig コマンドを実行します。例:
dig CNAME +short 99aa99aa-55aa-44a1-a91f-f4552cf4e2f5-vpce.c10.us-west-2.airflow.amazonaws.com次のような応答が返されます。
vpce-0699aa333a0a0a0-bf90xjtr.vpce-svc-00bb7c2ca2213bc37.us-west-2.vpce.amazonaws.com. -
次の AWS Command Line Interface (AWS CLI) コマンドを使用して、前のコマンドの応答で返された VPC エンドポイント DNS 名を取得します。例:
aws ec2 describe-vpc-endpoints | grep vpce-0699aa333a0a0a0-bf90xjtr.vpce-svc-00bb7c2ca2213bc37.us-west-2.vpce.amazonaws.com.次のような応答が返されます。
"DnsName": "vpce-066777a0a0a0-bf90xjtr.vpce-svc-00bb7c2ca2213bc37.us-west-2.vpce.amazonaws.com", -
Apache Airflow ホスト名とその VPC エンドポイントの DNS 名に対して nslookup または dig コマンドを実行して IP アドレスを取得します。例:
dig +shortYOUR_AIRFLOW_HOST_NAMEYOUR_AIRFLOW_VPC_ENDPOINT_DNS次のような応答が返されます。
192.0.5.1 192.0.6.1
Apache Airflow ウェブサーバーの VPC エンドポイントへのアクセス (プライベートネットワークアクセス)
Apache Airflow ウェブサーバーで プライベートネットワーク アクセスモードを選択した場合は、Apache Airflow ウェブサーバーの VPC インターフェースエンドポイントにアクセスするメカニズムを作成する必要があります。これらのリソースには、Amazon MWAA 環境と同じ Amazon VPC、VPC セキュリティグループ、プライベートサブネットを使用する必要があります。
AWS Client VPN の使用
AWS Client VPN は、オンプレミスネットワーク内の AWS リソースに安全にアクセスできるようにする、クライアントベースのマネージド VPN サービスです。OpenVPN クライアントを使用して、どこからでも安全な TLS 接続を提供します。
Amazon MWAA チュートリアルに従って、Client VPN を構成することをお勧めします:チュートリアル: AWS Client VPN を使用したプライベートネットワークアクセスの設定。
Linux 拠点ホストを使用する
踏み台ホストは、外部ネットワーク (インターネット経由など) からプライベートネットワークにアクセスできるようにすることを目的としたサーバーです。Linux インスタンスはパブリックサブネットにあり、拠点ホストを実行している基盤となる Amazon EC2 インスタンスにアタッチされたセキュリティグループからの SSH アクセスを許可するセキュリティグループを使用してセットアップされます。
Amazon MWAA のチュートリアルに従って、Linux Bastion Host を構成することをお勧めします:チュートリアル: Linux 踏み台ホストを使用したプライベートネットワークアクセスの設定。
ロードバランサーの使用 (上級)
次のセクションでは、Application Load Balancer に適用する必要がある設定を示しています。
-
ターゲットグループ。Apache Airflow ウェブサーバーのプライベート IP アドレスとその VPC インターフェイスエンドポイントを指すターゲットグループを使用する必要があります。1 つのプライベート IP アドレスだけを使用すると可用性が低下する可能性があるため、両方のプライベート IP アドレスを登録ターゲットとして指定することをお勧めします。プライベート IP アドレスを識別する方法の詳細については、Apache Airflow ウェブサーバーとその VPC エンドポイントのプライベート IP アドレスの識別 を参照してください。
-
ステータスコード。ターゲットグループ設定では
200と302ステータスコードを使用することをお勧めします。そうしないと、Apache Airflow ウェブサーバーの VPC エンドポイントが302 Redirectエラーで応答した場合に、ターゲットに異常があるとフラグが立てられる可能性があります。 -
HTTPS リスナー。Apache Airflow ウェブサーバーのターゲットポートを指定する必要があります。例:
プロトコル ポート HTTPS
443
-
ACM 新しいドメイン。AWS Certificate Managerで SSL/TLS 証明書を関連付ける場合は、ロードバランサーの HTTPS リスナー用に新しいドメインを作成する必要があります。
-
ACM 証明書リージョン。もし AWS Certificate Manager で SSL/TLS 証明書を関連付けたい場合は、同じ AWS リージョン にアップロードする必要があります。例:
-
例 証明書をアップロードするリージョン
aws acm import-certificate --certificate fileb://Certificate.pem --certificate-chain fileb://CertificateChain.pem --private-key fileb://PrivateKey.pem--region us-west-2
-