Cloud Composer 1 | Cloud Composer 2
Apache Airflow에는 워크플로(DAG)와 Airflow 환경을 관리하고 관리 작업을 수행하는 데 사용할 수 있는 웹 사용자 인터페이스(UI)가 포함되어 있습니다. 예를 들어 웹 인터페이스를 사용하여 DAG의 진행 상태를 검토하거나, 새 데이터 연결을 설정하거나, 이전 DAG 실행의 로그를 살펴볼 수 있습니다.
Airflow 웹 서버
각 Cloud Composer 환경에는 Airflow 웹 인터페이스를 실행하는 웹 서버가 있습니다. 웹 서버는 Cloud Composer 환경 아키텍처의 일부입니다.
웹 서버는 dags/
폴더의 DAG 정의 파일을 파싱하고 DAG의 데이터와 리소스에 액세스하여 DAG를 로드하고 HTTP 요청을 처리할 수 있어야 합니다.
웹 서버는 60초 간격으로 DAG를 새로 고침합니다(Cloud Composer의 기본 worker_refresh_interval
). 웹 서버가 새로고침 간격 내에 모든 DAG를 파싱할 수 없으면 웹 서버 오류가 발생할 수 있습니다.
DAG 파일 수가 많거나 DAG 파일을 로드하는 워크로드가 상당하면 DAG를 로드하는 데 60초 이상이 소요될 수 있습니다. 웹 서버가 DAG 로드 시간과 관계없이 액세스할 수 있도록 하려면 사전 구성된 간격으로 백그라운드에서 DAG를 파싱 및 로드하도록 비동기 DAG 로드를 구성하면 됩니다(composer-1.7.1-airflow-1.10.2
이상 버전에서 구성 가능).
이렇게 구성하면 DAG 새로고침 시간이 단축될 수도 있습니다.
작업자 새로고침 간격 초과 외에도 웹 서버는 대부분의 경우 DAG 로드 실패를 정상적으로 처리할 수 있습니다. DAG로 인해 웹 서버가 다운되거나 종료될 경우 브라우저에 오류가 반환될 수 있습니다. 자세한 내용은 DAG 문제 해결을 참조하세요.
DAG 파싱으로 인해 웹 서버 문제가 계속 발생할 경우에는 비동기 DAG 로드를 사용하는 것이 좋습니다.
시작하기 전에
Cloud Composer 환경을 볼 수 있는 역할이 있어야 합니다. 자세한 내용은 액세스 제어를 참조하세요.
환경 생성 중에 Cloud Composer는 Airflow 웹 인터페이스를 실행하는 웹 서버의 URL을 구성합니다. 이 URL을 맞춤설정할 수 없습니다.
- Airflow 웹 인터페이스의 Airflow UI 액세스 제어(Airflow 역할 기반 액세스 제어) 기능은 Composer 버전 1.13.4 이상, Airflow 버전 1.10.10 이상, Python 3을 실행하는 Cloud Composer 환경에서 지원됩니다.
Airflow 웹 인터페이스에 액세스
Airflow 웹 서버 서비스는 appspot.com
도메인에 배포되며 Airflow 웹 인터페이스에 대한 액세스를 제공합니다. Cloud Composer 1은 사용자에 대해 정의된 사용자 ID 및 IAM 정책 바인딩을 기반으로 인터페이스에 대해 액세스 권한을 제공합니다. Cloud Composer 1은 이 용도로 IAP(Identity-Aware Proxy)를 사용합니다.
새 Cloud Composer 환경을 만든 후 웹 인터페이스에서 호스팅을 종료하고 액세스 가능 상태가 되는데 최대 25분이 소요됩니다.
Google Cloud Console을 통해 웹 인터페이스에 액세스
Google Cloud Console에서 Airflow 웹 인터페이스에 액세스하려면 다음 안내를 따르세요.
Google Cloud Console에서 환경 페이지로 이동합니다.
Airflow 웹 서버 열에서 해당 환경의 Airflow 링크를 따릅니다.
적절한 권한을 가진 Google 계정으로 로그인합니다.
Airflow 웹 서버에 대한 액세스 제한
Composer 환경을 사용하면 Airflow 웹 서버에 대한 액세스를 제한할 수 있습니다.
모든 액세스를 차단하거나 특정 IPv4 또는 IPv6 외부 IP 범위로부터의 액세스를 허용할 수 있습니다.
현재 비공개 IP 주소를 사용하여 허용되는 IP 범위를 구성할 수 없습니다.
gcloud
명령줄 도구를 통해 웹 인터페이스 URL 검색
모든 웹브라우저에서 Airflow 웹 인터페이스에 액세스할 수 있습니다. 웹 인터페이스의 URL을 가져오려면 다음 gcloud
명령어를 입력합니다.
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
다음을 바꿉니다.
ENVIRONMENT_NAME
: 환경의 이름입니다.LOCATION
: 환경이 위치한 리전입니다.
gcloud
명령어는 웹 인터페이스의 URL을 비롯해 Cloud Composer 환경의 속성을 보여줍니다. URL은 airflowUri
로 나열됩니다.
config:
airflowUri: https://example-tp.appspot.com
비동기 DAG 로드 구성
비동기 DAG 로드가 사용 설정된 경우 Airflow 웹 서버가 새 프로세스를 만듭니다. 이 프로세스는 백그라운드에서 DAG를 로드하고 dagbag_sync_interval
옵션으로 정의된 간격에 따라 새로 로드된 DAG를 전송한 후 절전 모드로 전환됩니다.
이 프로세스는 주기적으로 절전 모드를 해제하여 DAG를 다시 로드하며, 간격은 collect_dags_interval
옵션으로 정의합니다.
비동기 DAG 로드를 사용 설정하려면 다음 안내를 따르세요.
DAG 직렬화 사용 중지. 비동기 DAG 로드는 DAG 직렬화에 사용할 수 없습니다.
async_dagbag_loader
및store_serialized_dags
Airflow 구성 옵션을 사용하면 HTTP 503 오류가 발생하고 환경이 손상됩니다.다음 Airflow 구성 옵션을 재정의하세요.
섹션 키 값 참고 webserver
async_dagbag_loader
True
기본값은 False
입니다.webserver
collect_dags_interval
30
기본값은 30
입니다. 더 작은 값을 사용하면 더 빠르게 새로 고칠 수 있습니다.webserver
dagbag_sync_interval
10
기본값은 10
입니다.webserver
worker_refresh_interval
3600
기본값은 60
입니다. 비동기 DAG 로드의 경우 더 긴 새로고침 간격을 사용할 수 있습니다.
웹 서버 다시 시작
Cloud Composer 환경 디버깅 또는 문제 해결 시 일부 문제는 Airflow 웹 서버를 다시 시작하여 해결할 수 있습니다. restartWebServer API 또는 restart-web-server
gcloud 명령어를 사용하여 웹 서버를 다시 시작할 수 있습니다.
gcloud beta composer environments restart-web-server ENVIRONMENT_NAME \
--location=LOCATION