앱 업그레이드하기¶
이 항목에서는 Snowflake Native App 업그레이드에 대한 정보를 제공합니다.
업그레이드 정보¶
공급자는 Snowflake Native App Framework 에서 앱을 새 버전 또는 패치로 업그레이드할 수 있습니다. 앱의 새 버전 또는 패치 개발을 위한 전체 워크플로에서 업그레이드가 어떻게 적용되는지 확인하려면 앱 업데이트를 위한 워크플로 섹션을 참조하십시오.
공급자는 애플리케이션 패키지에 릴리스 지시문을 설정하여 새 버전 또는 패치로 앱 업그레이드를 시작할 수 있습니다. 릴리스 지시문이 수정되면 Snowflake는 현재 버전의 앱에 설치된 모든 인스턴스를 릴리스 지시문에 지정된 버전으로 자동 업그레이드합니다.
공급자가 업그레이드를 시작하면 Snowflake는 업그레이드할 각 앱을 큐에 추가합니다. 각 앱은 리소스 가용성에 따라 업그레이드됩니다. 설치된 모든 버전의 앱에서 업그레이드 프로세스를 완료하는 데 시간이 걸릴 수 있습니다. 업그레이드 프로세스를 신속하게 진행하기 위해 컨슈머는 새 버전이나 패치가 가용할 때 앱의 업그레이드를 수동으로 시작할 수도 있습니다.
참고
앱에 대한 업그레이드 프로세스가 시작되면 컨슈머는 더 이상 수동으로 앱을 업그레이드할 수 없습니다.
워크플로 업그레이드하기¶
공급자는 다음 워크플로를 사용하여 설치된 앱을 업그레이드합니다.
새로운 기능을 포함하도록 앱을 업데이트합니다.
앱의 새 버전을 만드는 중이고 현재 앱에 대해 두 가지 버전이 정의되어 있는 경우:
현재 해당 버전을 실행 중인 컨슈머가 없는지 확인합니다.
교체하려는 앱의 버전을 삭제합니다.
애플리케이션 패키지의 변경 사항에 대한 새 버전이나 패치를 만듭니다.
애플리케이션 패키지의 DISTRIBUTION 속성이
EXTERNAL
로 설정된 경우 자동 보안 검사 가 시작됩니다. 업그레이드하려면 먼저 보안 검사를 통과해야 합니다.테스트 계정에서 앱 설치를 생성하여 새 버전을 테스트합니다.
버전이나 패치에 대한 릴리스 지시문을 업데이트합니다.
그러면 이전 버전의 설치된 모든 인스턴스를 업데이트하는 자동 업그레이드가 시작됩니다. 공급자는 업그레이드가 제공됨을 컨슈머에게 알리고 앱을 수동으로 업그레이드하도록 요청할 수 있습니다.
업그레이드 시작하기¶
공급자가 애플리케이션 패키지의 릴리스 지시문(기본 또는 사용자 지정)을 새 버전 또는 패치를 가리키도록 업데이트하면 업그레이드 프로세스가 자동으로 시작됩니다. ALTER APPLICATION PACKAGE … RELEASE DIRECTIVE 명령을 사용하여 다음 예와 같이 릴리스 지시문을 설정합니다.
ALTER APPLICATION PACKAGE my_application_package SET DEFAULT RELEASE DIRECTIVE
VERSION = v2
PATCH = 0;
이 명령은 기본 릴리스 지시문을 버전 v2
와 패치 0
으로 설정합니다.
ALTER APPLICATION PACKAGE my_application_package
SET RELEASE DIRECTIVE my_custom_release_directive
ACCOUNTS = ( USER_ACCOUNT.snowflakecomputing.com )
VERSION = v2
PATCH = 0;
이 명령은 my_custom_release_directive
라는 이름의 사용자 지정 릴리스 지시문을 버전 v2
로 설정하고 USER_ACCOUNT.snowflakecomputing.com 계정에 대해 0
패치를 적용합니다.
자세한 내용은 앱의 릴리스 지시문 설정하기 섹션을 참조하십시오.
앱을 수동으로 업그레이드하기¶
컨슈머는 수동 업그레이드를 통해 자동 업그레이드보다 더 빠르게 설치된 앱을 업그레이드할 수 있습니다. 새 버전 또는 패치가 제공되는 경우 공급자는 컨슈머에게 수동 업그레이드를 요청할 수 있습니다.
컨슈머는 ALTER APPLICATION 을 실행하여 수동 업그레이드를 수행합니다. 이 명령으로 애플리케이션 패키지에 지정된 릴리스 지시문을 사용하여 설치된 앱 버전이나 패치의 업그레이드를 시작할 수 있습니다.
컨슈머가 설치된 Snowflake Native App 을 사용 가능한 최신 버전으로 업그레이드하려면 ALTER APPLICATION 명령의 UPGRADE 절을 사용하여 애플리케이션 오브젝트를 수정하면 됩니다.
ALTER APPLICATION <name> UPGRADE
리전 간 앱 업그레이드하기¶
앱을 업그레이드한 후 컨슈머 계정에 설치된 Snowflake Native App 의 변경 사항은 원격 리전에 대해 새로 고침을 수행할 때까지 표시되지 않을 수 있습니다.
데이터 공유 사용 스키마에서 APPLICATION_STATE 뷰 를 사용하여 상태를 모니터링할 수 있습니다. 업그레이드를 수행한 다음 첫 번째 새로 고침 후 1일이 지나도 업그레이드가 완료되지 않으면 새로 고침 프로세스에 문제가 있는 것일 수 있습니다. Snowflake 지원 에 문의하십시오.
공급자가 클라우드 간 자동 복제 를 사용하여 Snowflake Native App 을 게시하는 경우 여러 요소에 따라 자동 업그레이드를 수행하는 데 시간이 다소 걸릴 수 있습니다.
새로 고침 일정의 값.
설치된 앱 인스턴스 수.
앱이 배포되는 리전의 수.
업그레이드에 원격 리전에서 업그레이드해야 하는 긴급한 수정 사항이 포함된 경우 공급자는 목록의 새로 고침 빈도를 더 작은 값으로 줄일 수 있습니다. 계정 수준 새로 고침 빈도 설정에 대한 자세한 내용은 자동 완성 설정 모니터링 및 관리하기 섹션을 참조하십시오.
조심
새로 고침 빈도를 줄이면 복제와 관련된 비용이 증가할 수 있습니다.
상태 업그레이드하기¶
업그레이드 과정에서 앱은 여러 상태를 거치게 됩니다. 다음 다이어그램은 이전 버전인 v1에서 새 버전인 v2로 업그레이드할 때 가능한 상태를 보여줍니다.
참고
이 다이어그램은 버전에 대한 업그레이드를 보여주지만 패치 업그레이드에도 적용됩니다.

다음 표는 애플리케이션 패키지가 위치한 리전 내의 앱에 대한 업그레이드 프로세스의 각 단계를 보여줍니다.
스테이지 |
설명 |
|
---|---|---|
1 |
앱이 비활성화되어 있나요? |
앱이 비활성화되어 있으면 업그레이드할 수 없습니다. |
2 |
릴리스 지시문을 v2.0으로 설정합니다 |
공급자가 릴리스 지시문을 v2.0으로 설정 |
3 |
업그레이드 대상 |
Snowflake는 앱이 업그레이드할 수 있는지 확인하기 위해 검사를 수행합니다. 이러한 검사에는 앱이 비활성화되지 않았는지, 애플리케이션 패키지를 사용할 수 있는지, 버전 및 패치가 업그레이드에 유효한지, 컨슈머 계정이 유효한지 등의 확인이 포함됩니다. |
4 |
업그레이드 슬롯을 확보하셨나요? |
업그레이드 중인 앱의 수, 컨슈머 계정 수 등에 따라 업그레이드 프로세스를 시작할 때까지 기다려야 할 수도 있습니다. |
5 |
설정 스크립트가 성공적으로 실행되었나요? |
업그레이드가 시작되면 Snowflake가 설정 스크립트를 실행합니다. 잡히지 않은 오류가 발생하면 설정 스크립트 실행이 중지됩니다. Snowflake는 구성된 재시도 횟수에 따라 앱을 다시 업그레이드할 수 있도록 큐에 대기합니다. |
6 |
버전이 업데이트되나요? |
Snowflake는 업그레이드가 버전 또는 패치를 위한 것인지 확인합니다. 업그레이드가 버전에 대한 업그레이드인 경우 Snowflake는 추가 검사를 수행하고 이전 버전의 앱에서 모든 작업이 완료될 때까지 기다립니다. |
다음 표는 원격 리전으로 배포되는 앱의 업그레이드 프로세스를 보여줍니다.
스테이지 |
설명 |
|
---|---|---|
7 |
원격 리전에서 복제된 릴리스 지시문 v2.0 |
공급자가 원격 리전에 배포된 앱에 대해 릴리스 지시문을 설정하면 원격 리전에 배포된 애플리케이션 패키지에 릴리스 지시문이 전파됩니다. |
8 |
V2.0의 활성 리전은? |
기본 리전 내 대부분의 앱이 업그레이드되면 Snowflake는 원격 리전으로 메시지를 보내 앱 업그레이드를 시작합니다. |
9 |
업그레이드 프로세스 시작하기 |
이전 표에 설명된 대로 앱의 업그레이드 프로세스를 시작합니다. |
다음 표에서는 업그레이드 프로세스의 가능한 각 상태에 대해 설명합니다.
상태 |
설명 |
---|---|
DISABLED |
앱이 비활성화되어 업그레이드할 수 없습니다. |
QUEUED |
앱 및 컨슈머 계정 수에 따라 앱이 업그레이드 대기열에 있습니다. |
UPGRADING |
앱이 업그레이드 중입니다. |
COMPLETED |
앱이 성공적으로 업그레이드되었습니다. |
QUEUED_RETRY |
설정 스크립트 또는 기타 검사에 실패하여 앱이 업그레이드 큐로 반환됩니다. |
FAILED |
앱 업그레이드가 실패했습니다. 예를 들어 설정 스크립트의 오류로 인해 공급자 측에서 업그레이드가 실패할 수 있습니다. 앱이 비활성화되어 있거나 컨슈머 계정이 비활성 상태인 경우 등에도 컨슈머 측에서 업그레이드가 실패할 수 있습니다. |
업그레이드 상태 모니터링하기¶
앱의 업그레이드 상태를 보려면 APPLICATION_STATE 뷰 를 사용하십시오.
예를 들어 기본 릴리스 지시문을 업데이트하고 모든 앱이 대상 버전에 도달했는지 확인하려는 상황입니다. 아직 업그레이드가 완료되지 않은 애플리케이션 인스턴스를 찾으려면 다음 예의 쿼리를 사용하십시오.
SELECT * FROM snowflake.data_sharing_usage.APPLICATION_STATE
이 뷰에는 업그레이드 상태 및 앱이 배포된 리전을 비롯하여 업그레이드와 관련된 열이 포함되어 있습니다. 업그레이드 상태에 대한 자세한 내용은 상태 업그레이드하기 섹션을 참조하십시오.
업그레이드 문제 해결하기¶
Snowflake Native App Framework 에서 업그레이드 문제를 해결할 수 있는 몇 가지 방법을 제공합니다.
업그레이드 오류 식별하기¶
컨슈머는 DESCRIBE APPLICATION 명령을 사용하여 업그레이드 실패와 관련된 오류 메시지를 볼 수 있습니다. 이 명령은 업그레이드 프로세스 중에 발생한 오류에 대한 인사이트를 제공합니다.
공급자는 APPLICATION_STATE 뷰 에서 업그레이드 실패에 대한 오류 메시지를 볼 수 있습니다. 공급자는 이 뷰를 사용하여 특정 애플리케이션의 문제를 진단할 수 있습니다. 자세한 내용은 업그레이드 상태 모니터링하기 섹션을 참조하십시오.
로그 및 이벤트 추적 사용하기¶
앱에 대해 로그 및 이벤트 추적 이 구성된 경우 공급자는 이벤트 테이블을 쿼리하여 앱 업그레이드 관련 문제를 진단할 수 있습니다.
자세한 내용은 이벤트 테이블에서 로그 및 이벤트 보기 섹션을 참조하십시오.
앱의 서비스 상태 모니터링하기¶
앱 내에서 컴퓨팅 풀 또는 서비스의 상태에 대한 정보를 보기 위해 컨슈머는 다음 시스템 함수를 사용할 수 있습니다.
컨슈머는 이 정보를 공급자에게 다시 공유할 수 있습니다. 공급자는 이 정보를 반환하도록 이벤트 공유를 구성할 수도 있습니다.
비활성화된 앱¶
컨슈머 계정에 설치된 앱이 비활성화되면 더 이상 사용할 수 없습니다. 컨슈머 계정에 설치된 앱은 다음과 같은 여러 가지 이유로 비활성화될 수 있습니다.
애플리케이션 패키지 관련 문제
설치된 애플리케이션 관련 문제
컨슈머 계정 관련 문제
공급자와 컨슈머 모두 앱이 오랜 기간 동안 비활성화된 상태로 유지되는 상황을 피해야 합니다. 비활성화된 앱은 사용할 수 없게 될 수 있으며 다시 설치해야 합니다.
비활성화된 앱 업그레이드하기¶
비활성화된 앱은 일반 업그레이드 프로세스의 일부가 아니므로 업그레이드할 수 없습니다. 비활성화된 앱이 다시 활성화되면 릴리스 지시문의 버전 및 패치로 자동 업그레이드됩니다. 그러나 해당 버전 또는 패치를 더 이상 사용할 수 없는 경우 앱을 업그레이드할 수 없으며 다시 설치해야 합니다.
예를 들어 비활성화된 앱의 버전이 v1
인데 애플리케이션 패키지의 현재 버전과 이전 버전이 v2
및 v3
인 경우 앱을 업그레이드할 수 없으며 사용할 수 없습니다.
앱이 비활성화될 수 있는 이유¶
APPLICATION_STATE 뷰 의 DISABLEMENT_REASONS 열에서 앱이 비활성화된 이유를 확인할 수 있습니다. 다음 테이블에는 DISABLEMENT_REASONS 열에 사용할 수 있는 값이 나열되어 있습니다.
값 |
상태 설명 |
복구가 가능합니까? |
---|---|---|
MANUALLY_DISABLED |
Snowflake에 의해 앱이 비활성화됨 |
예. 앱을 다시 활성화하려면 Snowflake 지원 에 문의하십시오. |
ACCOUNT_INACTIVE |
계정이 잠기거나 일시 정지되어 앱을 사용할 수 없게 되면 계정이 비활성 상태가 됩니다. 이 상태에서 컨슈머는 계정에서 SQL 쿼리도 실행할 수 없으며 앱을 업그레이드할 수 없습니다. |
예. 계정 잠금 또는 일시 정지가 해제되면 앱이 자동으로 다시 활성화됩니다. |
PACKAGE_VERSION_IS_MISSING |
공급자가 앱의 애플리케이션 패키지 버전을 삭제했습니다. |
아니요. 해당 앱은 더 이상 사용할 수 없으므로 유효한 목록이나 애플리케이션 패키지에서 삭제하고 다시 설치해야 합니다. |
CMK_ACCESS_DENIED |
컨슈머가 직접 암호화 키를 관리하며(ENCRYPT_USE_CMK_KMS 활성화됨), Snowflake는 이 키에 액세스할 수 없습니다. |
예. 앱을 다시 활성화하려면 CMK를 검색하는 클라우드 공급자 구성이 올바른지, Snowflake에 키에 대한 액세스 권한이 있는지 확인하십시오. |
LISTING_ACCESS_REVOKED |
앱을 만드는 데 사용된 목록은 더 이상 사용할 수 없습니다. 이 상태에 대한 가능한 이유는 다음과 같습니다.
|
가능합니다. 복구 가능성은 액세스가 취소된 이유에 따라 다릅니다. 예를 들어, 목록이 삭제된 경우 복구할 수 없습니다. 컨슈머 계정이 비공개 목록에서 수동으로 제거된 경우, 목록와 앱에 대한 액세스를 복원할 수 있습니다. |
LISTING_TRIAL_USAGE_EXCEEDED |
애플리케이션이 사용량 기반 평가판 목록의 사용량 한도를 초과했습니다. |
아니요 |
LISTING_PAYMENT_REQUIRED |
앱을 설치하는 데 사용된 목록은 유료 목록이므로 추가로 사용하려면 요금을 지불해야 합니다. |
예. 컨슈머는 앱에 대한 결제를 올바르게 설정해야 합니다. |
LISTING_TRIAL_TIME_EXCEEDED |
애플리케이션의 평가판 기간이 초과되었습니다. |
아니요 |
APPLICATION_PACKAGE_NOT_AVAILABLE |
앱을 생성하는 데 사용된 애플리케이션 패키지가 더 이상 없습니다. 공급자가 해당 애플리케이션 패키지를 삭제했을 수 있습니다. |
아니요 |
APPLICATION_PACKAGE_DISABLED |
앱을 생성하는 데 사용된 애플리케이션 패키지가 Snowflake에 의해 비활성화되었습니다. |
예. Snowflake가 애플리케이션 패키지를 다시 활성화하면 앱도 다시 활성화됩니다. |
APPLICATION_SUSPENDED |
앱이 비활성화되면 앱 리소스(작업, 서비스, 컴퓨팅 풀)가 일시 중단됩니다. 일시 중단된 오브젝트는 앱이 다시 활성화되고 앱이 비활성화된 다른 이유가 제거될 때까지 일시 중단 상태로 유지됩니다. |
예 |
APPLICATION_SUSPEND_RESUME_IN_PROGRESS |
작업, 서비스 및 컴퓨팅 풀과 같은 앱 리소스를 현재 재개하는 중입니다. |
예 |