앱 업그레이드하기

이 항목에서는 Snowflake Native App 업그레이드에 대한 정보를 제공합니다.

업그레이드 정보

공급자는 Snowflake Native App Framework 에서 앱을 새 버전 또는 패치로 업그레이드할 수 있습니다. 앱의 새 버전 또는 패치 개발을 위한 전체 워크플로에서 업그레이드가 어떻게 적용되는지 확인하려면 앱 업데이트를 위한 워크플로 섹션을 참조하십시오.

공급자는 애플리케이션 패키지에 릴리스 지시문을 설정하여 새 버전 또는 패치로 앱 업그레이드를 시작할 수 있습니다. 릴리스 지시문이 수정되면 Snowflake는 현재 버전의 앱에 설치된 모든 인스턴스를 릴리스 지시문에 지정된 버전으로 자동 업그레이드합니다.

공급자가 업그레이드를 시작하면 Snowflake는 업그레이드할 각 앱을 큐에 추가합니다. 각 앱은 리소스 가용성에 따라 업그레이드됩니다. 설치된 모든 버전의 앱에서 업그레이드 프로세스를 완료하는 데 시간이 걸릴 수 있습니다. 업그레이드 프로세스를 신속하게 진행하기 위해 컨슈머는 새 버전이나 패치가 가용할 때 앱의 업그레이드를 수동으로 시작할 수도 있습니다.

참고

앱에 대한 업그레이드 프로세스가 시작되면 컨슈머는 더 이상 수동으로 앱을 업그레이드할 수 없습니다.

워크플로 업그레이드하기

공급자는 다음 워크플로를 사용하여 설치된 앱을 업그레이드합니다.

  1. 새로운 기능을 포함하도록 앱을 업데이트합니다.

  2. 앱의 새 버전을 만드는 중이고 현재 앱에 대해 두 가지 버전이 정의되어 있는 경우:

    1. 현재 해당 버전을 실행 중인 컨슈머가 없는지 확인합니다.

    2. 교체하려는 앱의 버전을 삭제합니다.

  3. 애플리케이션 패키지의 변경 사항에 대한 새 버전이나 패치를 만듭니다.

    애플리케이션 패키지의 DISTRIBUTION 속성이 EXTERNAL 로 설정된 경우 자동 보안 검사 가 시작됩니다. 업그레이드하려면 먼저 보안 검사를 통과해야 합니다.

  4. 테스트 계정에서 앱 설치를 생성하여 새 버전을 테스트합니다.

  5. 버전이나 패치에 대한 릴리스 지시문을 업데이트합니다.

    그러면 이전 버전의 설치된 모든 인스턴스를 업데이트하는 자동 업그레이드가 시작됩니다. 공급자는 업그레이드가 제공됨을 컨슈머에게 알리고 앱을 수동으로 업그레이드하도록 요청할 수 있습니다.

업그레이드 시작하기

공급자가 애플리케이션 패키지의 릴리스 지시문(기본 또는 사용자 지정)을 새 버전 또는 패치를 가리키도록 업데이트하면 업그레이드 프로세스가 자동으로 시작됩니다. ALTER APPLICATION PACKAGE … RELEASE DIRECTIVE 명령을 사용하여 다음 예와 같이 릴리스 지시문을 설정합니다.

ALTER APPLICATION PACKAGE my_application_package SET DEFAULT RELEASE DIRECTIVE
  VERSION = v2
  PATCH = 0;
Copy

이 명령은 기본 릴리스 지시문을 버전 v2 와 패치 0 으로 설정합니다.

ALTER APPLICATION PACKAGE my_application_package
  SET RELEASE DIRECTIVE my_custom_release_directive
  ACCOUNTS = ( USER_ACCOUNT.snowflakecomputing.com )
  VERSION = v2
  PATCH = 0;
Copy

이 명령은 my_custom_release_directive 라는 이름의 사용자 지정 릴리스 지시문을 버전 v2 로 설정하고 USER_ACCOUNT.snowflakecomputing.com 계정에 대해 0 패치를 적용합니다.

자세한 내용은 앱의 릴리스 지시문 설정하기 섹션을 참조하십시오.

앱을 수동으로 업그레이드하기

컨슈머는 수동 업그레이드를 통해 자동 업그레이드보다 더 빠르게 설치된 앱을 업그레이드할 수 있습니다. 새 버전 또는 패치가 제공되는 경우 공급자는 컨슈머에게 수동 업그레이드를 요청할 수 있습니다.

컨슈머는 ALTER APPLICATION 을 실행하여 수동 업그레이드를 수행합니다. 이 명령으로 애플리케이션 패키지에 지정된 릴리스 지시문을 사용하여 설치된 앱 버전이나 패치의 업그레이드를 시작할 수 있습니다.

컨슈머가 설치된 Snowflake Native App 을 사용 가능한 최신 버전으로 업그레이드하려면 ALTER APPLICATION 명령의 UPGRADE 절을 사용하여 애플리케이션 오브젝트를 수정하면 됩니다.

ALTER APPLICATION <name> UPGRADE
Copy

리전 간 앱 업그레이드하기

앱을 업그레이드한 후 컨슈머 계정에 설치된 Snowflake Native App 의 변경 사항은 원격 리전에 대해 새로 고침을 수행할 때까지 표시되지 않을 수 있습니다.

데이터 공유 사용 스키마에서 APPLICATION_STATE 뷰 를 사용하여 상태를 모니터링할 수 있습니다. 업그레이드를 수행한 다음 첫 번째 새로 고침 후 1일이 지나도 업그레이드가 완료되지 않으면 새로 고침 프로세스에 문제가 있는 것일 수 있습니다. Snowflake 지원 에 문의하십시오.

공급자가 클라우드 간 자동 복제 를 사용하여 Snowflake Native App 을 게시하는 경우 여러 요소에 따라 자동 업그레이드를 수행하는 데 시간이 다소 걸릴 수 있습니다.

  • 새로 고침 일정의 값.

  • 설치된 앱 인스턴스 수.

  • 앱이 배포되는 리전의 수.

업그레이드에 원격 리전에서 업그레이드해야 하는 긴급한 수정 사항이 포함된 경우 공급자는 목록의 새로 고침 빈도를 더 작은 값으로 줄일 수 있습니다. 계정 수준 새로 고침 빈도 설정에 대한 자세한 내용은 자동 완성 설정 모니터링 및 관리하기 섹션을 참조하십시오.

조심

새로 고침 빈도를 줄이면 복제와 관련된 비용이 증가할 수 있습니다.

상태 업그레이드하기

업그레이드 과정에서 앱은 여러 상태를 거치게 됩니다. 다음 다이어그램은 이전 버전인 v1에서 새 버전인 v2로 업그레이드할 때 가능한 상태를 보여줍니다.

참고

이 다이어그램은 버전에 대한 업그레이드를 보여주지만 패치 업그레이드에도 적용됩니다.

../../_images/na-upgrade-statuses.png

다음 표는 애플리케이션 패키지가 위치한 리전 내의 앱에 대한 업그레이드 프로세스의 각 단계를 보여줍니다.

스테이지

설명

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
Copy

이 뷰에는 업그레이드 상태 및 앱이 배포된 리전을 비롯하여 업그레이드와 관련된 열이 포함되어 있습니다. 업그레이드 상태에 대한 자세한 내용은 상태 업그레이드하기 섹션을 참조하십시오.

업그레이드 문제 해결하기

Snowflake Native App Framework 에서 업그레이드 문제를 해결할 수 있는 몇 가지 방법을 제공합니다.

업그레이드 오류 식별하기

컨슈머는 DESCRIBE APPLICATION 명령을 사용하여 업그레이드 실패와 관련된 오류 메시지를 볼 수 있습니다. 이 명령은 업그레이드 프로세스 중에 발생한 오류에 대한 인사이트를 제공합니다.

공급자는 APPLICATION_STATE 뷰 에서 업그레이드 실패에 대한 오류 메시지를 볼 수 있습니다. 공급자는 이 뷰를 사용하여 특정 애플리케이션의 문제를 진단할 수 있습니다. 자세한 내용은 업그레이드 상태 모니터링하기 섹션을 참조하십시오.

로그 및 이벤트 추적 사용하기

앱에 대해 로그 및 이벤트 추적 이 구성된 경우 공급자는 이벤트 테이블을 쿼리하여 앱 업그레이드 관련 문제를 진단할 수 있습니다.

자세한 내용은 이벤트 테이블에서 로그 및 이벤트 보기 섹션을 참조하십시오.

앱의 서비스 상태 모니터링하기

앱 내에서 컴퓨팅 풀 또는 서비스의 상태에 대한 정보를 보기 위해 컨슈머는 다음 시스템 함수를 사용할 수 있습니다.

컨슈머는 이 정보를 공급자에게 다시 공유할 수 있습니다. 공급자는 이 정보를 반환하도록 이벤트 공유를 구성할 수도 있습니다.

비활성화된 앱

컨슈머 계정에 설치된 앱이 비활성화되면 더 이상 사용할 수 없습니다. 컨슈머 계정에 설치된 앱은 다음과 같은 여러 가지 이유로 비활성화될 수 있습니다.

  • 애플리케이션 패키지 관련 문제

  • 설치된 애플리케이션 관련 문제

  • 컨슈머 계정 관련 문제

공급자와 컨슈머 모두 앱이 오랜 기간 동안 비활성화된 상태로 유지되는 상황을 피해야 합니다. 비활성화된 앱은 사용할 수 없게 될 수 있으며 다시 설치해야 합니다.

비활성화된 앱 업그레이드하기

비활성화된 앱은 일반 업그레이드 프로세스의 일부가 아니므로 업그레이드할 수 없습니다. 비활성화된 앱이 다시 활성화되면 릴리스 지시문의 버전 및 패치로 자동 업그레이드됩니다. 그러나 해당 버전 또는 패치를 더 이상 사용할 수 없는 경우 앱을 업그레이드할 수 없으며 다시 설치해야 합니다.

예를 들어 비활성화된 앱의 버전이 v1 인데 애플리케이션 패키지의 현재 버전과 이전 버전이 v2v3 인 경우 앱을 업그레이드할 수 없으며 사용할 수 없습니다.

앱이 비활성화될 수 있는 이유

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

작업, 서비스 및 컴퓨팅 풀과 같은 앱 리소스를 현재 재개하는 중입니다.