Cloud Composer 1 | Cloud Composer 2
이 페이지에서는 Cloud Composer 1에서 Cloud Composer 환경을 확장하는 방법을 설명합니다.
환경 확장 작동 방식에 대한 자세한 내용은 환경 확장을 참조하세요.
수직 및 수평 확장
Cloud Composer 1에서 사용자는 Cloud Composer 및 Airflow 구성요소(예: 작업자 및 스케줄러)의 특정 CPU 및 메모리 리소스를 정의하지 않습니다. 대신 환경 클러스터의 노드에 대한 머신 수와 유형을 지정합니다.
수평 확장 옵션:
수직 확장 옵션:
노드 수 조정
환경의 노드 수를 변경할 수 있습니다.
이 수는 환경의 Airflow 작업자 수에 해당합니다. 환경 노드는 Airflow 작업자를 실행하는 것 외에도 Airflow 스케줄러와 기타 환경 구성요소를 실행합니다.
Console
Google Cloud Console의 환경 페이지로 이동합니다.
환경을 선택합니다.
환경 구성 탭으로 이동합니다.
워커 노드 > 노드 수 항목에서 수정을 클릭합니다.
워커 노드 구성 대화상자의 노드 수 필드에서 환경의 노드 수를 지정합니다.
저장을 클릭합니다.
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.patch
API 요청을 만듭니다.이 요청의 작성 방법:
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
}
}
스케줄러 수 조정
환경에서 동시에 2개 이상의 Airflow 스케줄러를 실행할 수 있습니다. 성능 및 안정성을 높이기 위해 여러 스케줄러를 사용하여 여러 스케줄러 인스턴스 사이에 부하를 분산합니다.
해당 환경의 노드 수만큼 스케줄러 수를 지정할 수 있습니다.스케줄러 수를 늘린다고 해서 항상 Airflow 성능이 향상되는 것은 아닙니다. 예를 들어 1개의 스케줄러만 사용하면 2개를 사용할 때보다 더 나은 성능을 제공할 수 있습니다. 스케줄러를 추가해도 전체 성능에 도움을 주지 않고 환경의 리소스만 소비될 때가 여기에 해당합니다. 실제 스케줄러 성능은 Airflow 작업자 수, 환경에서 실행되는 DAG 및 태스크 수, Airflow와 환경의 구성에 따라 다릅니다.
2개의 스케줄러로 시작한 다음 환경의 성능을 모니터링하는 것이 좋습니다. 스케줄러 수를 변경한 후 언제든지 환경을 원래 스케줄러 수로 다시 조정할 수 있습니다.
여러 스케줄러 구성에 대한 자세한 내용은 Airflow 문서를 참조하세요.
Console
Google Cloud Console의 환경 페이지로 이동합니다.
환경을 선택합니다.
환경 구성 탭으로 이동합니다.
리소스 > 스케줄러 수 항목에서 수정을 클릭합니다.
스케줄러 구성 대화상자의 스케줄러 수 필드에서 환경의 스케줄러 수를 지정합니다.
저장을 클릭합니다.
gcloud
다음 Google Cloud CLI 명령어를 실행합니다.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--scheduler-count SCHEDULER_COUNT
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
을 환경 이름으로 바꿉니다.LOCATION
을 환경이 위치한 리전으로 바꿉니다.SCHEDULER_COUNT
를 스케줄러 수로 바꿉니다.
예를 들면 다음과 같습니다.
gcloud composer environments update example-environment \
--location us-central1 \
--scheduler-count 2
API
environments.patch
API 요청을 만듭니다.이 요청의 작성 방법:
updateMask
매개변수에서config.softwareConfig.schedulerCount
마스크를 지정합니다.요청 본문에서 환경의 노드 수를 지정합니다.
{
"config": {
"softwareConfig": {
"schedulerCount": SCHEDULER_COUNT
}
}
다음과 같이 바꿉니다.
SCHEDULER_COUNT
를 스케줄러 수로 바꿉니다.
예를 들면 다음과 같습니다.
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.schedulerCount
{
"config": {
"softwareConfig": {
"schedulerCount": 2
}
}
Terraform
software_config
블록의 scheduler_count
필드는 환경의 스케줄러 수를 지정합니다.
이 필드는 Airflow 2를 사용하는 Cloud Composer 1 환경에서만 사용할 수 있습니다.
resource "google_composer_environment" "example" {
config {
software_config {
scheduler_count = SCHEDULER_COUNT
}
}
}
다음과 같이 바꿉니다.
SCHEDULER_COUNT
를 스케줄러 수로 바꿉니다.
예를 들면 다음과 같습니다.
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
software_config {
scheduler_count = 2
}
}
}
Cloud SQL 인스턴스의 머신 유형 조정
환경의 Airflow 데이터베이스를 저장하는 Cloud SQL 인스턴스의 머신 유형을 변경할 수 있습니다.
Console
Google Cloud Console의 환경 페이지로 이동합니다.
환경을 선택합니다.
환경 구성 탭으로 이동합니다.
리소스 > 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.patch
API 요청을 만듭니다.이 요청의 작성 방법:
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 웹 서버에 대한 머신 유형을 변경할 수 있습니다.
Console
Google Cloud Console의 환경 페이지로 이동합니다.
환경을 선택합니다.
환경 구성 탭으로 이동합니다.
리소스 > 웹 서버 머신 유형 항목에서 수정을 클릭합니다.
웹 서버 구성 대화상자의 웹 서버 머신 유형 드롭다운 목록에서 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.patch
API 요청을 만듭니다.이 요청의 작성 방법:
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"
}
}