컨테이너를 사용하여 앱에 컴퓨팅 풀 추가¶
이 항목에서는 Snowflake Native Apps with Snowpark Container Services 에서 컴퓨팅 풀을 사용하는 방법을 설명합니다.
컨테이너가 포함된 앱의 컴퓨팅 풀 정보¶
컴퓨팅 풀 은 Snowflake가 Snowpark Container Services를 실행하는 하나 이상의 가상 머신(VM) 노드 모음입니다. 컨테이너가 포함된 앱은 컨슈머 계정의 컴퓨팅 풀을 사용하여 앱에 필요한 컨테이너 이미지를 관리합니다.
앱은 여러 개의 컴퓨팅 풀을 생성할 수 있으며, 각 컴퓨팅 풀은 해당 앱에서만 사용할 수 있습니다. 앱에서 사용하는 컴퓨팅 풀은 다른 목적으로 사용할 수 없습니다.
앱 내의 컨테이너는 다른 컴퓨팅 풀에 있더라도 서로 직접 액세스할 수 있습니다.
그러나 다양한 컴퓨팅 풀을 사용하면 공급자가 서비스 유형을 구분할 수 있습니다. 예를 들어, 공급자는 프런트엔드 서비스와 백엔드 서비스를 분리할 수 있습니다.
컴퓨팅 풀은 계정 수준 오브젝트이므로 각 컴퓨팅 풀의 이름은 컨슈머 계정 내에서 고유해야 합니다.
앱에 대한 컴퓨팅 풀 만들기¶
컨테이너를 사용하여 앱에 대한 컴퓨팅 풀을 생성하는 방법은 두 가지가 있습니다.
해당 앱은 설치 중에 필요한 컴퓨팅 풀을 생성합니다. 이를 위해서는 컨슈머가 앱에 컴퓨팅 풀에 대한 CREATE COMPUTE POOL 권한을 부여해야 합니다. 공급자는 Snowsight 를 사용하여 이러한 권한을 요청하도록 앱을 구성할 수 있습니다.
자세한 내용은 CREATE COMPUTE POOL 권한을 요청하도록 앱 구성 섹션을 참조하십시오.
컨슈머는 앱에 필요한 컴퓨팅 풀을 수동으로 생성합니다. 컨슈머는 CREATE COMPUTE POOL 을 실행하여 컴퓨팅 풀을 생성한 다음 앱에 컴퓨팅 풀에 대한 CREATE COMPUTE POOL 권한을 수동으로 부여해야 합니다.
CREATE COMPUTE POOL 권한을 요청하도록 앱 구성¶
공급자는 CREATE COMPUTE POOL 권한을 요청하도록 앱을 구성할 수 있습니다. 앱이 설치되거나 업그레이드될 때 설정 스크립트에서 컴퓨팅 풀을 생성할 수도 있습니다.
참고
앱은 컨슈머 계정에서 최대 5개의 컴퓨팅 풀을 만들 수 있습니다. 앱에서 추가 컴퓨팅 풀을 생성해야 하는 경우 Snowflake 지원에 문의하십시오.
CREATE COMPUTE POOL 권한 요청¶
앱은 컨슈머에게 CREATE COMPUTE POOL 권한을 요청할 수 있습니다. 이 권한을 통해 앱은 컨슈머 계정에 컴퓨팅 풀을 만들 수 있습니다. 컨슈머에게 전역 권한 요청에 대한 일반적인 정보는 컨슈머에게 전역 권한 요청하기 섹션을 참조하십시오.
컨슈머에게 CREATE COMPUTE POOL 권한을 요청하려면 다음 예제와 같이 manifest.yml
파일에 CREATE COMPUTE POOL 권한을 추가합니다.
...
privileges:
- CREATE COMPUTE POOL
description: "Enable application to create one to five compute pools"
...
컨테이너가 포함된 앱의 파일 컨테이너가 포함된 앱의 매니페스트 파일 만들기 생성에 대한 자세한 내용 manifest.yml
을 참조하십시오.
참고
컨테이너 앱 내에서 CREATE COMPUTE POOL 권한 요청에 대한 동작은 다른 권한 요청과 다릅니다. 이 권한을 manifest.yml
파일에 추가하면 Snowsight 는 컨슈머에게 필요한 권한을 부여할 수 있는 인터페이스를 표시합니다.
설정 스크립트에 CREATE COMPUTE POOL 명령 추가¶
컨슈머 계정에서 컴퓨팅 풀을 생성하려면 앱의 설정 스크립트에 CREATE COMPUTE POOL 명령을 추가합니다.
다음 예제에서는 설치 스크립트의 저장 프로시저 내에서 컴퓨팅 풀을 만드는 방법을 보여줍니다.
CREATE COMPUTE POOL IF NOT EXISTS app_compute_pool
MIN_NODES = 1
MAX_NODES = 1
INSTANCE_FAMILY = standard_1
AUTO_RESUME = true;
참고
앱 내에서 컴퓨팅 풀을 생성할 때 공급자는 컴퓨팅 풀을 생성하기 전에 공급자에게 CREATE COMPUTE POOL 권한이 부여되었는지 확인해야 합니다.
앱이 생성한 컴퓨팅 풀은 해당 앱이 독점적으로 소유합니다. 이러한 풀은 다른 애플리케이션이나 컨슈머가 직접 사용할 수 없습니다.
일반적으로 컨슈머 계정의 사용자는 다음과 같은 상황에서만 앱에서 생성된 컴퓨팅 풀을 볼 수 있습니다.
사용자에게 MANAGE GRANTS 권한이 부여되었습니다.
앱은 애플리케이션 역할을 사용하여 컴퓨팅 풀에 대한 액세스 권한을 부여합니다.
그러나 ACCOUNTADMIN 역할이 있는 사용자는 앱이 컴퓨팅 풀을 소유하고 있더라도 일시 중단, 중지 및 재개할 수 있습니다.
설치 스크립트 내에서 컴퓨팅 풀 접두사를 추가합니다.¶
컴퓨팅 풀은 계정 수준 오브젝트이므로 컴퓨팅 풀 이름은 컨슈머 계정 내에서 고유해야 합니다. 다음 예제에서는 애플리케이션 이름을 컴퓨팅 풀 이름의 접두사로 사용하는 방법을 보여줍니다.
LET POOL_NAME := (select current_database()) || '_app_pool';
CREATE COMPUTE POOL IF NOT EXISTS identifier(:pool_name)
MIN_NODES = 1
MAX_NODES = 1
INSTANCE_FAMILY = STANDARD_2;
컨테이너가 포함된 앱에서 컴퓨팅 풀을 사용하기 위한 모범 사례¶
공급자는 컨슈머 계정에서 컴퓨팅 풀을 생성할 때 다음 사항을 고려해야 합니다.
컴퓨팅 풀은 비용에 영향을 미칩니다. 정확한 양의 리소스를 소비하려면
min_nodes
,max_nodes
,instance_family
속성에 대한 값을 설정하는 것이 중요합니다. 또한 공급자는 컴퓨팅 풀이 비활성 상태일 때 자동으로 일시 중단되도록 AUTO_SUSPEND_SECS 속성을 설정해야 합니다.자세한 내용은 CREATE COMPUTE POOL 섹션을 참조하십시오.
컴퓨팅 풀은 계정 수준 오브젝트이므로 컴퓨팅 풀 이름은 컨슈머 계정 내에서 고유해야 합니다. 애플리케이션 이름을 컴퓨팅 풀 이름의 접두사로 사용하는 것이 좋습니다.