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;
Copy

INSTANCE_FAMILY는 컴퓨팅 풀의 컴퓨터 노드에 대해 프로비저닝하려는 컴퓨터 유형을 식별합니다. 컴퓨팅 풀 생성 시 INSTANCE_FAMILY를 지정하는 것은 웨어하우스 생성 시 웨어하우스 크기(XSMALL, SMALL, MEDIUM, LARGE 등)를 지정하는 것과 유사합니다. 다음 표에는 사용 가능한 컴퓨터 유형이 나열되어 있습니다.

소비 테이블 매핑

INSTANCE_FAMILY

vCPU

메모리(GiB)

저장소(GiB)

GPU

GPU당 GPU 메모리(GiB)

Max. Limit

설명

CPU | XS

CPU_X64_XS

2

8

250

해당 없음

해당 없음

50

Snowpark Container에 사용할 수 있는 가장 작은 인스턴스입니다. 비용 절감 및 시작하기에 이상적입니다.

CPU | S

CPU_X64_S

4

16

250

해당 없음

해당 없음

50

비용을 절감하면서 여러 서비스/작업을 호스팅하는 데 이상적입니다.

CPU | M

CPU_X64_M

8

32

250

해당 없음

해당 없음

20

풀 스택 애플리케이션 또는 여러 서비스를 보유하는 데 이상적임

CPU | L

CPU_X64_L

32

128

250

해당 없음

해당 없음

20

비정상적으로 많은 수의 CPU, 메모리, 저장소가 필요한 애플리케이션의 경우.

상위 메모리 CPU | S

HIGHMEM_X64_S

8

64

250

해당 없음

해당 없음

20

메모리 집약적인 애플리케이션의 경우.

상위 메모리 CPU | M

HIGHMEM_X64_M

32

256

250

해당 없음

해당 없음

20

단일 컴퓨터에서 여러 메모리 집약적 애플리케이션을 호스팅하는 경우.

상위 메모리 CPU | L

HIGHMEM_X64_L

128

1024

250

해당 없음

해당 없음

20

대용량 인메모리 데이터 처리에 사용할 수 있는 최대 규모의 상위 메모리 컴퓨터입니다.

GPU | S

GPU_NV_S

8

32

250

1 NVIDIA A10G

24

10

시작하기 위해 Snowpark Container에 사용할 수 있는 가장 작은 NVIDIA GPU 크기입니다.

GPU | M

GPU_NV_M

48

192

250

4 NVIDIA A10G

24

5

Computer Vision 또는 LLM/VLM과 같은 집약적인 GPU 사용 시나리오에 최적화되었습니다.

GPU | L

GPU_NV_L

96

1152

250

8 NVIDIA A100

40

요청 시

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 }
    
    Copy

    컴퓨팅 풀을 일시 중단하면 Snowflake는 모든 서비스를 일시 중단하지만 작업은 최종 상태(DONE 또는 FAILED)에 도달할 때까지 계속 실행되며 그 후에는 컴퓨팅 풀 노드가 해제됩니다.

    새로운 서비스나 작업을 시작하려면 먼저 일시 중단된 컴퓨팅 풀을 재개해야 합니다. (AUTO_RESUME 속성을 TRUE로 설정하여) 컴퓨팅 풀이 자동 재개되도록 구성한 경우 Snowflake는 서비스 또는 작업이 풀에 제출될 때 자동으로 풀을 재개합니다. 그렇지 않으면 ALTER COMPUTE POOL 명령을 실행하여 컴퓨팅 풀을 수동으로 재개해야 합니다.

  • 수정: 컴퓨팅 풀 속성을 변경하려면 ALTER COMPUTE POOL 명령을 사용하십시오.

    ALTER COMPUTE POOL <name> SET propertiesToAlter
    propertiesToAlter := { MIN_NODES | MAX_NODES | AUTO_RESUME | AUTO_SUSPEND_SECS | COMMENT }
    
    Copy

    MAX_NODES를 줄일 때 다음과 같은 잠재적 효과에 유의하십시오.

    • Snowflake는 하나 이상의 서비스 인스턴스를 종료하고 컴퓨팅 풀에서 사용 가능한 다른 노드에서 해당 인스턴스를 다시 시작해야 할 수도 있습니다. MAX_NODES가 너무 낮게 설정되면 Snowflake가 특정 서비스 인스턴스를 예약하지 못할 수 있습니다.

    • 종료된 노드에 진행 중인 작업 실행이 있는 경우 작업 실행이 실패합니다. Snowflake는 작업을 다시 시작하지 않습니다.

      예:

      ALTER COMPUTE POOL MYPOOL SET MIN_NODES = 2  MAX_NODES = 2;
      
      Copy
  • 제거: 컴퓨팅 풀을 제거하려면 DROP COMPUTE POOL 명령을 사용하십시오.

    예:

    DROP COMPUTE POOL <name>
    
    Copy

    컴퓨팅 풀을 삭제하려면 먼저 실행 중인 모든 서비스를 중지해야 합니다.

  • 컴퓨팅 풀 나열 및 속성 보기: 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는 이전 컴퓨팅 풀에 대한 업데이트를 수행합니다. 이 프로세스에는 운영 체제 업그레이드, 드라이브 향상, 컴퓨팅 풀 노드에 존재하는 보안 취약점 해결 등의 필수 작업이 포함됩니다.

이러한 유지 관리 절차 중에 컴퓨팅 풀 노드는 오프라인 상태가 되고 정기적으로(몇 주마다) 업데이트된 노드로 바뀝니다. 컴퓨팅 풀 노드는 최대 한 달 동안 활성 상태로 유지되며, 그 이후에는 Snowflake가 해당 노드를 폐기하고 새로 업데이트된 노드로 바뀝니다. 이런 일이 발생할 때 다음 사항이 적용됩니다.

  • 현재 이러한 컴퓨팅 풀에서 실행 중인 모든 서비스 인스턴스는 새 노드에서 자동으로 다시 생성됩니다.

  • 진행 중인 모든 작업이 중단 상황에 직면하게 되며 컴퓨팅 풀이 다시 작동되면 고객이 해당 작업을 다시 시작해야 합니다.

예상되는 유지 관리 기간은 약 30분입니다.

이러한 내부 인프라 업데이트는 해당 리전을 기준으로 현지 시간으로 매주 화요일, 수요일, 목요일, 금요일 오전 8시부터 오후 1시까지 이루어집니다.

컴퓨팅 풀에서 서비스를 예약하는 방법

서비스 생성 시 수신 로드를 관리하기 위해 여러 인스턴스를 실행하도록 선택할 수 있습니다. Snowflake는 컴퓨팅 풀 노드에서 서비스 인스턴스를 예약할 때 다음과 같은 일반 지침을 사용합니다.

  • 서비스 인스턴스의 모든 컨테이너는 항상 단일 컴퓨팅 풀 노드에서 실행됩니다. 즉, 서비스 인스턴스는 여러 노드에 걸쳐 있지 않습니다.

  • 여러 서비스 인스턴스를 실행하는 경우 Snowflake는 컴퓨팅 풀 내의 동일한 노드 또는 다른 노드에서 이러한 서비스 인스턴스를 실행할 수 있습니다. 이 결정을 내릴 때 Snowflake는 서비스 사양 파일(containers.resources 필드 참조)에 설명된 대로 지정된 하드 리소스 요구 사항(예: 메모리 및 GPU)을 고려합니다.

    예를 들어 컴퓨팅 풀의 각 노드가 8GB의 메모리를 제공한다고 가정합니다. 서비스 사양에 6GB 메모리 요구 사항이 포함되어 있고 서비스를 생성할 때 두 개의 인스턴스를 실행하도록 선택한 경우 Snowflake는 동일한 노드에서 두 인스턴스를 모두 실행할 수는 없습니다. 이 경우 Snowflake는 메모리 요구 사항을 충족하기 위해 컴퓨팅 풀 내의 별도 노드에 각 인스턴스를 예약합니다.

지침 및 제한 사항

  • CREATE COMPUTE POOL 권한: 현재 역할로 컴퓨팅 풀을 생성할 수 없는 경우 ACCOUNTADMIN 역할을 사용하여 권한을 부여하십시오. 예:

    GRANT CREATE COMPUTE POOL ON ACCOUNT TO ROLE <role_name> [WITH GRANT OPTION];
    
    Copy

    자세한 내용은 GRANT <권한> 섹션을 참조하십시오.

  • 컴퓨팅 풀 노드의 계정당 제한. 특정 인스턴스 패밀리(CREATE COMPUTE POOL 참조)에는 언제든지 활성화할 수 있는 전체 노드 수에 대한 계정당 제한이 있습니다. Requested number of nodes <#> exceeds the node limit for the account 와 같은 오류 메시지가 표시되면 이 제한에 도달한 것입니다. 자세한 내용은 계정 담당자에게 문의하십시오.