Snowpark Container Services: 컴퓨팅 풀 작업하기¶
컴퓨팅 풀은 Snowflake가 Snowpark Container Services 서비스(작업 서비스 포함)를 실행하는 하나 이상의 가상 머신(VM) 노드 모음입니다. CREATE COMPUTE POOL 명령을 사용하여 컴퓨팅 풀을 생성합니다. 그런 다음 서비스를 생성 하거나 서비스 작업을 실행 할 때 이를 지정합니다.
컴퓨팅 풀 만들기¶
컴퓨팅 풀은 Snowflake 가상 웨어하우스와 유사한 계정 수준 구조입니다. 컴퓨팅 풀의 명명 범위는 계정입니다. 즉, 계정에 이름이 같은 컴퓨팅 풀이 여러 개 있을 수 없습니다.
컴퓨팅 풀을 생성하는 데 필요한 최소 정보는 다음과 같습니다.
컴퓨팅 풀 노드에 프로비저닝할 컴퓨터 유형
컴퓨팅 풀을 시작하기 위한 최소 노드 수
컴퓨팅 풀이 확장할 수 있는 최대 노드 수(Snowflake가 확장을 관리합니다.)
컴퓨팅 풀 내에서 실행하려는 서비스에 상당한 로드가 발생하거나 갑자기 활동이 급증할 것으로 예상되는 경우 최소 노드 수를 1보다 크게 설정할 수 있습니다. 이 접근 방식을 사용하면 자동 크기 조정이 시작될 때까지 기다리지 않고 필요할 때 추가 노드를 바로 사용할 수 있습니다.
최대 노드 제한을 설정하면 Snowflake 자동 크기 조정으로 인해 예기치 않게 많은 수의 노드가 컴퓨팅 풀에 추가되는 것을 방지할 수 있습니다. 이는 Snowflake가 원래 계획했던 것보다 더 많은 수의 컴퓨팅 풀 노드를 할당하게 만들 수 있는 코드 문제 또는 예기치 않은 로드 급증과 같은 상황이 발생할 때 매우 중요할 수 있습니다.
다음 CREATE COMPUTE POOL 명령은 1노드 컴퓨팅 풀을 만듭니다.
CREATE COMPUTE POOL tutorial_compute_pool
MIN_NODES = 1
MAX_NODES = 1
INSTANCE_FAMILY = CPU_X64_XS;
INSTANCE_FAMILY는 컴퓨팅 풀의 컴퓨터 노드에 대해 프로비저닝하려는 컴퓨터 유형을 식별합니다. 컴퓨팅 풀 생성 시 INSTANCE_FAMILY를 지정하는 것은 웨어하우스 생성 시 웨어하우스 크기(XSMALL, SMALL, MEDIUM, LARGE 등)를 지정하는 것과 유사합니다. 다음 표에는 사용 가능한 컴퓨터 유형이 나열되어 있습니다.
INSTANCE_FAMILY, Snowflake 서비스 사용 표 매핑
vCPU
메모리(GiB)
저장소(GiB)
대역폭 제한(Gbps)
GPU
GPU당 GPU 메모리(GiB)
노드 제한
설명
CPU_X64_XS, . CPU | XS
1
6
100
최대 12.5
해당 없음
해당 없음
50
Snowpark Container에 사용할 수 있는 가장 작은 인스턴스입니다. 비용 절감 및 시작하기에 이상적입니다.
CPU_X64_S, . CPU | S
3
13
100
최대 12.5
해당 없음
해당 없음
50
비용을 절감하면서 여러 서비스/작업을 호스팅하는 데 이상적입니다.
CPU_X64_M, . CPU | M
6
28
100
최대 12.5
해당 없음
해당 없음
50
풀 스택 애플리케이션 또는 여러 서비스를 보유하는 데 이상적임
CPU_X64_L, . CPU | L
28
116
100
12.5
해당 없음
해당 없음
50
비정상적으로 많은 수의 CPU, 메모리, 저장소가 필요한 애플리케이션의 경우.
HIGHMEM_X64_S, . 상위 메모리 CPU | S
6
58
100
AWS: 최대 12.5, Azure: 8
해당 없음
해당 없음
50
메모리 집약적인 애플리케이션의 경우.
HIGHMEM_X64_M, . 상위 메모리 CPU | M . (AWS만 해당)
28
240
100
12.5
해당 없음
해당 없음
50
단일 컴퓨터에서 여러 메모리 집약적 애플리케이션을 호스팅하는 경우.
HIGHMEM_X64_M, . 상위 메모리 CPU | M . (Azure만 해당)
28
244
100
16
해당 없음
해당 없음
50
단일 컴퓨터에서 여러 메모리 집약적 애플리케이션을 호스팅하는 경우.
HIGHMEM_X64_L, . 상위 메모리 CPU | L . (AWS만 해당)
124
984
100
50
해당 없음
해당 없음
20
대용량 인메모리 데이터 처리에 사용할 수 있는 최대 규모의 AWS 상위 메모리 컴퓨터입니다.
HIGHMEM_X64_L, . 상위 메모리 CPU | L . (Azure만 해당)
92
654
100
32
해당 없음
해당 없음
20
대용량 인메모리 데이터 처리에 사용할 수 있는 최대 규모의 Azure 상위 메모리 컴퓨터입니다.
GPU_NV_S, . GPU | S . (AWS만 해당)
6
27
100
최대 10
1 NVIDIA A10G
24
10
시작하기 위해 Snowpark Container에 사용할 수 있는 가장 작은 NVIDIA GPU 크기입니다.
GPU_NV_M, . GPU | M . (AWS만 해당)
44
178
100
40
4 NVIDIA A10G
24
10
Computer Vision 또는 LLM/VLM과 같은 집약적인 GPU 사용 시나리오에 최적화되었습니다.
GPU_NV_L, . GPU | L . (AWS만 해당)
92
1112
100
400
8 NVIDIA A100
40
요청 시
LLM 및 클러스터링 등과 같은 특수하고 고급 GPU 사례를 위한 가장 큰 GPU 인스턴스입니다.
GPU_NV_XS, . GPU | XS . (Azure만 해당)
3
26
100
8
1 NVIDIA T4
16
10
시작하기 위해 Snowpark Container에 사용할 수 있는 가장 작은 Azure NVIDIA GPU 크기입니다.
GPU_NV_SM, . GPU | SM . (Azure만 해당)
32
424
100
40
1 NVIDIA A10
24
10
시작하기 위해 Snowpark Container에 사용할 수 있는 더 작은 Azure NVIDIA GPU 크기입니다.
GPU_NV_2M, . GPU | 2M . (Azure만 해당)
68
858
100
80
2 NVIDIA A10
24
5
Computer Vision 또는 LLM/VLM과 같은 집약적인 GPU 사용 시나리오에 최적화되었습니다.
GPU_NV_3M, . GPU | 3M . (Azure만 해당)
44
424
100
40
2 NVIDIA A100
80
요청 시
Computer Vision 또는 LLM/VLM과 같은 메모리 집약적인 GPU 사용 시나리오에 최적화되었습니다.
GPU_NV_SL, . GPU | SL . (Azure만 해당)
92
858
100
80
4 NVIDIA A100
80
요청 시
LLM 및 클러스터링 등과 같은 특수하고 고급 GPU 사례를 위한 가장 큰 GPU 인스턴스입니다.
사용 가능한 인스턴스 패밀리에 대한 자세한 내용은 CREATE COMPUTE POOL 을 참조하십시오.
컴퓨팅 풀 노드 자동 크기 조정¶
컴퓨팅 풀을 생성하면 Snowflake가 최소 개수의 노드를 시작하고 허용되는 최대 개수까지 추가 노드를 자동으로 생성합니다. 이를 자동 크기 조정 이라고 합니다. 실행 중인 노드가 추가 워크로드를 감당할 수 없을 때 새 노드가 할당됩니다. 예를 들어 컴퓨팅 풀 내의 두 노드에서 두 서비스 인스턴스가 실행 중이라고 가정합니다. 동일한 컴퓨팅 풀 내에서 다른 서비스를 실행하는 경우 추가 리소스 요구 사항으로 인해 Snowflake가 추가 노드를 시작할 수 있습니다.
그러나 특정 기간 동안 노드에서 서비스가 실행되지 않으면 Snowflake는 자동으로 노드를 제거하여 제거 후에도 컴퓨팅 풀이 필요한 최소 노드 수를 유지하도록 보장합니다.
컴퓨팅 풀 관리하기¶
Snowpark Container Services는 컴퓨팅 풀을 관리하는 다음 명령을 제공합니다.
모니터링: 컴퓨팅 풀에 대한 정보를 얻으려면 SHOW COMPUTE POOLS 명령을 사용하십시오.
작동: 컴퓨팅 풀의 상태를 변경하려면 ALTER COMPUTE POOL 명령을 사용하십시오.
ALTER COMPUTE POOL <name> { SUSPEND | RESUME | STOP ALL }
컴퓨팅 풀을 일시 중단하면 Snowflake는 작업 서비스를 제외한 모든 서비스를 일시 중단합니다. 작업 서비스는 종료 상태(DONE 또는 FAILED)에 도달할 때까지 계속 실행되며, 그 이후에는 컴퓨팅 풀 노드가 해제됩니다.
새로운 서비스를 시작하려면 먼저 일시 중단된 컴퓨팅 풀을 재개해야 합니다. (AUTO_RESUME 속성을 TRUE로 설정하여) 컴퓨팅 풀이 자동 재개되도록 구성한 경우 Snowflake는 서비스가 풀에 제출될 때 자동으로 풀을 재개합니다. 그렇지 않으면 ALTER COMPUTE POOL 명령을 실행하여 컴퓨팅 풀을 수동으로 재개해야 합니다.
수정: 컴퓨팅 풀 속성을 변경하려면 ALTER COMPUTE POOL 명령을 사용하십시오.
ALTER COMPUTE POOL <name> SET propertiesToAlter = <value> propertiesToAlter := { MIN_NODES | MAX_NODES | AUTO_RESUME | AUTO_SUSPEND_SECS | COMMENT }
MAX_NODES를 줄일 때 다음과 같은 잠재적 효과에 유의하십시오.
Snowflake는 하나 이상의 서비스 인스턴스를 종료하고 컴퓨팅 풀에서 사용 가능한 다른 노드에서 해당 인스턴스를 다시 시작해야 할 수도 있습니다. MAX_NODES가 너무 낮게 설정되면 Snowflake가 특정 서비스 인스턴스를 예약하지 못할 수 있습니다.
종료된 노드에 진행 중인 작업 서비스 실행이 있는 경우 작업 실행이 실패합니다. Snowflake는 작업 서비스를 다시 시작하지 않습니다.
예:
ALTER COMPUTE POOL MYPOOL SET MIN_NODES = 2 MAX_NODES = 2;
제거: 컴퓨팅 풀을 제거하려면 DROP COMPUTE POOL 명령을 사용하십시오.
예:
DROP COMPUTE POOL <name>
컴퓨팅 풀을 삭제하려면 먼저 실행 중인 모든 서비스를 중지해야 합니다.
컴퓨팅 풀 나열 및 속성 보기: SHOW COMPUTE POOLS 및 DESCRIBE COMPUTE POOL 명령을 사용합니다. 예를 보려면 컴퓨팅 풀 표시하기 를 참조하십시오.
컴퓨팅 풀 수명 주기¶
컴퓨팅 풀은 다음 상태 중 하나일 수 있습니다.
IDLE: 컴퓨팅 풀에 원하는 수의 가상 컴퓨터(VM) 노드가 있지만 예약된 서비스가 없습니다. 이 상태에서는 활동 부족으로 인해 자동 크기 조정이 컴퓨팅 풀을 최소 크기로 축소할 수 있습니다.
ACTIVE: 컴퓨팅 풀에 실행 중이거나 실행 예정인 서비스가 하나 이상 있습니다. 풀은 로드 또는 사용자 작업에 대한 응답으로 크기가 (최대 노드 수까지) 증가하거나 (최소 노드 수까지) 감소할 수 있습니다.
SUSPENDED: 풀에는 현재 실행 중인 가상 머신 노드가 없지만 AUTO_RESUME 컴퓨팅 풀 속성이 TRUE로 설정된 경우 서비스가 예약될 때 풀이 자동으로 재개됩니다.
다음 상태는 일시적입니다.
STARTING: 컴퓨팅 풀을 생성하거나 재개하면 컴퓨팅 풀이 하나 이상의 노드가 프로비저닝될 때까지 STARTING 상태로 전환됩니다.
STOPPING: (ALTER COMPUTE POOL을 사용하여) 컴퓨팅 풀을 일시 중단하면 Snowflake가 컴퓨팅 풀의 모든 노드를 해제할 때까지 컴퓨팅 풀이 STOPPING 상태로 전환됩니다. 컴퓨팅 풀을 일시 중단하면 Snowflake는 작업 서비스를 제외한 모든 서비스를 일시 중단합니다. 작업 서비스는 종료 상태(DONE 또는 FAILED)에 도달할 때까지 계속 실행되며, 그 이후에는 컴퓨팅 풀 노드가 해제됩니다.
RESIZING: 컴퓨팅 풀을 생성하면 처음에는 STARTING 상태가 됩니다. 하나의 노드가 프로비저닝되면 (CREATE COMPUTE POOL에 지정된 대로) 최소 노드 수가 프로비저닝될 때까지 RESIZING 상태로 전환됩니다. (ALTER COMPUTE POOL을 사용하여) 컴퓨팅 풀을 변경하고 최소 및 최대 노드 값을 업데이트하면 풀은 최소 노드가 프로비저닝될 때까지 RESIZING 상태로 전환됩니다. 컴퓨팅 풀의 자동 크기 조정에서는 컴퓨팅 풀이 RESIZING 상태로 전환한다는 점에도 유의하십시오.
컴퓨팅 풀 권한¶
컴퓨팅 풀로 작업할 때 다음 권한 모델이 적용됩니다.
계정에 컴퓨팅 풀을 생성하려면 현재 역할에 해당 계정에 대한 CREATE COMPUTE POOL 권한이 필요합니다. 풀을 생성하는 경우 소유자는 해당 컴퓨팅 풀에 대한 모든 권한을 부여하는 OWNERSHIP 권한을 갖게 됩니다. 한 컴퓨팅 풀의 OWNERSHIP을 가지고 있다고 해서 다른 컴퓨팅 풀에 대한 권한이 있는 것은 아닙니다.
컴퓨팅 풀 관리를 위해 다음과 같은 권한(기능)이 지원됩니다.
권한
사용법
MODIFY
크기 변경을 포함하여 모든 컴퓨팅 풀 속성을 변경할 수 있습니다.
MONITOR
컴퓨팅 풀 속성 설명을 포함하여 컴퓨팅 풀 사용량을 볼 수 있습니다.
OPERATE
컴퓨팅 풀의 상태 변경(일시 중단, 재개)을 활성화합니다. 또한 예약된 모든 서비스(작업 서비스 포함)를 중지할 수 있습니다.
USAGE
컴퓨팅 풀에서 서비스 생성을 활성화합니다. 컴퓨팅 풀이 일시 중단된 상태이고 해당 AUTO_RESUME 속성이 true로 설정된 경우 컴퓨팅 풀에 대한 USAGE 권한이 있는 역할은 서비스를 시작하거나 재개할 때 역할에 OPERATE 권한이 없더라도 암시적으로 컴퓨팅 풀의 재개를 트리거할 수 있습니다.
OWNERSHIP
컴퓨팅 풀에 대한 모든 권한을 부여합니다. 특정 오브젝트에 대해 한 번에 단 하나의 역할만 이 권한을 보유할 수 있습니다.
ALL [ PRIVILEGES ]
OWNERSHIP을 제외하고 컴퓨팅 풀에 대한 모든 권한을 부여합니다.
컴퓨팅 풀 유지 관리¶
Snowflake는 정기적인 내부 인프라 유지 관리의 일환으로 오래된 컴퓨팅 풀 노드를 정기적으로 업데이트하여 최적의 성능과 보안을 보장합니다. 여기에는 운영 체제 업그레이드, 드라이버 개선, 보안 수정이 포함됩니다. 유지 관리에는 몇 주마다 오래된 노드를 업데이트된 노드로 교체하는 작업이 포함되며, 각 노드는 최대 한 달 동안 활성화됩니다.
유지 관리 윈도우¶
예정된 유지 관리는 매주 월요일부터 목요일, 배포 리전 현지 시간으로 오후 11시부터 오전 5시까지 진행되며 예상 윈도우는 6시간입니다.
서비스 중단¶
유지 관리 동안 영향을 받은 컴퓨팅 풀의 모든 서비스 인스턴스가 새 노드에서 자동으로 다시 생성됩니다. 진행 중인 작업 서비스는 중단되며 유지 관리가 완료되면 고객이 다시 시작해야 합니다.
주의
유지 관리 기간 중 서비스 중단 또는 중요 업데이트는 Snowflake의 지원 정책 및 서비스 수준 계약 에 명시된 서비스 수준에 포함되지 않습니다.
가동 중지 시간을 최소화하기 위한 모범 사례¶
단일 장애 지점을 피하기 위해 각 서비스에 여러 컴퓨팅 노드에 분산할 수 있는 여러 인스턴스를 확보하는 등 고가용성 기법을 사용합니다.
유지 관리 일정을 모니터링하고 유지 관리 윈도우 외에 중요한 작업을 계획합니다.
작업 서비스에 대한 자동 재시작 프로시저를 구현합니다.
정기적으로 백업이나 검사점을 수행합니다.
컴퓨팅 풀에서 서비스를 예약하는 방법¶
서비스 생성 시 수신 로드를 관리하기 위해 여러 인스턴스를 실행하도록 선택할 수 있습니다. Snowflake는 컴퓨팅 풀 노드에서 서비스 인스턴스를 예약할 때 다음과 같은 일반 지침을 사용합니다.
서비스 인스턴스의 모든 컨테이너는 항상 단일 컴퓨팅 풀 노드에서 실행됩니다. 즉, 서비스 인스턴스는 여러 노드에 걸쳐 있지 않습니다.
여러 서비스 인스턴스를 실행하는 경우 Snowflake는 컴퓨팅 풀 내의 동일한 노드 또는 다른 노드에서 이러한 서비스 인스턴스를 실행할 수 있습니다. 이 결정을 내릴 때 Snowflake는 서비스 사양 파일(containers.resources 필드 참조)에 설명된 대로 지정된 하드 리소스 요구 사항(예: 메모리 및 GPU)을 고려합니다.
예를 들어 컴퓨팅 풀의 각 노드가 8GB의 메모리를 제공한다고 가정합니다. 서비스 사양에 6GB 메모리 요구 사항이 포함되어 있고 서비스를 생성할 때 두 개의 인스턴스를 실행하도록 선택한 경우 Snowflake는 동일한 노드에서 두 인스턴스를 모두 실행할 수는 없습니다. 이 경우 Snowflake는 메모리 요구 사항을 충족하기 위해 컴퓨팅 풀 내의 별도 노드에 각 인스턴스를 예약합니다.
참고
Snowflake는 애플리케이션 컨테이너에서 사용할 수 있는 스테이지 마운트를 지원합니다. Snowflake 내부 스테이지는 지원되는 저장소 볼륨 유형 중 하나입니다.
최적의 성능을 위해 이제 Snowflake는 볼륨이 동일한 서비스 인스턴스, 동일한 서비스 또는 다른 서비스에 속하는지 여부에 관계없이 컴퓨팅 풀 노드당 스테이지 볼륨 마운트 총 개수를 8개로 제한합니다.
노드의 제한에 도달하면 Snowflake는 스테이지 볼륨을 사용하는 새로운 서비스 인스턴스를 시작하기 위해 해당 노드를 사용하지 않습니다. 컴퓨팅 풀의 모든 노드에서 한도에 도달하면 Snowflake가 서비스 인스턴스를 시작할 수 없습니다. 이 시나리오에서 SHOW SERVICE CONTAINERS IN SERVICE 명령을 실행하면 Snowflake는 “Unschedulable due to insufficient resources” 메시지와 함께 PENDING 상태를 반환합니다.
이 스테이지 마운트 할당 제한을 노드에 맞추기 위해 경우에 따라 컴퓨팅 풀에 요청하는 최대 노드 수를 늘릴 수 있습니다. 이 경우 Snowflake에서 서비스 인스턴스를 시작할 수 있는 추가 노드가 제공됩니다.
지침 및 제한 사항¶
CREATE COMPUTE POOL 권한: 현재 역할로 컴퓨팅 풀을 만들 수 없는 경우 계정 관리자에게 문의하여 권한을 부여 받아야 합니다. 예:
GRANT CREATE COMPUTE POOL ON ACCOUNT TO ROLE <role_name> [WITH GRANT OPTION];
자세한 내용은 GRANT <권한> 섹션을 참조하십시오.
컴퓨팅 풀 노드의 계정당 제한. 계정에서 생성할 수 있는 노드 수는(컴퓨팅 풀 수와 관계없이) 120개로 제한됩니다. 또한 각 인스턴스 패밀리별로 허용되는 노드 수에 제한이 있습니다(인스턴스 패밀리 테이블 의 노드 제한 열 참조).
Requested number of nodes <#> exceeds the node limit for the account
같은 오류 메시지가 표시되면 이러한 한도에 도달한 것입니다. 자세한 내용은 계정 담당자에게 문의하십시오.