Amazon MWAA에서 서비스별 Amazon VPC 엔드포인트에 대한 액세스 관리 - Amazon Managed Workflows for Apache Airflow

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에 프라이빗 IP가 있는 탄력적 네트워크 인터페이스(ENI)로 표시됩니다. 이러한 엔드포인트가 생성되면 해당 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 엔드포인트를 보려면
  1. Amazon VPC 콘솔에서 엔드포인트 페이지를 엽니다.

  2. AWS 리전 선택기를 사용해 리전을 선택합니다.

  3. Amazon MWAA에서 생성한 VPC 인터페이스 엔드포인트와 Amazon VPC에서 프라이빗 라우팅을 사용하는 경우 생성했을 수 있는 모든 VPC 엔드포인트이 표시됩니다.

프라이빗 라우팅을 사용하는 Amazon VPC에 필요한 VPC 서비스 엔드포인트에 대한 자세한 내용은 프라이빗 라우팅을 사용하여 Amazon VPC에 필요한 VPC 서비스 엔드포인트 생성 섹션을 참조하십시오.

Apache Airflow 웹 서버 및 VPC 엔드포인트의 프라이빗 IP 주소 식별

다음 단계는 Apache Airflow 웹 서버의 호스트 이름과 VPC 인터페이스 엔드포인트, 프라이빗 IP 주소를 검색하는 방법을 설명합니다.

  1. 다음 AWS Command Line Interface (AWS CLI) 명령을 사용하여 Apache Airflow 웹 서버의 호스트 이름을 검색합니다.

    aws mwaa get-environment --name YOUR_ENVIRONMENT_NAME --query 'Environment.WebserverUrl'

    다음 응답과 유사한 결과가 출력되어야 합니다.

    "99aa99aa-55aa-44a1-a91f-f4552cf4e2f5-vpce.c10.us-west-2.airflow.amazonaws.com"
  2. 이전 명령의 응답에서 반환된 호스트 이름에 대해 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.
  3. 다음 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",
  4. Apache Airflow 호스트 이름과 VPC 엔드포인트 DNS 이름에서 nslookup 또는 dig 명령을 실행하여 IP 주소를 검색합니다. 예:

    dig +short YOUR_AIRFLOW_HOST_NAME YOUR_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 Bastion Host 사용

Bastion Host는 외부 네트워크를 통해(예: 컴퓨터에서 인터넷을 통해) 프라이빗 네트워크에 액세스할 수 있도록 하는 것을 목적으로 하는 서버입니다. Linux 인스턴스는 퍼블릭 서브넷에 있으며 Bastion Host를 실행하는 기본 Amazon EC2 인스턴스에 연결된 보안 그룹으로부터 SSH 액세스를 허용하는 보안 그룹으로 설정됩니다.

Amazon MWAA 튜토리얼에 따라 Linux Bastion Host를 구성하는 것이 좋습니다: 튜토리얼: Linux Bastion Host를 사용한 프라이빗 네트워크 액세스 구성.

로드 밸런서 사용(고급)

다음 섹션에서는 Application Load Balancer에 적용해야 하는 구성을 보여줍니다.

  1. 대상 그룹. Apache Airflow 웹 서버의 프라이빗 IP 주소와 VPC 인터페이스 엔드포인트를 가리키는 대상 그룹을 사용해야 합니다. 프라이빗 IP 주소를 하나만 사용하면 가용성이 떨어질 수 있으므로 두 프라이빗 IP 주소를 모두 등록된 대상으로 지정하는 것이 좋습니다. 프라이빗 IP 주소를 식별하는 방법에 대한 자세한 내용은 Apache Airflow 웹 서버 및 VPC 엔드포인트의 프라이빗 IP 주소 식별 단원을 참조하십시오.

  2. 상태 코드. 대상 그룹 설정에서 200302 상태 코드를 사용하는 것이 좋습니다. 그렇지 않으면 Apache Airflow 웹 서버의 VPC 엔드포인트가 302 Redirect 오류로 응답하는 경우 대상이 비정상으로 플래그될 수 있습니다.

  3. HTTPS 리스너. Apache Airflow 웹 서버의 대상 포트를 지정해야 합니다. 예:

    프로토콜 Port

    HTTPS

    443

  4. ACM 새 도메인. AWS Certificate Manager에서 SSL/TLS 인증서를 연결하려면 로드 밸런서의 HTTPS 리스너용 새 도메인을 생성해야 합니다.

  5. ACM 인증서 리전. AWS Certificate Manager에서 SSL/TLS 인증서를 연결하려면 환경과 동일한 AWS 리전에 업로드해야 합니다. 예:

    1. 예 인증서를 업로드할 리전
      aws acm import-certificate --certificate fileb://Certificate.pem --certificate-chain fileb://CertificateChain.pem --private-key fileb://PrivateKey.pem --region us-west-2