문제 해결: Amazon MWAA 환경 생성 및 업데이트 - Amazon Managed Workflows for Apache Airflow

문제 해결: Amazon MWAA 환경 생성 및 업데이트

이 페이지의 항목에는 Amazon Managed Workflows for Apache Airflow 환경을 생성 및 업데이트할 때 발생할 수 있는 오류와 이러한 오류를 해결하는 방법이 포함되어 있습니다.

requirements.txt 업데이트

다음 항목에서는 requirements.txt 업데이트 시 발생할 수 있는 오류에 대해 설명합니다.

requirements.txt의 새 버전을 지정했는데 환경 업데이트에 20분 이상 소요됨

사용자 환경에서 새 버전의 requirements.txt 파일을 설치하는 데 20분 이상 걸리는 경우, 환경 업데이트는 실패하고 Amazon MWAA는 컨테이너 이미지의 마지막 안정 버전으로 롤백합니다.

  1. 패키지 버전을 확인합니다. requirements.txt의 Python 종속성에 대해 항상 특정 버전(==) 또는 최대 버전(<=)을 지정하는 것이 좋습니다.

  2. Apache Airflow 로그를 확인합니다. Apache Airflow 로그를 활성화한 경우, CloudWatch 콘솔의 로그 그룹 페이지에서 로그 그룹이 성공적으로 생성되었는지 확인합니다. 빈 로그가 표시되는 경우 가장 일반적인 이유는 로그가 기록되는 CloudWatch 또는 Amazon S3의 실행 역할에 권한이 없기 때문입니다. 자세한 내용은 실행 역할 단원을 참조하십시오.

  3. Apache Airflow 구성 옵션을 확인합니다. Secrets Manager를 사용하는 경우 Apache Airflow 구성 옵션으로 지정한 키-값 쌍이 올바르게 구성되었는지 확인합니다. 자세한 내용은 AWS Secrets Manager 암호를 사용하여 Apache Airflow 연결 구성 단원을 참조하십시오.

  4. VPC 네트워크 구성을 확인합니다. 자세한 내용은 환경을 생성하려고 했지만 "생성 중" 상태에서 멈춤 단원을 참조하십시오.

  5. 실행 역할 권한을 확인합니다. 실행 역할은 Amazon MWAA에 사용자를 대신하여 다른 AWS 서비스(예: Amazon S3, CloudWatch, Amazon SQS, Amazon ECR)의 리소스를 호출할 수 있는 권한을 부여하는 권한 정책이 있는 AWS Identity and Access Management (IAM) 역할입니다. 고객 관리형 키 또는 AWS 소유 키에도 액세스를 허용해야 합니다. 자세한 내용은 실행 역할 단원을 참조하십시오.

  6. Amazon MWAA 환경에 대한 Amazon VPC 네트워크 설정 및 구성을 확인하는 문제 해결 스크립트를 실행하려면 GitHub의 AWS 지원 도구에서 환경 확인 스크립트를 참조하십시오.

플러그인

다음 항목에서는 Apache Airflow 플러그인을 구성하거나 업데이트할 때 발생할 수 있는 문제를 설명합니다.

Amazon MWAA는 사용자 지정 UI 구현을 지원합니까?

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 버전 단원을 참조하십시오.

플러그인을 통해 Amazon MWAA 로컬 러너에서 사용자 지정 UI 변경을 구현할 수 있지만 Amazon MWAA에서 동일한 작업을 시도해도 변경 내용이나 오류가 표시되지 않습니다. 왜 이런 일이 발생합니까?

Amazon MWAA 로컬 러너에는 모든 Apache Airflow 구성 요소가 하나의 이미지로 번들로 제공되므로 사용자 지정 UI 플러그인 변경을 적용할 수 있습니다.

버킷 생성

다음 항목에서는 Amazon S3 버킷을 생성할 때 발생할 수 있는 오류에 대해 설명합니다.

S3 퍼블릭 액세스 차단 설정 옵션을 선택할 수 없음

Amazon MWAA 환경의 실행 역할에는 버킷이 퍼블릭 액세스를 차단했는지 확인하기 위해 Amazon S3 버킷에서의 GetBucketPublicAccessBlock 작업에 대한 권한이 필요합니다. 다음 단계를 수행하는 것이 좋습니다.

  1. 단계에 따라 실행 역할에 JSON 정책을 연결합니다.

  2. 다음 JSON 정책을 첨부합니다.

    { "Effect":"Allow", "Action":[ "s3:GetObject*", "s3:GetBucket*", "s3:List*" ], "Resource":[ "arn:aws:s3:::YOUR_S3_BUCKET_NAME", "arn:aws:s3:::YOUR_S3_BUCKET_NAME/*" ] }

    YOUR_S3_BUCKET_NAME의 샘플 자리 표시자를 my-mwaa-unique-s3-bucket-name과 같은 Amazon S3 버킷 이름으로 대체합니다.

  3. Amazon MWAA 환경에 대한 Amazon VPC 네트워크 설정 및 구성을 확인하는 문제 해결 스크립트를 실행하려면 GitHub의 AWS 지원 도구에서 환경 확인 스크립트를 참조하십시오.

환경 생성

다음 항목에서는 환경을 생성할 때 발생할 수 있는 오류에 대해 설명합니다.

환경을 생성하려고 했지만 "생성 중" 상태에서 멈춤

다음 단계를 수행하는 것이 좋습니다.

  1. 퍼블릭 라우팅으로 VPC 네트워크를 확인합니다. 인터넷에 액세스할 수 있는 Amazon VPC를 사용하는 경우 다음을 확인합니다.

    1. Amazon MWAA에서의 네트워킹에 대해에 정의된 대로 Amazon VPC가 Amazon MWAA 환경에서 사용되는 다양한 AWS 리소스 간의 네트워크 트래픽을 허용하도록 구성되어 있어야 합니다. 예를 들어 VPC 보안 그룹은 자체 참조 규칙에서 모든 트래픽을 허용하거나 HTTPS 포트 범위 443 및 TCP 포트 범위 5432의 포트 범위를 선택적으로 지정해야 합니다.

  2. 프라이빗 라우팅으로 VPC 네트워크를 확인합니다. 인터넷 액세스 없이 Amazon VPC를 사용하는 경우 다음을 확인합니다.

    1. Amazon MWAA에서의 네트워킹에 대해에 정의된 대로 Amazon VPC가 Amazon MWAA 환경의 서로 다른 AWS 리소스 간 네트워크 트래픽을 허용하도록 구성되어 있어야 합니다. 예를 들어, 두 개의 프라이빗 서브넷에는 NAT 게이트웨이(또는 NAT 인스턴스)에 대한 라우팅 테이블이나 인터넷 게이트웨이가 없어야 합니다.

  3. Amazon MWAA 환경에 대한 Amazon VPC 네트워크 설정 및 구성을 확인하는 문제 해결 스크립트를 실행하려면 GitHub의 AWS 지원 도구에서 환경 확인 스크립트를 참조하십시오.

환경을 생성하려고 했지만 상태가 “생성 실패”로 표시됨

다음 단계를 수행하는 것이 좋습니다.

  1. VPC 네트워크 구성을 확인합니다. 자세한 내용은 환경을 생성하려고 했지만 "생성 중" 상태에서 멈춤 단원을 참조하십시오.

  2. 사용자 권한을 확인합니다. Amazon MWAA는 환경을 생성하기 전에 사용자 보안 인증을 대상으로 테스트 런을 수행합니다. AWS 계정에 AWS Identity and Access Management (IAM)에서 환경에 대한 일부 리소스를 생성할 수 있는 권한이 없을 수 있습니다. 예를 들어 프라이빗 네트워크 Apache Airflow 액세스 모드를 선택한 경우 관리자는 사용자 환경에 대한 AmazonMWAAFullConsoleAccess 액세스 제어 정책에 대한 액세스 권한을 계정에 부여해야 합니다. 이를 통해 AWS 계정은 VPC 엔드포인트를 생성할 수 있습니다.

  3. 실행 역할 권한을 확인합니다. 실행 역할은 Amazon MWAA에 사용자를 대신하여 다른 AWS 서비스(예: Amazon S3, CloudWatch, Amazon SQS, Amazon ECR)의 리소스를 호출할 수 있는 권한을 부여하는 권한 정책이 있는 AWS Identity and Access Management (IAM) 역할입니다. 고객 관리형 키 또는 AWS 소유 키에도 액세스를 허용해야 합니다. 자세한 내용은 실행 역할 단원을 참조하십시오.

  4. Apache Airflow 로그를 확인합니다. Apache Airflow 로그를 활성화한 경우, CloudWatch 콘솔의 로그 그룹 페이지에서 로그 그룹이 성공적으로 생성되었는지 확인합니다. 빈 로그가 표시되는 경우 가장 일반적인 이유는 로그가 기록되는 CloudWatch 또는 Amazon S3의 실행 역할에 권한이 없기 때문입니다. 자세한 내용은 실행 역할 단원을 참조하십시오.

  5. Amazon MWAA 환경에 대한 Amazon VPC 네트워크 설정 및 구성을 확인하는 문제 해결 스크립트를 실행하려면 GitHub의 AWS 지원 도구에서 환경 확인 스크립트를 참조하십시오.

  6. 인터넷 액세스 없이 Amazon VPC를 사용하는 경우, Amazon S3 게이트웨이 엔드포인트를 생성하고 Amazon S3에 액세스하는 데 필요한 최소 권한을 Amazon ECR에 부여했는지 확인합니다. Amazon S3 게이트웨이 엔드포인트 생성에 대한 자세한 내용은 다음을 참조하십시오.

VPC를 선택하려고 했는데 “네트워크 장애” 오류가 발생함

다음 단계를 수행하는 것이 좋습니다.

  • 환경을 생성하는 경우 Amazon VPC를 선택하려고 할 때 “네트워크 장애” 오류가 표시되면 실행 중인 브라우저 내 프록시를 모두 끄고 다시 시도하십시오.

환경을 생성하려고 시도했지만 서비스, 파티션 또는 리소스가 "전달되어야 함" 오류가 발생함

다음 단계를 수행하는 것이 좋습니다.

  • Amazon S3 버킷에 지정한 URI의 URI 끝에 '/'가 포함되어 있기 때문에 이 오류가 표시될 수 있습니다. 경로에서 '/'를 제거하는 것이 좋습니다. 값은 다음 형식이어야 합니다.

    s3://your-bucket-name

환경을 생성하려고 시도했는데 상태가 “사용 가능”으로 표시되지만 Airflow UI에 액세스하려고 하면 “서버에서 빈 응답” 또는 “502 Bad Gateway” 오류가 표시됨

다음 단계를 수행하는 것이 좋습니다.

  1. VPC 보안 그룹 구성을 확인합니다. 자세한 내용은 환경을 생성하려고 했지만 "생성 중" 상태에서 멈춤 단원을 참조하십시오.

  2. requirements.txt에 나열된 모든 Apache Airflow 패키지가 Amazon MWAA에서 실행 중인 Apache Airflow 버전에 해당하는지 확인합니다. 자세한 내용은 Python 종속성 설치 단원을 참조하십시오.

  3. Amazon MWAA 환경에 대한 Amazon VPC 네트워크 설정 및 구성을 확인하는 문제 해결 스크립트를 실행하려면 GitHub의 AWS 지원 도구에서 환경 확인 스크립트를 참조하십시오.

환경을 생성하려고 했는데 사용자 이름이 여러 개의 무작위 문자 이름임

  • Apache Airflow의 사용자 이름은 최대 64자입니다. AWS Identity and Access Management (IAM) 역할이 이 길이를 초과하는 경우 해시 알고리즘을 사용하여 고유성을 유지하면서 이를 줄입니다.

환경 업데이트

다음 항목에서는 환경을 업데이트할 때 발생할 수 있는 오류에 대해 설명합니다.

환경 클래스를 변경하려고 시도했지만 업데이트에 실패함

환경을 다른 환경 클래스로 업데이트(예: mw1.medium에서 mw1.small로 변경)했는데 환경 업데이트 요청이 실패하면 환경 상태가 상태가 UPDATE_FAILED 상태로 전환되고 환경이 이전의 안정 버전 환경으로 롤백되며 이에 따라 요금이 청구됩니다.

다음 단계를 수행하는 것이 좋습니다.

  1. GitHub의 aws-mwaa-local-runner를 사용하여 DAG, 사용자 지정 플러그인, Python 종속성을 로컬에서 테스트합니다.

  2. Amazon MWAA 환경에 대한 Amazon VPC 네트워크 설정 및 구성을 확인하는 문제 해결 스크립트를 실행하려면 GitHub의 AWS 지원 도구에서 환경 확인 스크립트를 참조하십시오.

액세스 환경

다음 항목에서는 환경에 액세스할 때 발생할 수 있는 오류에 대해 설명합니다.

Apache Airflow UI에 액세스할 수 없음

다음 단계를 수행하는 것이 좋습니다.

  1. 사용자 권한을 확인합니다. Apache Airflow UI를 볼 수 있는 권한 정책에 대한 액세스 권한이 부여되지 않았을 수 있습니다. 자세한 내용은 Amazon MWAA 환경 액세스 단원을 참조하십시오.

  2. 네트워크 액세스를 확인합니다. 프라이빗 네트워크 액세스 모드를 선택했기 때문일 수 있습니다. 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 엔드포인트에 대한 액세스 관리 단원을 참조하십시오.