Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
이 페이지에서는 Cloud Composer 환경을 확장하는 방법을 설명합니다.
- 환경 확장 작동 방식에 대한 상세 설명은 환경 확장을 참조하세요.
수직 및 수평 확장
Cloud Composer 1에서 사용자는 Cloud Composer 및 Airflow 구성요소(예: 작업자 및 스케줄러)의 특정 CPU 및 메모리 리소스를 정의하지 않습니다. 대신 환경 클러스터의 노드에 사용할 머신의 수와 유형을 지정합니다.
수평 확장 옵션:
- 노드 수 조정
- 스케줄러 수 조정
수직 확장 옵션:
- Cloud SQL 인스턴스의 머신 유형 조정
- 웹 서버 머신 유형 조정
스케줄러 매개변수 조정
환경에서 동시에 2개 이상의 Airflow 스케줄러를 실행할 수 있습니다. 성능 및 안정성을 높이기 위해 여러 스케줄러를 사용하여 여러 스케줄러 인스턴스 사이에 부하를 분산합니다.
환경에서 Airflow 2를 사용하는 경우 환경의 노드 수만큼 스케줄러 수를 지정할 수 있습니다.
스케줄러를 확장할 때는 다음 사항을 고려하세요.
스케줄러 수를 늘린다고 해서 항상 Airflow 성능이 향상되는 것은 아닙니다.
예를 들어 스케줄러를 추가해도 전체 성능에 도움을 주지 않고 환경의 리소스만 소비될 때가 여기에 해당합니다. 실제 스케줄러 성능은 Airflow 작업자 수, 환경에서 실행되는 DAG 및 태스크 수, Airflow와 환경의 구성에 따라 다릅니다.
2개의 스케줄러로 시작한 다음 환경의 성능을 모니터링하는 것이 좋습니다.
여러 스케줄러 구성에 대한 자세한 내용은 Airflow 문서를 참조하세요.
콘솔
Google Cloud 콘솔에서 환경 페이지로 이동합니다.
환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.
환경 구성 탭으로 이동합니다.
리소스 > 워크로드 구성 항목에서 수정을 클릭합니다.
리소스 > 스케줄러 수 항목에서 수정을 클릭합니다.
스케줄러 구성 창의 스케줄러 수 필드에서 환경의 스케줄러 수를 지정합니다.
저장을 클릭합니다.
gcloud
다음과 같은 Airflow 스케줄러 매개변수를 사용할 수 있습니다.
--scheduler-count: 환경의 스케줄러 수입니다.
다음 Google Cloud CLI 명령어를 실행합니다.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--scheduler-count SCHEDULER_COUNT
다음을 바꿉니다.
ENVIRONMENT_NAME: 환경의 이름입니다.LOCATION: 환경이 위치한 리전
예를 들면 다음과 같습니다.
gcloud composer environments update example-environment \
--location us-central1 \
--scheduler-count 2
API
environments.patchAPI 요청을 생성합니다.이 요청의 작성 방법:
updateMask매개변수에서config.workloadsConfig.schedulerCount마스크를 지정합니다.요청 본문에서 환경의 스케줄러 수를 지정합니다.
"config": {
"workloadsConfig": {
"scheduler": {
"count": SCHEDULER_COUNT
}
}
}
다음을 바꿉니다.
ENVIRONMENT_NAME: 환경의 이름입니다.LOCATION: 환경이 위치한 리전SCHEDULER_COUNT: 스케줄러 수입니다.
예를 들면 다음과 같습니다.
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.scheduler
"config": {
"workloadsConfig": {
"scheduler": {
"count": 2
}
}
}
Terraform
workloads_config.scheduler 블록의 다음 필드는 Airflow 스케줄러 매개변수를 제어합니다. 각 스케줄러는 지정된 양의 리소스를 사용합니다.
scheduler.count: 환경의 스케줄러 수입니다.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
workloads_config {
scheduler {
count = SCHEDULER_COUNT
}
}
}
}
다음을 바꿉니다.
ENVIRONMENT_NAME: 환경의 이름입니다.LOCATION: 환경이 위치한 리전SCHEDULER_COUNT: 스케줄러 수입니다.
예:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
workloads_config {
scheduler {
count = 2
}
}
}
}
노드 수 조정
환경의 노드 수를 변경할 수 있습니다.
이 수는 환경의 Airflow 작업자 수에 해당합니다. 환경 노드는 Airflow 작업자를 실행하는 것 외에도 Airflow 스케줄러와 기타 환경 구성요소를 실행합니다.
콘솔
Google Cloud 콘솔에서 환경 페이지로 이동합니다.
환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.
환경 구성 탭으로 이동합니다.
워커 노드 > 노드 수 항목에서 수정을 클릭합니다.
워커 노드 구성 창의 노드 수 필드에서 환경의 노드 수를 지정합니다.
저장을 클릭합니다.
gcloud
--node-count 인수는 환경의 노드 수를 제어합니다.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--zone NODE_ZONE \
--node-count NODE_COUNT
다음을 바꿉니다.
ENVIRONMENT_NAME: 환경의 이름입니다.LOCATION: 환경이 위치한 리전NODE_COUNT: 노드 수. 최소 노드 수는3개입니다.NODE_ZONE: 환경 VM의 Compute Engine 영역
예를 들면 다음과 같습니다.
gcloud composer environments update example-environment \
--location us-central1 \
--zone us-central1-a \
--node-count 6
API
environments.patchAPI 요청을 만듭니다.이 요청의 작성 방법:
updateMask매개변수에서config.nodeCount마스크를 지정합니다.요청 본문에서 환경의 노드 수를 지정합니다.
"config": {
"nodeCount": NODE_COUNT
}
다음을 바꿉니다.
NODE_COUNT: 노드 수. 최소 노드 수는3개입니다.
예를 들면 다음과 같습니다.
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.nodeCount
"config": {
"nodeCount": 6
}
Terraform
node_config 블록의 node_count 필드는 환경의 노드 수를 지정합니다.
resource "google_composer_environment" "example" {
config {
node_config {
node_count = NODE_COUNT
}
}
다음을 바꿉니다.
NODE_COUNT: 노드 수.
예를 들면 다음과 같습니다.
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
node_config {
node_count = 4
}
}
Cloud SQL 인스턴스의 머신 유형 조정
환경의 Airflow 데이터베이스를 저장하는 Cloud SQL 인스턴스의 머신 유형을 변경할 수 있습니다.
콘솔
Google Cloud 콘솔에서 환경 페이지로 이동합니다.
환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.
환경 구성 탭으로 이동합니다.
리소스 > Cloud SQL 머신 유형 항목에서 수정을 클릭합니다.
Cloud SQL 구성 창의 Cloud SQL 머신 유형 드롭다운 목록에서 환경의 Cloud SQL 인스턴스에 대한 머신 유형을 선택합니다.
저장을 클릭합니다.
gcloud
--cloud-sql-machine-type 인수는 환경에서 Cloud SQL 인스턴스의 머신 유형을 제어합니다.
다음 Google Cloud CLI 명령어를 실행합니다.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--cloud-sql-machine-type SQL_MACHINE_TYPE
다음을 바꿉니다.
ENVIRONMENT_NAME: 환경의 이름입니다.LOCATION: 환경이 위치한 리전SQL_MACHINE_TYPE: Cloud SQL 인스턴스의 머신 유형입니다.
예를 들면 다음과 같습니다.
gcloud composer environments update example-environment \
--location us-central1 \
--cloud-sql-machine-type db-n1-standard-2
API
environments.patchAPI 요청을 만듭니다.이 요청의 작성 방법:
updateMask매개변수에서config.databaseConfig.machineType마스크를 지정합니다.요청 본문에서 Cloud SQL 인스턴스의 머신 유형을 지정합니다.
{
"config": {
"databaseConfig": {
"machineType": "SQL_MACHINE_TYPE"
}
}
}
다음을 바꿉니다.
SQL_MACHINE_TYPE: Cloud SQL 인스턴스의 머신 유형입니다.
예를 들면 다음과 같습니다.
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.databaseConfig.machineType
{
"config": {
"databaseConfig": {
"machineType": "db-n1-standard-2"
}
}
}
Terraform
database_config 블록의 machine_type 필드는 Cloud SQL 인스턴스의 머신 유형을 지정합니다.
resource "google_composer_environment" "example" {
config {
database_config {
machine_type = "SQL_MACHINE_TYPE"
}
}
}
다음을 바꿉니다.
SQL_MACHINE_TYPE: Cloud SQL 인스턴스의 머신 유형입니다.
예를 들면 다음과 같습니다.
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
database_config {
machine_type = "db-n1-standard-2"
}
}
웹 서버 머신 유형 조정
환경의 Airflow 웹 서버에 대한 머신 유형을 변경할 수 있습니다.
콘솔
Google Cloud 콘솔에서 환경 페이지로 이동합니다.
환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.
환경 구성 탭으로 이동합니다.
리소스 > 웹 서버 머신 유형 항목에서 수정을 클릭합니다.
웹 서버 구성 창의 웹 서버 머신 유형 드롭다운 목록에서 Airflow 웹 서버의 머신 유형을 선택합니다.
저장을 클릭합니다.
gcloud
--web-server-machine-type 인수는 환경에서 Airflow 웹 서버 인스턴스의 머신 유형을 제어합니다.
다음 Google Cloud CLI 명령어를 실행합니다.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--web-server-machine-type WS_MACHINE_TYPE
다음을 바꿉니다.
ENVIRONMENT_NAME: 환경의 이름입니다.LOCATION: 환경이 위치한 리전WS_MACHINE_TYPE을 Airflow 웹 서버 인스턴스의 머신 유형으로 바꿉니다.
예를 들면 다음과 같습니다.
gcloud composer environments update example-environment \
--location us-central1 \
--web-server-machine-type composer-n1-webserver-2
API
environments.patchAPI 요청을 만듭니다.이 요청의 작성 방법:
updateMask매개변수에서config.webServerConfig.machineType마스크를 지정합니다.요청 본문에서 웹 서버의 머신 유형을 지정합니다.
{
"config": {
"webServerConfig": {
"machineType": "WS_MACHINE_TYPE"
}
}
}
다음을 바꿉니다.
WS_MACHINE_TYPE을 Airflow 웹 서버 인스턴스의 머신 유형으로 바꿉니다.
예를 들면 다음과 같습니다.
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerConfig.machineType
{
"config": {
"webServerConfig": {
"machineType": "composer-n1-webserver-2"
}
}
}
Terraform
web_server_config 블록의 machine_type 필드는 Airflow 웹 서버 인스턴스의 머신 유형을 지정합니다.
resource "google_composer_environment" "example" {
config {
web_server_config {
machine_type = "WS_MACHINE_TYPE"
}
}
}
다음을 바꿉니다.
WS_MACHINE_TYPE을 Airflow 웹 서버 인스턴스의 머신 유형으로 바꿉니다.
예를 들면 다음과 같습니다.
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
web_server_config {
machine_type = "composer-n1-webserver-2"
}
}