

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# DAG 추가 또는 업데이트
<a name="configuring-dag-folder"></a>

방향성 비순환 그래프(DAG)는 DAG 구조를 코드로 정의하는 Python 파일 내에 정의됩니다. AWS CLI 또는 Amazon S3 콘솔을 사용하여 DAG를 사용자 환경에 업로드할 수 있습니다. 이 주제에서는 Amazon S3 버킷의 `dags` 폴더를 사용하여 Amazon Managed Workflows for Apache Airflow 환경에서 Apache Airflow DAG를 추가하거나 업데이트하는 단계를 설명합니다.

**Topics**
+ [사전 조건](#configuring-dag-folder-prereqs)
+ [작동 방법](#configuring-dag-folder-how)
+ [무엇이 변경되었나요?](#configuring-dag-folder-changed)
+ [Amazon MWAA CLI 유틸리티를 사용한 DAG 테스트](#working-dag-folder-cli-utility)
+ [Amazon S3에 DAG 코드 업로드](#configuring-dag-folder-uploading)
+ [Amazon MWAA 콘솔에서 DAG 폴더의 경로 지정(처음)](#configuring-dag-folder-mwaaconsole)
+ [Apache Airflow UI 변경 사항 액세스](#configuring-dag-folder-mwaaconsole-view)
+ [다음 단계](#configuring-dag-folder-next-up)

## 사전 조건
<a name="configuring-dag-folder-prereqs"></a>

이 페이지의 단계를 완료하려면 먼저 다음이 필요합니다.
+ **권한** — 관리자가 사용자 환경의 [AmazonMWAAFullConsoleAccess](access-policies.md#console-full-access) 액세스 제어 정책에 대한 액세스 권한을 AWS 계정에 부여했어야 합니다. 또한 [실행 역할](mwaa-create-role.md)이 Amazon MWAA 환경에서 사용자 환경에서 사용하는 AWS 리소스에 액세스할 수 있도록 허용해야 합니다.
+ **액세스** — 종속성을 웹 서버에 직접 설치하기 위해 퍼블릭 리포지토리에 액세스해야 하는 경우 **퍼블릭 네트워크** 웹 서버 액세스로 환경을 구성해야 합니다. 자세한 정보는 [Apache Airflow 액세스 모드](configuring-networking.md) 섹션을 참조하세요.
+ **Amazon S3 구성** — DAG, `plugins.zip`의 사용자 지정 플러그인 및 `requirements.txt`의 Python 종속성을 저장하는 데 사용되는 [Amazon S3 버킷](mwaa-s3-bucket.md)은 *퍼블릭 액세스가 차단*되고 *버전 관리가 활성화*된 상태로 구성되어야 합니다.

## 작동 방법
<a name="configuring-dag-folder-how"></a>

방향비순환 그래프(DAG)는 DAG의 구조를 코드로 정의하는 단일 Python 파일 내에 정의됩니다. 다음 항목으로 구성됩니다.
+ [DAG](https://airflow.apache.org/docs/stable/concepts.html#dags) 정의.
+ DAG 실행 방법과 실행할 [작업](https://airflow.apache.org/docs/stable/concepts.html#tasks)을 설명하는 [연산자](https://airflow.apache.org/concepts.html#operators).
+ 작업 실행 순서를 설명하는 [연산자 관계](https://airflow.apache.org/concepts.html#bitshift-composition).

Amazon MWAA 환경에서 Apache Airflow 플랫폼을 실행하려면 DAG 정의를 스토리지 버킷의 `dags` 폴더에 복사해야 합니다. 예를 들어 스토리지 버킷의 DAG 폴더는 다음과 유사해야 합니다.

**Example DAG 폴더**  

```
dags/
└ dag_def.py
```

Amazon MWAA는 Amazon S3 버킷의 새 객체 및 변경된 객체를 Amazon MWAA 스케줄러 및 작업자 컨테이너의 `/usr/local/airflow/dags` 폴더로 30초마다 자동으로 동기화하여 파일 유형에 상관없이 Amazon S3 소스의 파일 계층 구조를 유지합니다. 새 DAG가 Apache Airflow UI에 나열되는 데 걸리는 시간은 `scheduler.dag\_dir\_list\_interval`에 의해 제어됩니다. 기존 DAG에 대한 변경 사항은 다음 [DAG 처리 루프](best-practices-tuning.md#best-practices-tuning-scheduler)에서 적용됩니다.

**참고**  
DAG 폴더에 `airflow.cfg` 구성 파일을 포함할 필요는 없습니다. Amazon MWAA 콘솔에서 기본 Apache Airflow 구성을 재정의할 수 있습니다. 자세한 정보는 [Amazon MWAA에서 Apache Airflow 구성 옵션 사용](configuring-env-variables.md) 섹션을 참조하세요.

## 무엇이 변경되었나요?
<a name="configuring-dag-folder-changed"></a>

특정 Apache Airflow 릴리스의 변경 사항을 검토하려면 [릴리스 정보](https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html#release-notes) 페이지를 참조하세요.
+ Apache Airflow v3 구성: [구성 참조](https://airflow.apache.org/docs/apache-airflow/3.0.6/configurations-ref.html)
+ Apache Airflow v2 퍼블릭 인터페이스 정보: [Airflow의 퍼블릭 인터페이스](https://airflow.apache.org/docs/apache-airflow/2.10.3/public-airflow-interface.html)

## Amazon MWAA CLI 유틸리티를 사용한 DAG 테스트
<a name="working-dag-folder-cli-utility"></a>
+ 명령줄 인터페이스(CLI) 유틸리티는 Amazon Managed Workflows for Apache Airflow 환경을 로컬로 복제합니다.
+ CLI는 Amazon MWAA 프로덕션 이미지와 유사한 Docker 컨테이너 이미지를 로컬로 구축합니다. 이를 사용해 Amazon MWAA에 배포하기 전에 로컬 Apache Airflow 환경을 실행하여 DAG, 사용자 지정 플러그인 및 종속성을 개발하고 테스트할 수 있습니다.
+ CLI를 실행하려면 GitHub의 [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)를 참조하세요.

## Amazon S3에 DAG 코드 업로드
<a name="configuring-dag-folder-uploading"></a>

Amazon S3 콘솔 또는 AWS Command Line Interface (AWS CLI)를 사용하여 Amazon S3 버킷에 DAG 코드를 업로드할 수 있습니다. 다음 단계에서는 Amazon S3 버킷의 이름이 지정된 `dags` 폴더에 코드(`.py`)를 업로드한다고 가정합니다.

### AWS CLI 사용
<a name="configuring-dag-folder-cli"></a>

AWS Command Line Interface(AWS CLI)는 명령줄 쉘의 명령을 사용하여 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구입니다. 이 페이지에서 단계를 완료하려면 다음이 필요합니다.
+ [AWS CLI - 버전 2 설치](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)
+ [AWS CLI - 을 통한 빠른 구성.`aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**AWS CLI를 사용하여 업로드하려면**

1. 다음 명령을 사용하여 Amazon S3 버킷을 모두 나열합니다.

   ```
   aws s3 ls
   ```

1. 다음 명령을 사용하여 사용자 환경의 Amazon S3 버킷에 있는 파일과 폴더를 나열합니다.

   ```
   aws s3 ls s3://{{YOUR_S3_BUCKET_NAME}}
   ```

1. 다음 명령은 `dag_def.py` 파일을 `dags` 폴더에 업로드합니다.

   ```
   aws s3 cp dag_def.py s3://{{amzn-s3-demo-bucket}}/dags/
   ```

   이름이 지정된 `dags` 폴더가 Amazon S3 버킷에 아직 없는 경우 이 명령은 `dags` 폴더를 생성하고 이름이 지정된 `dag_def.py` 파일을 새 폴더에 업로드합니다.

### Amazon S3 콘솔 사용
<a name="configuring-dag-folder-console"></a>

Amazon S3 콘솔은 Amazon S3 버킷의 리소스를 생성 및 관리할 수 있는 웹 기반 사용자 인터페이스입니다. 다음 단계에서는 이름이 지정된 `dags` DAG 폴더가 있다고 가정합니다.

**Amazon S3 콘솔을 사용하여 업로드하려면**

1. Amazon MWAA 콘솔에서 [환경 페이지](https://console.aws.amazon.com/mwaa/home#/environments)를 엽니다.

1. 환경을 선택합니다.

1. **S3의 DAG 코드** 창에서 **S3 버킷** 링크를 선택하여 콘솔에서 스토리지 버킷을 엽니다.

1. `dags` 폴더를 선택합니다.

1. **업로드**를 선택합니다.

1. **파일 추가**를 선택합니다.

1. `dag_def.py`의 로컬 사본을 선택하고 **업로드**를 선택합니다.

## Amazon MWAA 콘솔에서 DAG 폴더의 경로 지정(처음)
<a name="configuring-dag-folder-mwaaconsole"></a>

다음 단계에서는 이름이 지정된 `dags` Amazon S3 버킷의 폴더에 대한 경로를 지정한다고 가정합니다.

1. Amazon MWAA 콘솔에서 [환경 페이지](https://console.aws.amazon.com/mwaa/home#/environments)를 엽니다.

1. DAG를 실행할 환경을 선택합니다.

1. **편집**을 선택합니다.

1. **Amazon S3의 DAG 코드** 창에서 **DAG 폴더** 필드 옆에 있는 **S3 찾아보기**를 선택합니다.

1. `dags` 폴더를 선택합니다.

1. **선택**을 선택합니다.

1. **다음**, **환경 업데이트**를 선택합니다.

## Apache Airflow UI 변경 사항 액세스
<a name="configuring-dag-folder-mwaaconsole-view"></a>

Apache Airflow UI에 액세스하려면 AWS Identity and Access Management(IAM)의 AWS 계정 계정에 대한 [Apache Airflow UI 액세스 정책: AmazonMWAAWebServerAccess](access-policies.md#web-ui-access) 권한이 필요합니다.

**Apache Airflow UI에 액세스하려면**

1. Amazon MWAA 콘솔에서 [환경 페이지](https://console.aws.amazon.com/mwaa/home#/environments)를 엽니다.

1. 환경을 선택합니다.

1. **Airflow UI 열기**를 선택합니다.

## 다음 단계
<a name="configuring-dag-folder-next-up"></a>

GitHub의 [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)를 사용하여 DAG, 사용자 지정 플러그인, Python 종속성을 로컬에서 테스트합니다.