Amazon MWAA 환경에서 프라이빗 네트워크 액세스 모드를 사용해 Apache Airflow UI에 액세스하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Managed Workflows for Apache Airflow(Amazon MWAA) 환경에서 Apache Airflow UI를 열려고 하면 “Connection timed out(연결 시간 초과)” 오류가 표시됩니다.

간략한 설명

Amazon MWAA 환경은 Apache Airflow UI에 퍼블릭, 프라이빗 액세스 모드를 제공합니다. 퍼블릭 액세스 모드를 사용하는 경우, Apache Airflow Web 서버가 인터넷에 개방되어 추가 설정 없이 액세스할 수 있습니다. 다만 보안 그룹을 사용하여 Apache Airflow Web 서버의 네트워크 액세스를 제어할 수는 없습니다. 따라서 이 옵션은 프라이빗 액세스 모드와 비교해 보안 수준이 낮은 것으로 간주됩니다. 프라이빗 액세스 모드를 사용하는 경우, Apache Airflow Web 서버가 해당 환경의 Amazon Virtual Private Cloud(Amazon VPC) 내부에서만 노출됩니다. Amazon MWAA가 각 환경에 대하여 VPC에 VPC 엔드포인트를 만듭니다. 따라서 VPC에 액세스 권한이 있어야만 Apache Airflow UI에 액세스할 수 있습니다. 프라이빗 네트워크 액세스 모드를 사용하려면 추가로 네트워킹 설정을 해야 합니다.

해결 방법

다음 방법 중 하나를 사용하여 프라이빗 네트워크 액세스 모드로 Apache Airflow Web 서버에 액세스할 수 있습니다.

AWS Direct Connect 또는 VPN

AWS Direct Connect 또는 VPN 연결로 온프레미스 네트워크를 Amazon VPC에 연결할 수 있는 경우, 네트워킹 팀과 상의하여 Amazon MWAA Web 서버 주소에 액세스를 구성합니다. 네트워크 경로를 설정한 뒤, 해당 환경과 연결된 보안 그룹을 검토하여 Amazon MWAA Web 서버가 소스 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에 액세스할 수 있습니다.

로드 밸런서

로드 밸런서도 인터넷과 프라이빗 서브넷 사이 중개자 역할을 할 수 있습니다. 배스천 호스트와는 달리, 로드 밸런서의 주소에는 추가 설정 없이 직접 액세스할 수 있습니다.

로드 밸런서를 구성하려면 다음을 따릅니다.

  1. MWAA Web 서버의 프라이빗 IP 주소를 확인합니다. 이 IP 주소를 가져오려면 Apache Airflow UI 주소에 대한 DNS 검색을 수행합니다(dig +short <airflow-web-server-address>).
  2. Amazon MWAA Web 서버의 프라이빗 IP 주소에 대하여 대상 그룹을 생성합니다.
  3. 대상 그룹의 상태 확인 설정을 구성하여 Matcher200302를 포함합니다.
    참고: 이 설정이 없으면 Apache Airflow Web 서버가 302 Redirect로 응답할 때 대상에 비정상 플래그가 지정될 수 있습니다.
  4. HTTPS 리스너, 생성한 대상 그룹을 사용하여 Application Load Balancer를 생성합니다.
    참고: HTTPS 리스너를 생성하기에 앞서 SSL 인증이 있어야 합니다. SSL 인증은 도메인이나 하위 도메인을 하나 선택해 이에 로그인하여 AWS Certificate Manager(ACM)로 생성할 수 있습니다.
  5. 생성한 Application Load Balancer의 주소를 사용하여 Apache Airflow UI에 대한 액세스를 테스트합니다.

참고: Amazon MWAA에 웹 로그인 토큰이 있어야 Apache Airflow UI에 액세스할 수 있습니다. 따라서 웹 로그인 토큰을 생성하고, Application Load Balancer를 통해 Apache Airflow UI에 액세스할 때 이 토큰을 쿼리 문자열로 전달해야 합니다. 이 토큰의 생성을 자동화하려면 페더레이션 ID를 사용해 프라이빗 Amazon MWAA 환경에 액세스를 참조하세요.


관련 정보

Apache Airflow 액세스 모드

Apache Airflow UI 액세스

AWS 공식
AWS 공식업데이트됨 2년 전