빠른 시작

이 페이지에서는 Google Cloud Console에서 Cloud Composer 환경을 만들고 간단한 Apache Airflow DAG(워크플로라고도 함)를 실행하는 방법을 설명합니다.

시작하기 전에

  1. Google 계정으로 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Cloud Composer API를 사용 설정합니다.

    API 사용 설정

환경 만들기

Console

  1. Cloud Console에서 환경 만들기 페이지로 이동합니다.

    환경 만들기 페이지 열기

  2. 이름 필드에 example-environment를 입력합니다.

  3. 위치 드롭다운 목록에서 Cloud Composer 환경의 리전을 선택합니다. 리전 선택에 대한 자세한 내용은 사용 가능한 리전을 참조하세요.

  4. 다른 환경 구성 옵션에 제공된 기본값을 사용합니다.

  5. 환경을 만들려면 만들기를 클릭합니다.

  6. 환경 생성이 완료될 때까지 기다립니다. 작업이 완료되면 환경 이름의 왼쪽에 녹색 체크표시가 표시됩니다.

gcloud

gcloud composer environments create example-environment \
    --location LOCATION

LOCATION을 환경이 위치한 Compute Engine 리전으로 바꿉니다. 지정한 위치가 Composer를 사용할 수 있는 위치인지 확인합니다.

Terraform

Terraform을 사용하여 이 환경을 구성하려면 Terraform 구성에 다음 리소스 블록을 추가하고 terraform apply를 실행합니다.

resource "google_composer_environment" "composer-quickstart" {
    name   = "example-environment"
    region = "LOCATION"
}

LOCATION을 환경이 위치한 Compute Engine 리전으로 바꿉니다. 지정한 위치가 Composer를 사용할 수 있는 위치인지 확인합니다.

환경 세부정보 보기

환경 생성이 완료되면 Cloud Composer 버전, Airflow 웹 인터페이스의 URL, Cloud Storage의 DAG 폴더와 같은 환경의 배포 정보를 볼 수 있습니다.

배포 정보를 보려면 다음 안내를 따르세요.

  1. Cloud Console에서 환경 페이지로 이동합니다.

    환경 페이지 열기

  2. 환경 세부정보 페이지를 보려면 example-environment를 클릭합니다.

DAG 만들기

Airflow DAG는 예약 및 실행하려는 태스크가 구성된 모음입니다. DAG는 표준 Python 파일에서 정의됩니다.

quickstart.py의 Python 코드:

  1. DAG, composer_sample_dag를 만듭니다. DAG는 하루에 한 번 실행됩니다.
  2. 태스크 하나, print_dag_run_conf를 실행합니다. 태스크는 bash 연산자를 사용하여 DAG 실행 구성을 출력합니다.

DAG를 만들려면 로컬 머신에 quickstart.py 파일의 복사본을 만듭니다.

import datetime

import airflow
from airflow.operators import bash_operator

YESTERDAY = datetime.datetime.now() - datetime.timedelta(days=1)

default_args = {
    'owner': 'Composer Example',
    'depends_on_past': False,
    'email': [''],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': datetime.timedelta(minutes=5),
    'start_date': YESTERDAY,
}

with airflow.DAG(
        'composer_sample_dag',
        'catchup=False',
        default_args=default_args,
        schedule_interval=datetime.timedelta(days=1)) as dag:

    # Print the dag_run id from the Airflow logs
    print_dag_run_conf = bash_operator.BashOperator(
        task_id='print_dag_run_conf', bash_command='echo {{ dag_run.id }}')

Cloud Storage에 DAG 업로드

Cloud Composer는 환경의 Cloud Storage 버킷의 DAG 폴더에 있는 DAG만 예약합니다.

DAG를 예약하려면 quickstart.py를 로컬 머신에서 환경의 DAG 폴더로 이동합니다.

  1. Cloud Console에서 환경 페이지로 이동합니다.

    환경 페이지 열기

  2. /dags 폴더를 열려면 example-environmentDAG 폴더 링크를 클릭합니다.

  3. 버킷 세부정보 페이지에서 파일 업로드를 클릭한 후 quickstart.py의 로컬 복사본을 선택합니다.

  4. 파일을 업로드하려면 열기를 클릭합니다.

    DAG를 업로드하면 Cloud Composer가 DAG를 Airflow에 추가하고 즉시 DAG를 예약합니다. DAG가 Airflow 웹 인터페이스에 표시되는 데 몇 분 정도 걸릴 수 있습니다.

Airflow 웹 인터페이스에서 DAG 보기

각 Cloud Composer 환경에는 DAG를 관리하는 데 사용할 수 있는 Airflow 웹 인터페이스를 실행하는 웹 서버가 있습니다.

Airflow 웹 인터페이스에서 DAG를 보려면 다음 안내를 따르세요.

  1. Cloud Console에서 환경 페이지로 이동합니다.

    환경 페이지 열기

  2. Airflow 웹 인터페이스를 열려면 example-environmentAirflow 링크를 클릭합니다. 인터페이스가 새 브라우저 창에서 열립니다.

  3. Airflow 툴바에서 DAG를 클릭합니다.

  4. DAG 세부정보 페이지를 열려면 composer_sample_dag을 클릭합니다.

    DAG 페이지에 워크플로의 태스크와 종속 항목을 그래픽으로 나타낸 트리 보기가 표시됩니다.

Airflow 로그에서 태스크 인스턴스 세부정보 보기

예약한 DAG에는 print_dag_run_conf 태스크가 포함됩니다. 이 태스크는 태스크 인스턴스의 Airflow 로그에 표시되는 DAG 실행 구성을 출력합니다.

태스크 인스턴스 세부정보를 보려면 다음 안내를 따르세요.

  1. Airflow 웹 인터페이스의 DAG 트리 뷰에서 그래프 뷰를 클릭합니다.

    print_dag_run_conf 태스크의 그래픽 위에 마우스 커서를 갖다 놓으면 태스크 상태가 표시됩니다. 태스크 주위의 테두리도 상태를 나타냅니다(연한 녹색 테두리 = 실행 중).

  2. print_dag_run_conf 태스크를 클릭합니다.

    태스크 인스턴스 컨텍스트 메뉴가 표시됩니다. 여기서 메타데이터를 가져와 몇 가지 작업을 수행할 수 있습니다.

  3. 태스크 인스턴스 컨텍스트 메뉴에서 로그 보기를 클릭합니다.

  4. 로그에서 Running: ['bash'를 찾아 bash 연산자의 출력을 확인합니다.

정리

이 빠른 시작에서 사용한 리소스의 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 따르세요.

  1. Cloud Console에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 삭제할 프로젝트가 조직에 연결되어 있으면 페이지 상단의 조직 목록에서 조직을 선택합니다.
  3. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  4. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

또는 이 가이드에서 사용된 리소스를 삭제할 수 있습니다.

  1. Cloud Composer 환경을 삭제합니다.
  2. Cloud Composer 환경의 Cloud Storage 버킷을 삭제합니다. Cloud Composer 환경을 삭제하면 버킷이 삭제되지 않습니다.
  3. Cloud Composer 환경의 Pub/Sub 주제를 삭제합니다(composer-agentcomposer-backend)). Cloud Composer 환경만 삭제하면 이러한 주제는 삭제되지 않습니다.

다음 단계