Airflow Environment

Amazon S3 bucket

Amazon MWAA는 Amazon S3 bucket을 사용하여 Airflow DAG 및 Plugin 파일을 저장합니다. Amazon S3에 Airflow 환경을 위한 bucket을 생성해야 합니다. S3 bucket 이름은 글로벌적으로 고유해야 하며 MWAA 환경과 동일한 AWS 리전에 생성해야 합니다.

  1. Amazon S3 콘솔로 가서 Bucket 생성을 시작 하십시오.
  2. Bucket 이름은 mwaa-workshop-<your_aws_account_id>로 설정 하십시오.

<your_aws_account_id> 문구는 현재 사용하고 있는 12자리 AWS Account ID변경해야 합니다.

  1. AWS 리전을 선택 하십시오. 이 후에 생성 할 MWAA 환경과 동일한 리전을 선택해야 합니다. AirflowEnv
  2. Bucket Versioning 옵션을 활성화 하고 bucket을 생성 하십시오. AirflowEnv
  3. Bucket안에 dags 폴더를 생성 하십시오. 해당 폴더는 Airflow DAG 파일을 저장하기 위해 사용 됩니다. AirflowEnv

Airflow cluster

개인 계정을 사용하는 경우 이 실습을 수행하기 위해 배포 된 리소스에 대한 비용이 계정에 부과 됩니다.

Amazon MWAA는 사용자가 지정한 Airflow 버전으로 scheduler, worker 및 web server를 포함한 Airflow components를 자동 설치합니다. 생성 된 환경은 Airflow UI에 액세스 할 수 있는 링크를 제공합니다. AWS 리전 별로 계정 당 최대 10개의 Airflow 환경을 만들 수 있으며 각 환경마다 여러 DAG를 수행 할 수 있어 목적에 따라 다수의 Airflow 환경을 운영할 수 있습니다.

  1. Amazon MWAA 콘솔로 가서 환경 생성을 시작 하십시오. AirflowEnv
  2. Airflow 환경 이름을 정의하고 버전을 선택 하십시오.

실습을 Airflow 버전 1.10.12에서 실행하고 싶다면 1.10.12, 최신 버전에서 실행하고 싶다면 2.0.2를 선택 하십시오.

AirflowEnv 3. S3 bucket은 앞서 생성 한 mwaa-workshop bucket을 선택 하십시오. 그리고 DAGs folder는 선택한 mwaa-workshop bucket 경로 끝에 /dags를 추가 하십시오. Plugins file과 Requirements file은 선택 사항이므로 스킵하고 다음 고급 설정으로 이동하십시오. AirflowEnv 4. VPC는 CloudFormation을 통해 생성 된 VPC를 선택 하십시오. Subnet은 VPC의 private subnet으로 자동 선택 되기때문에 그대로 유지 하십시오.

VPC는 mwaa-로 시작하는 이름을 선택 하십시오. VPC ID와 Subnet ID의 대한 정확한 정보는 CloudFormation stack의 Output 탭 화면에 출력 된 정보를 참조 하십시오.

AirflowEnv 5. Web Server 액세스 모드Public network를 선택하십시오.

Apache Airflow UI에 대한 액세스를 VPC로 제한하려면 Private network를 선택할 수 있습니다. Private network을 선택하면 Linux Bastion 호스트 및 VPC 엔드포인트와 같은 추가 컴포넌트가 구성 됩니다. 실습에 편의를 위해 Public network를 선택 하십시오.

AirflowEnv 6. Security group은 CloudFormation을 통해 미리 생성 되었습니다. 따라서 새로 생성하지 않고 mwaa-workshop-MWAASecurityGroup으로 시작하는 이름의 security group을 선택 하십시오. AirflowEnv 7. Environment Class는 Airflow 환경에 제공되는 리소스 규모를 의미합니다. 선택에 따라 Airflow 환경이 처리할 수 있는 Workflow의 규모가 다릅니다. 또한 동시에 작업을 처리할 수 있는 최대 작업자 수(maximum worker count)를 설정할 수 있는 데, 본 실습은 Small 타입10개의 최대 작업자 수로 충분하므로 다음 화면과 동일하게 설정 하십시오.

Airflow v2.0.2를 선택했을 경우 추가로 스케줄러의 개수 (Scheduler count)를 설정 할 수 있습니다. 하지만 기본 설정을 그대로 유지하겠습니다.

AirflowEnv

  1. 모니터링은 CloudWatch Metrics로 Airflow 성능 지표를 수집하도록 기본적으로 설정 되어 있으며, Airflow 작업 로그를 포함하여 기타 다른 Airflow 컴포넌트의 로그를 CloudWatch Logs로 수집하도록 선택할 수 있습니다. 본 실습은 기본 설정을 그대로 유지합니다. AirflowEnv
  2. Airflow 환경에서 사용 할 IAM execution role을 생성하십시오. Airflow 환경은 연동 된 IAM role에게 부여 된 권한에 따라 AWS 리소스를 액세스 할 수 있습니다. AirflowEnv
  3. 최종적으로 Airflow 환경 설정을 리뷰하고 환경을 생성 하십시오.

    환경이 생성되기까지 약 20~30분 정도 소요 됩니다. 환경 상태가 Available이 될 때까지 대기 하십시오.

  4. Airflow UI 접속 링크를 클릭하여 Airflow UI에 접속 하십시오. AirflowEnv
  5. Airflow UI에는 현재 workflow가 없는 빈 상태 입니다. 이 후 실습에서는 다양한 Airflow 개념을 살펴 보고 workflow를 만들어 볼 것 입니다. AirflowEnv