이 페이지에서는 Managed Service for Apache Airflow 버전 관리를 설명하고 주요 Managed Airflow 버전 간의 차이점을 나열합니다.
Managed Airflow의 주요 버전
Managed Airflow에는 다음과 같은 주요 버전이 있습니다.
관리형 Airflow (3세대) 이 버전은 간소화된 네트워크 설정을 제공하며, 환경 클러스터 및 다른 서비스에 대한 환경 종속 항목을 포함한 인프라 구성요소를 숨깁니다.
관리형 Airflow (2세대). 이 버전에서는 환경의 클러스터가 리소스 요구사항에 맞게 자동으로 확장됩니다.
관리형 Airflow (기존 1세대) 수동 환경 확장 기능이 있으며 인프라가 프로젝트 및 네트워크에 배포됩니다.
Managed Airflow 버전 비교
다음 표에는 관리형 Airflow (기존 1세대), 관리형 Airflow (2세대), 관리형 Airflow (3세대)의 주요 차이점이 나와 있습니다.
| 기능 | 관리형 Airflow (기존 1세대) | Managed Airflow (2세대) | 관리형 Airflow (3세대) |
|---|---|---|---|
| 이미지 버전 | composer-1.b.c-airflow-x.y.z |
composer-2.b.c-airflow-x.y.z |
composer-3-airflow-x.y.z-build.t |
| Airflow 버전 | Airflow 1.10.* 및 Airflow 2 | Airflow 2 | Airflow 2, Airflow 3 |
| Python 버전 | 3.8.12 | 3.11.8 (이전 버전에서는 3.11.5 및 3.8.12) | 3.11.8 |
| 환경 클러스터 | 표준 모드 VPC 기반 또는 경로 기반 Google Kubernetes Engine 클러스터 | Autopilot 모드 VPC 기반 Google Kubernetes Engine 클러스터 | 환경의 클러스터가 프로젝트에 배포되지 않았습니다. |
| 수평 확장 | 환경 클러스터의 노드 수를 조정할 수 있습니다. 이렇게 하면 Airflow 작업자 수가 변경됩니다. Airflow 스케줄러 수를 조정할 수 있습니다. |
수요에 따라 Airflow 작업자 수를 자동으로 확장합니다. 작업자 수의 상한과 하한을 설정하고 변경할 수 있습니다. Airflow 스케줄러 및 트리거 수를 조정할 수 있습니다. |
수요에 따라 Airflow 작업자 수를 자동으로 확장합니다. 작업자 수의 상한과 하한을 설정하고 변경할 수 있습니다. Airflow 스케줄러, 트리거, DAG 프로세서 수를 조정할 수 있습니다. |
| 수직 확장 | 환경을 만들 때 클러스터 노드, Airflow 웹 서버, 데이터베이스의 머신 유형을 설정할 수 있습니다. Airflow 웹 서버와 데이터베이스의 머신 유형을 변경할 수 있습니다. | 워크로드 구성(Airflow 작업자의 CPU, 메모리, 스토리지 매개변수, 스케줄러, 웹 서버, 환경 크기)을 설정하고 변경할 수 있습니다. | 워크로드 구성(Airflow 작업자의 CPU, 메모리, 스토리지 매개변수, 스케줄러, 웹 서버, DAG 프로세서, 환경 크기)을 설정하고 변경할 수 있습니다. |
| 가격 책정 모델 | 관리형 Airflow (기존 1세대) 가격 책정 모델 | 관리형 Airflow (2세대) 가격 책정 모델 | 관리형 Airflow (3세대) 가격 책정 모델 |
| 액세스 제어 | 관리형 Airflow (기존 1세대) 역할 | 관리형 Airflow 역할. GKE용 워크로드 아이덴티티 제휴를 사용하고 관리형 Airflow 서비스 에이전트 계정에 대한 추가 권한이 필요합니다. | 관리형 Airflow 역할입니다. GKE용 워크로드 아이덴티티 제휴를 사용합니다. 추가 권한이 필요하지 않습니다. |
| 직원 ID 제휴를 통한 액세스 | 지원되지 않음 | 지원됨 | 지원됨 |
| 복원력이 우수한 환경 | 지원되지 않음 | 지원됨 | 지원됨 |
| 데이터베이스 보관 정책 | 지원되지 않음 | 아직 사용할 수 없음 | 지원됨 |
| 비공개 IP 네트워킹 | VPC 피어링 | Private Service Connect | 간소화된 네트워크 설정. 기존 환경에서 공개 및 비공개 IP 간에 변경할 수 있습니다. |
| VPC 서비스 제어 | 지원됨 | 지원됨 | 지원됨 |
| Airflow Executor | Celery Executor | Celery Executor | CeleryKubernetes Executor |
| Airflow 트리거(지연 가능한 연산자) | 지원되지 않음 | 지원됨 | 지원됨 |
| KubernetesPodOperator의 맞춤 서비스 계정 | 지원됨 | 지원됨 | 지원되지 않음 |
| CMEK | 지원됨 | 지원됨 | 지원됨 |
| 웹 서버 액세스 제어 | 지원됨 | 지원됨 | 지원됨 |
| 웹 서버 다시 시작 | 지원됨 | 지원됨 | 지원됨 |
| 웹 서버 플러그인 | DAG 직렬화가 사용 중지된 Airflow 1 환경에서 지원됩니다. | 지원됨 | 지원됨, 플러그인은 필요에 따라 사용 중지하거나 사용 설정할 수 있습니다. |
| 스케줄러 플러그인 | 지원되지 않음 | 지원됨 | 지원되지 않음 |
| 리스너 | 지원되지 않음 | 지원됨 | 작업 수준 리스너만 |
| TimeTables | 기본 제공만 | 맞춤 및 기본 제공 | 기본 제공만 |
| 스케줄러 맞춤 PyPI 패키지 | 지원되지 않음 | 지원됨 | 지원되지 않음 |
| 커스텀 플러그인 설치 | 지원됨 | 지원됨 | 지원됨 |
| 유지보수 작업 | 모든 태스크가 영향을 받을 수 있습니다. | 실행 시간이 55분 미만인 태스크는 영향을 받지 않습니다. | 실행 시간이 24시간 미만인 태스크는 영향을 받지 않습니다. |
| 스냅샷 저장 | Airflow 2.x 및 1.10.15 버전에 지원됨 | 지원됨 | 지원됨 |
| 스냅샷 로드 | 지원되지 않음 | 지원됨 | 지원됨 |
| 예약된 스냅샷 | 지원되지 않음 | 지원됨 | 지원됨 |
| 커스텀 환경의 버킷 | 지원되지 않음 | 지원됨 | 지원됨 |
| Cloud Logging에만 Airflow 작업 로그 저장 | 지원되지 않음 | 지원됨 | 지원됨 |
| 데이터 계보 통합 | 지원되지 않음 | 지원됨 | 지원됨 |
| Composer 로컬 개발 CLI 도구 | 지원되지 않음 | 지원됨 | 지원됨 |
Airflow 버전 비교
관리형 Airflow (3세대)는 Airflow 2 및 Airflow 3 환경을 제공합니다.
관리형 Airflow (3세대) 기능 지원
다음 표에는 Airflow 3에서 아직 지원되지 않는 관리형 Airflow (3세대) 기능이 요약되어 있습니다.
| 기능 | 상태 | 설명 |
|---|---|---|
| Airflow 3 (스냅샷)으로 업그레이드 | Airflow 3에서는 아직 지원되지 않음 | 스냅샷을 사용하여 Airflow 2에서 Airflow 3으로 기존 관리형 Airflow (3세대) 환경을 단계별로 마이그레이션합니다. |
| Airflow 3으로 업그레이드 (인플레이스) | Airflow 3에서는 아직 지원되지 않음 | 업그레이드 중에 Airflow 3이 포함된 버전을 지정하여 기존 관리형 Airflow (3세대) 환경을 Airflow 2에서 Airflow 3으로 인플레이스 업그레이드 |
| 직원 ID 제휴 지원 | Airflow 3에서는 아직 지원되지 않음 | Airflow 3이 있는 환경에서 외부 ID 공급업체 사용 |
Airflow 3의 알려진 문제
Airflow 3에서 확인된 알려진 문제는 다음과 같습니다.
- Airflow 워크로드 로그의 경고 메시지 이러한 메시지는 무시해도 됩니다.
airflowctl유틸리티는 관리형 Airflow의 Airflow 작업자나 Docker 컨테이너와 같은 헤드리스 환경에서 쉽게 사용할 수 없습니다. 이는 유틸리티의 제한사항입니다. 이 제한사항에 대한 자세한 내용은 GitHub의 Airflow 저장소에서 문제 58230을 참고하세요.
Airflow 3 기능 지원
다음 표에는 Airflow 3 기능과 지원 여부가 나와 있습니다.
| 기능 | 상태 |
|---|---|
| Airflow 3.0 UI | 지원됨 |
| DAG 버전 관리 | 지원됨 |
| 백필 (Airflow UI에서) | 지원됨 |
| 이벤트 기반 일정 | 지원됨 |
| 애셋 | 지원됨 |
| 추론 실행 및 초매개변수 조정 | 지원됨 |
| airflowctl 명령줄 도구 | 지원됨 |
| DAG 번들 (LocalDagBundle 제외) | Airflow 3에서는 아직 지원되지 않음 |
| Edge Executor 및 기타 프로그래밍 언어의 작업 | Airflow 3에서는 아직 지원되지 않음 |
Managed Service for Apache Airflow 이미지
Apache Airflow를 실행하기 위해 Managed Airflow는 Airflow 출시 버전과 다른 일반 바이너리 및 Python 라이브러리를 묶어 놓은 Docker 이미지를 빌드합니다.
Managed Airflow 이미지는 Managed Airflow와 관련된 Airflow 수정사항을 포함하며 업스트림 Airflow 코드베이스에는 부적합합니다. 각 Managed Airflow 이미지에는 사전 설치된 패키지와 Managed Airflow 관련 Airflow 변경사항이 포함되어 있습니다.
Google은 주기적으로 새로운 Managed Airflow 이미지를 출시합니다.
관리형 Airflow (3세대)의 이미지에는 지원되는 Airflow 버전의 새 빌드가 포함됩니다. 사용할 Airflow 버전과 빌드를 선택할 수 있습니다. 환경에 관리형 Airflow 개선사항이 자동으로 적용됩니다.
관리형 Airflow (2세대) 및 관리형 Airflow (기존 1세대)의 이미지에는 관리형 Airflow 개선사항 및 지원되는 Airflow 버전의 새 빌드가 포함됩니다. 관리형 Airflow 개선사항을 적용하려면 환경을 최신 버전의 관리형 Airflow로 업그레이드합니다.
버전 지원 중단 및 지원
Composer 3
Google은 출시 후 일정 기간 동안 Airflow 빌드를 지원합니다.
출시일로부터 0~12개월: 이 Airflow 빌드를 실행하는 관리형 Airflow (3세대) 환경이 지원됩니다.
출시일로부터 12개월 이상: 이러한 버전을 실행하는 관리형 Airflow (3세대) 환경이 지원되지 않습니다.
Airflow 빌드가 더 이상 지원되지 않으면 이 Airflow 빌드를 실행하는 환경도 지원되지 않으며 전적으로 사용자가 관리해야 합니다.
환경은 다음과 같은 방식으로 지원되는 Airflow 빌드 및 지원되지 않는 Airflow 빌드와 함께 작동합니다.
지원되는 모든 Airflow 빌드로 환경을 만들 수 있습니다.
더 이상 지원되지 않는 Airflow 빌드가 있는 환경을 계속 사용할 수 있습니다. 환경은 계속 작동하며, 계속 사용할 수 있고 지원되는 Airflow 빌드로 업그레이드할 수 있습니다.
경우에 따라 이후 Airflow 버전 또는 빌드로 업그레이드하는 것이 보안 취약점에 사용할 수 있는 유일한 솔루션입니다.
Composer 2
Google은 버전 출시 후 일정 기간 동안 관리형 Airflow (2세대) 버전을 지원합니다.
출시일로부터 0~12개월: 이러한 버전을 실행하는 Managed Airflow (2세대) 환경이 지원됩니다.
출시일로부터 12개월 이상: 이러한 버전을 실행하는 관리형 Airflow (2세대) 환경이 지원되지 않습니다.
더 이상 지원되지 않는 날짜 이후에도 관리형 Airflow 버전을 계속 사용할 수 있습니다. 예를 들어 지원 기간이 지난 관리형 Airflow 버전을 기반으로 하는 환경도 계속 작동하며 이를 계속 사용할 수 있습니다. 이 경우 해당 환경을 지원되는 버전으로 업그레이드하는 것이 좋습니다.
Composer 1
새로운 관리형 Airflow (기존 1세대) 버전은 2023년 3월 말에 출시되었습니다. 출시된 모든 관리형 Airflow (기존 1세대) 버전은 관리형 Airflow (2세대)와 동일한 버전 지원 중단 정책을 따르며 이에 따라 지원됩니다.
버전 스키마
이 섹션에서는 Airflow 및 관리형 Airflow 버전 스키마와 버전 별칭을 설명합니다.
Airflow 버전 스키마
Airflow는 의미론적인 소프트웨어 버전 관리 스키마를 따릅니다. Airflow 버전마다 주, 부, 패치 버전이 있습니다.
Composer 3
관리형 Airflow (3세대)에서는 시간이 지남에 따라 새로운 Airflow 버전과 빌드를 사용할 수 있게 됩니다.
환경은 이전의 모든 Airflow 버전 및 빌드로 작동할 수 있으며 인프라 구성요소의 업데이트를 자동으로 수신합니다. 각 버전과 빌드는 버전 지원 중단 및 지원에 설명된 대로 지원되며, Airflow 버전을 최신 버전 또는 빌드로 업그레이드할 수 있습니다.
Composer 2
각 관리형 Airflow 버전에서 지원되는 Airflow 버전 목록은 관리형 Airflow 버전 목록을 참고하세요.
관리형 Airflow (2세대)는 출시 버전마다 Airflow 2의 두 가지 부 버전을 지원합니다.
예를 들어 관리형 Airflow 2.4.0은 Airflow 2.4.* 및 Airflow 2.5.*를 지원합니다.
Managed Airflow는 Airflow 2의 각 마이너 버전에 대해 하나의 패치 버전을 지원합니다.
예를 들어 Airflow 2.4.*의 경우 Managed Airflow는 Airflow 2.4.3을 지원합니다.
Managed Airflow에서 Airflow 2의 새 패치 버전이 제공되면 해당 출시 버전에는 Airflow의 동일한 마이너 버전에 사용할 수 있는 Airflow 2의 패치 버전 두 가지가 포함됩니다. 이후에 이전 패치 버전이 다음 출시 버전 중 하나에서 삭제됩니다.
예를 들어 관리형 Airflow 2.3.4는 Airflow 2.5.1 및 Airflow 2.5.3을 둘 다 지원합니다.
관리형 Airflow는 관리형 Airflow 출시 버전 간에 일부 Airflow 패치 버전을 건너뛸 수 있습니다. 또한 Airflow의 특정 패치 버전에 함수, 품질 또는 성능 문제가 있으면 관리형 Airflow에서도 이 버전을 건너뛸 수 있습니다.
예를 들어 Airflow 2.1.3은 건너뛰고 Airflow 2.1.4가 제공됩니다.
안정적인 Airflow 버전을 실행하는 Managed Airflow 출시 버전에는 이후 Airflow 버전에서 백포트된 Airflow 업데이트가 포함될 수 있습니다.
Composer 1
관리형 Airflow (기존 1세대)에서 지원되는 최신 버전의 Airflow는 Airflow 2.4.3입니다.
관리형 Airflow (기존 1세대)만 Airflow 1의 최신 출시 버전인 Airflow 1.10.15를 지원합니다.
관리형 Airflow 버전 스키마
Composer 3
관리형 Airflow (3세대) 버전 관리 스키마는 Airflow 버전과 빌드를 캡처합니다.
composer-3-airflow-x.y.z-build.t
각 항목의 의미는 다음과 같습니다.
composer-3은 Managed Airflow의 메이저 버전입니다.airflow-x.y.z.build.t는 Airflow 버전 및 빌드입니다. 관리형 Airflow (3세대)에서 동일한 Airflow 버전이 출시될 때마다 빌드 번호가 더 높습니다. 빌드 번호는 Airflow 오픈소스 프로젝트가 아닌 관리형 Airflow에 의해 정의됩니다.
Composer 2
관리형 Airflow (2세대) 이미지 버전 관리 스키마는 관리형 Airflow 및 Airflow 버전을 캡처합니다.
composer-2.b.c-airflow-x.y.z
각 항목의 의미는 다음과 같습니다.
composer-2.b.c은 관리형 Airflow (2세대)에서 관리형 Airflow로 관리되는 맞춤설정의 부 버전 및 패치 버전을 나타냅니다. 일반적으로 관리형 Airflow의 마이너 버전은 사용 가능한 Airflow 버전 집합이 변경되는 등 이전 마이너 버전과 비교하여 기능이 크게 변경되는 경우에 해당합니다. 패치 버전은 후속 출시에서 업데이트됩니다.airflow-x.y.z은 Airflow 출시 버전으로, 특정 관리 Airflow 이미지에 사용되는 Airflow의 주 버전, 부 버전, 패치 버전을 나타냅니다.
Composer 1
관리형 Airflow (기존 1세대) 이미지 버전 관리 스키마는 관리형 Airflow 및 Airflow 버전을 캡처합니다.
composer-1.b.c-airflow-x.y.z
각 항목의 의미는 다음과 같습니다.
composer-1.b.c는 Managed Airflow 관리형 맞춤설정 버전입니다.airflow-x.y.z는 Airflow 출시 버전입니다.
버전 별칭
버전 별칭은 다음과 같은 방식으로 작동합니다.
관리형 Airflow는 환경을 만들 때 버전 별칭을 전체 형식으로 확인합니다.
- 관리형 Airflow (3세대)에서 모든 버전 별칭은
composer-3-airflow-x.y.z-build.t가 됩니다. - 관리형 Airflow (2세대) 및 관리형 Airflow (기존 1세대)에서 모든 버전 별칭은
composer-a.b.c-airflow-x.y.z가 됩니다.
- 관리형 Airflow (3세대)에서 모든 버전 별칭은
관리형 Airflow (3세대)에서
composer-3-airflow-x.y와 같은 버전 별칭을 사용하면 환경의 Airflow 버전과 빌드가 자동으로 업그레이드되지 않습니다. 환경은 업그레이드할 때까지 동일한 Airflow 빌드 및 버전을 유지합니다. 환경은 평소와 같이 자동 인프라 업그레이드를 계속 받습니다.관리형 Airflow (2세대) 및 관리형 Airflow (기존 1세대)에서
composer-a-airflow-x.y.z와 같은 버전 별칭을 사용하면 환경에 대한 자동 업그레이드가 제공되지 않습니다. 환경은 업그레이드할 때까지 동일한 관리형 Airflow 및 Airflow 버전을 유지합니다.
관리형 Airflow (3세대) 버전 별칭
관리형 Airflow (3세대)는 다음 버전 별칭을 지원합니다.
| 별칭 | Airflow 버전 |
|---|---|
composer-3-airflow-2 |
Airflow 2의 최신 버전 및 빌드 |
composer-3-airflow-x.y |
x.y 메이저 버전과 마이너 버전 내 Airflow의 최신 버전 및 빌드 |
composer-3-airflow-x.y.z |
지정된 Airflow 버전의 최신 빌드 |
관리형 Airflow (2세대) 버전 별칭
관리형 Airflow (2세대)는 다음 버전 별칭을 지원합니다.
| 별칭 | 관리형 Airflow 버전 | Airflow 버전 |
|---|---|---|
composer-2-airflow-2 |
최신 버전의 Managed Airflow (2세대) | Airflow 2 최신 버전 |
composer-2-airflow-x.y |
최신 버전의 Managed Airflow (2세대) | x.y 주 버전과 부 버전 내 최신 버전의 Airflow |
composer-2-airflow-x.y.z |
최신 버전의 Managed Airflow (2세대) | 지정된 Airflow 버전 |
composer-2.b.c-airflow-x.y |
지정된 버전의 관리형 Airflow (2세대) | x.y 주 버전과 부 버전 내에서 사용 가능한 최신 버전의 Airflow |
관리형 Airflow (기존 1세대) 버전 별칭
관리형 Airflow (기존 1세대)는 다음 버전 별칭을 지원합니다.
| 별칭 | 관리형 Airflow 버전 | Airflow 버전 |
|---|---|---|
composer-1-airflow-2 |
관리형 Airflow (기존 1세대)의 최신 버전 | Airflow 2 최신 버전 |
composer-1-airflow-1 |
관리형 Airflow (기존 1세대)의 최신 버전 | Airflow 1 최신 버전 |
composer-1-airflow-x.y |
관리형 Airflow (기존 1세대)의 최신 버전 | x.y 주 버전과 부 버전 내 최신 버전의 Airflow |
composer-1-airflow-x.y.z |
관리형 Airflow (기존 1세대)의 최신 버전 | 지정된 Airflow 버전 |
composer-1.b.c-airflow-x.y |
지정된 관리형 Airflow 버전 (기존 1세대) | x.y 주 버전과 부 버전 내에서 사용 가능한 최신 버전의 Airflow |
다음 버전 별칭은 관리형 Airflow (3세대)를 가리킵니다. 계속 사용할 수 있지만 Managed Airflow 버전의 별칭으로 전환하는 것이 좋습니다.
composer-latest-airflow-x.y는composer-3-airflow-x.y와 같습니다.composer-latest-airflow-x.y.z는composer-3-airflow-x.y.z와 같습니다.
Google Cloud CLI의 버전 인수
Google Cloud CLI를 사용하여 관리형 Airflow 환경을 만들거나 업그레이드할 때는 관리형 Airflow 및 Airflow 버전을 지정할 수 있습니다.
Composer 3
--image-version인수는composer-3-airflow-x.y.z-build.t형식으로 Airflow 버전 및 빌드를 지정합니다. Google Cloud CLI에서 전체 형식으로 변환되는 버전 별칭을 사용할 수 있습니다.--airflow-version은 다음 형식으로 Airflow 버전을 지정합니다.x.y.z형식은 지정된 버전의 Airflow의 최신 빌드에 사용됩니다. 이 형식은composer-3-airflow-x.y.z버전 별칭과 동일합니다.x.y형식은x.y메이저 버전 및 마이너 버전 내에서 사용 가능한 Airflow의 최신 빌드에 사용됩니다. 이 형식은composer-3-airflow-x.y버전 별칭과 동일합니다.x.y.z-build.t은 지정된 Airflow 버전 및 빌드입니다. 이 형식은composer-3-airflow-x.y.z-build.t와 같습니다.
Composer 2
--image-version인수는 관리형 Airflow (2세대) 및 Airflow 버전을 지정합니다.composer-a.b.c-airflow-x.y.z형식은 지정된 버전의 관리형 Airflow 및 Airflow를 사용하여 환경을 만듭니다.- 버전 별칭은 먼저
composer-a.b.c-airflow-x.y.z형식으로 확인된 후 지정된 버전의 관리형 Airflow (2세대) 및 Airflow를 사용하여 환경을 만듭니다.
--airflow-version은 다음 형식으로 Airflow 버전을 지정합니다.x.y.z형식은 최신 버전의 관리형 Airflow (2세대)와 지정된 버전의 Airflow에 사용됩니다. 이 형식은composer-2-airflow-x.y.z버전 별칭과 동일합니다.x.y형식은 최신 버전의 Managed Airflow (2세대)와x.y주 버전 및 부 버전 내에서 사용 가능한 Airflow 최신 버전에 사용됩니다. 이 형식은composer-2-airflow-x.y버전 별칭과 동일합니다.
Composer 1
--image-version인수는 관리형 Airflow (기존 1세대) 및 Airflow 버전을 지정합니다.composer-a.b.c-airflow-x.y.z형식은 지정된 버전의 관리형 Airflow 및 Airflow를 사용하여 환경을 만듭니다.- 버전 별칭은 먼저
composer-a.b.c-airflow-x.y.z형식으로 확인된 후 지정된 버전의 Managed Airflow (레거시 1세대) 및 Airflow를 사용하여 환경을 만듭니다.
--airflow-version은 다음 형식으로 Airflow 버전을 지정합니다.x.y.z형식은 관리형 Airflow (기존 1세대) 최신 버전과 Airflow 지정 버전에 사용됩니다. 이 형식은composer-1-airflow-x.y.z버전 별칭과 동일합니다.x.y형식은 최신 버전의 Managed Airflow (레거시 1세대)와x.y주 버전과 부 버전 내에 사용 가능한 최신 버전의 Airflow에 사용됩니다. 이 형식은composer-1-airflow-x.y버전 별칭과 동일합니다.