새 주 버전으로 업그레이드

IBM Cloud® Databases for Elasticsearch 는 두 가지 업그레이드 경로를 제공합니다:

  • 새로운 메이저 버전으로 즉시 업그레이드( Elasticsearch 엔터프라이즈 요금제 및 Elasticsearch 플래티넘 요금제에서 지원됨).
  • 백업에서 복원( Elasticsearch 엔터프라이즈 요금제 및 Elasticsearch 플래티넘 요금제에서 지원됨).

현업 주요 버전 업그레이드

현위치 주 버전 업그레이드를 사용하면 배포를 다음 새 주 버전으로 업그레이드할 수 있으므로 새 배포에 백업을 복원할 필요가 없습니다. 이 접근 방식은 배포를 재구성할 필요 없이 동일한 연결 문자열을 유지합니다. 그러나 새 주 버전에 애플리케이션 조정이 필요한 경우 이를 해결해야 합니다.

제자리 주요 버전 업그레이드 기간(백업 포함) 동안 배포는 읽기 작업만 허용하고 배포에 대한 쓰기 작업은 허용하지 않는 읽기 전용 모드로 설정되어 안전한 업그레이드를 보장합니다. 이 관리형 서비스에 대한 현장 업그레이드의 정상적인 과정으로 데이터베이스를 사용할 수 없는 짧은 간격이 예상됩니다. 배포의 주요 버전 업그레이드가 완료되는 즉시 읽기 전용 모드가 제거됩니다.

제자리에서 주요 버전 업그레이드를 수행할 때는 두 가지 옵션이 있습니다:

  • 백업을 통한 현 위치 주요 버전 업그레이드: 이 경로는 실제 업그레이드를 수행하기 전에 백업을 생성하여 추가적인 안전 계층을 제공합니다( Elasticsearch 플래티넘 요금제의 유일한 옵션).

  • 백업 없이 현재 위치에서 주요 버전 업그레이드: 이 옵션은 미리 백업을 만들지 않고 업그레이드를 진행합니다. 제자리 업그레이드에 실패한 경우 최신 백업에서 새 배포로 배포를 복원해야 합니다.

    백업 없는 현 위치 업그레이드는 권장하지 않습니다. 업그레이드가 어느 단계에서든 실패하면 복원할 수 있는 즉각적인 백업이 없으므로 데이터가 손실될 수 있습니다.

시작하기 전에

업그레이드 절차를 시작하기 전에 다음 사항을 고려하세요.

  • 업그레이드하기 전에 배포가 정상 상태여야 합니다.
  • 배포에는 최소 2GB의 디스크 여유 공간이 있어야 합니다.
  • 원하는 버전을 지정하는 대신 다음 주요 버전으로만 업그레이드할 수 있습니다.
  • 각 주요 버전에는 이전 버전과 하위 호환되지 않을 수 있는 일부 기능이 포함되어 있습니다. 데이터베이스 공급업체의 릴리스 노트를 확인하여 애플리케이션에 영향을 미칠 수 있는 변경 사항을 확인하세요.
  • 배포를 이전 버전으로 다운그레이드하는 것은 지원되지 않습니다.
  • 제자리 메이저 버전 업그레이드는 일단 시작하면 취소할 수 없습니다.
  • Elasticsearch 플래티넘 에디션의 경우 업그레이드 후 백업을 수행할 수 있도록 업그레이드 전에 사용 가능한 백업이 하나 이상 있어야 합니다.

UI에서 업그레이드

  1. Databases for Elasticsearch 을 새로 만들어 업그레이드 프로세스를 테스트합니다.
    기존 배포에서 동일한 버전으로 백업을 복원하여 배포를 만듭니다.

  2. 스테이징 애플리케이션을 테스트 배포로 지정합니다.
    테스트 배포를 가리키도록 스테이징 애플리케이션을 업데이트합니다. 테스트 애플리케이션이 준비 배포에 성공적으로 연결할 수 있는지, 애플리케이션이 예상대로 작동하는지 확인합니다. 스테이징 환경의 필요한 성능 및 운영 테스트를 수행합니다.

  3. 개요 페이지에서 주 버전 업그레이드 버튼을 클릭하여 테스트 배포의 주 버전을 업그레이드합니다.
    이렇게 하면 업그레이드 프로세스가 완료되는 동안 데이터베이스가 읽기 전용 모드로 전환됩니다. 업그레이드 만료 설정을 사용하여 유지 관리 기간 내에 업그레이드를 포함할 수 있도록 업그레이드가 완료되는 데 걸리는 시간을 기록해 두세요.

  4. 스테이징 애플리케이션이 새 데이터베이스 버전에서 작동하는지 확인합니다.
    애플리케이션이 작동하는 경우 이 단계에서는 프로덕션 데이터베이스를 업그레이드해도 안전한지 확인합니다.

  5. 프로덕션 데이터베이스 배포를 새 버전으로 업그레이드합니다.
    새 버전의 데이터베이스를 사용하여 애플리케이션이 올바르게 작동하는지 확인한 후에는 관리 콘솔로 돌아가 프로덕션 배포를 업그레이드하는 프로세스를 시작할 수 있습니다. 개요 페이지의 배포 세부 정보 섹션에서 주 버전 업그레이드 버튼을 클릭하고 단계를 따릅니다.

    제자리 업그레이드 프로세스가 시작되면 중지하거나 롤백할 수 없습니다. 따라서 드물게 오류가 발생하면 데이터베이스 배포를 복구할 수 없게 될 수 있습니다. 따라서 새 배포로 복원하는 데 사용할 수 있는 백업을 만드세요. '백업이 포함된 현 위치 주요 버전 업그레이드'를 선택하면 생성된 백업을 새 배포에서 복원하는 데 사용할 수 있습니다.

expiration for starting upgrade 에서 업그레이드 작업이 자동으로 취소되기 전에 시작해야 하는 '타임아웃' 기간을 설정할 수 있습니다. 또한 원하는 시간 내에 업그레이드가 완료될 수 있도록 미리 단계별 업그레이드를 테스트하세요. 예를 들어 1시간 이내에 업그레이드를 완료하고 싶은데 업그레이드를 테스트한 결과 30분이 걸리는 것으로 확인된 경우, 업그레이드 작업은 사용자가 업그레이드를 원하는 것을 확인한 후 30분 이내에 시작해야 합니다. 따라서 만료 시간을 30분으로 설정하여 해당 시간 내에 시작되지 않으면 창이 초과되지 않도록 하세요.

API를 통한 업그레이드

다음 명령을 사용하여 제자리에서 업그레이드하세요:

curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/version -H 'Authorization: Bearer <>' -H 'Content-Type: application/json' -d '{"version": "8.0"}'

expiration for starting upgrade 에서 업그레이드 작업이 자동으로 취소되기 전에 시작해야 하는 '타임아웃' 기간을 설정할 수 있습니다. 또한 원하는 시간 내에 업그레이드가 완료될 수 있도록 미리 단계별 업그레이드를 테스트하세요. 예를 들어 1시간 이내에 업그레이드를 완료하고 싶은데 업그레이드를 테스트한 결과 30분이 걸리는 것으로 확인된 경우, 업그레이드 작업은 사용자가 업그레이드를 원하는 것을 확인한 후 30분 이내에 시작해야 합니다. 따라서 지금부터 30분 후의 타임스탬프로 만료를 설정하여 해당 시간 내에 시작되지 않으면 창이 초과되지 않도록 합니다. 만료는 지금부터 5분(기본값)에서 24시간 사이여야 합니다. 자세한 내용은 Cloud Databases API를 참조하세요.

CLI를 통한 업그레이드

CDB 플러그인 버전에서 사용 가능 >= 0.20.0

배포에 허용된 업그레이드 및 복원 전환 목록을 보려면 다음과 같이 하세요:

ibmcloud cdb deployment-capability-show <NAME|CRN> versions

필수 매개변수를 사용하여 명령을 업그레이드하려면 다음과 같이 하세요:

ibmcloud cdb deployment-version-upgrade <NAME|CRN> <TARGET_VERSION>

명령 매개변수에 대한 자세한 내용을 보려면 여기를 클릭하세요:

ibmcloud cdb deployment-version-upgrade --help

expiration for starting upgrade 에서 업그레이드 작업이 자동으로 취소되기 전에 시작해야 하는 '타임아웃' 기간을 설정할 수 있습니다. 또한 원하는 시간 내에 업그레이드가 완료될 수 있도록 미리 단계별 업그레이드를 테스트하세요. 예를 들어 1시간 이내에 업그레이드를 완료하고 싶은데 업그레이드를 테스트한 결과 30분이 걸리는 것으로 확인된 경우, 업그레이드 작업은 사용자가 업그레이드를 원하는 것을 확인한 후 30분 이내에 시작해야 합니다. 따라서 만료 시간을 30분으로 설정하여 해당 시간 내에 시작되지 않으면 창이 초과되지 않도록 하세요. 만료는 지금부터 5분(기본값)에서 24시간 사이여야 합니다. CLI를 사용하여 만료를 설정하는 방법은 두 가지가 있습니다 --expire-in 또는 --expire-at. 자세한 내용은 해당 명령어의 도움말을 참조하십시오.

Terraform을 통한 업그레이드

Terraform 공급자 버전에서 사용 가능 >= 1.79.2

업그레이드하려면 설정에서 version 값을 추가하거나 변경하면 됩니다. 백업을 건너뛰도록 설정할 수 있는 선택적 bool 플래그( version_upgrade_skip_backup)도 있습니다.

백업을 건너뛰는 것은 권장하지 않습니다. 버전 업그레이드 전에 백업을 건너뛰는 것은 위험하며 데이터 손실이 발생할 수 있습니다. 어느 단계에서든 업그레이드가 실패하면 복원할 수 있는 즉각적인 백업이 없습니다.

업그레이드 중에는 데이터베이스가 읽기 전용 모드로 전환됩니다. 업그레이드하기 전에 테스트하는 것이 좋습니다.

업그레이드에는 기본 시간 초과보다 더 많은 시간이 필요할 수 있습니다. 타임아웃 속성을 사용하여 더 긴 타임아웃 값을 설정할 수 있습니다.

테라폼에는 만료 타임스탬프 대신 타임아웃이 있습니다. 따라서 타임아웃 업데이트 값이 만료로 사용되므로 타임아웃을 늘리세요. 예를 들어, 시간 제한을 20분으로 설정하면 만료가 20분으로 설정되고 해당 시간 내에 업그레이드가 시작되지 않으면 만료되고 업그레이드가 시작되지 않습니다. 최대 만료 시간은 24시간이므로 36시간으로 제한 시간을 설정했더라도 처음 24시간 이내에 시작하지 않으면 업그레이드가 만료됩니다.

업그레이드가 진행 중인 경우 일부 작업이 대기열에 추가될 수 있으며 버전 업그레이드가 완료될 때까지 진행되지 않을 수 있습니다.

문제점 해결

장비상태 진단

서비스 인스턴스의 리소스가 부족한 경우 이러한 상황에서는 안전한 업그레이드를 보장할 수 없으므로 작업이 실패합니다. 모니터링 통합을 사용하여 리소스 소비를 평가할 수 있습니다. 모든 데이터베이스 구성 요소를 업그레이드할 수 없는 경우 업그레이드 작업이 실패합니다.

Elasticsearch 업그레이드를 시작하기 전에 클러스터에 충분한 리소스가 있고 정상적인 상태인지 확인하는 것이 중요합니다. 클러스터 상태 표시등이 녹색인지 확인합니다. 디스크 사용량이 85% 미만인지 확인하여 공간 부족으로 인한 업그레이드 실패를 방지하세요. 클러스터에서 사용 중단을 감지하기 위해 2차 사전 검사를 수행합니다. 사용 중단이 발견되면 업그레이드 프로세스가 중지되며 모든 문제가 해결된 후에만 다시 시도해야 합니다.

이 문제는 유지 관리 또는 데이터베이스 사용으로 인해 발생할 수 있습니다. 상태 검사 실패로 실패한 작업은 나중에 다시 시도할 수 있습니다. 작업이 계속 실패하면 IBM Cloud 지원팀에 지원 티켓을 개설하세요.

백업에서 복원

데이터베이스의 주요 버전이 수명 종료(EOL)에 도달하기 전에 백업에서 새 데이터베이스 인스턴스로 복원하여 사용 가능한 다음 주요 버전으로 업그레이드하세요.

EOL 날짜 이전에 최신 버전에서 실행한 다음 최신 버전으로 마이그레이션할 준비를 하세요. 자세한 내용은 버전 관리 정책을 참조하세요.

버전 롤백은 지원되지 않습니다.

Databases for Elasticsearch 에서 제공되는 ‘ Elasticsearch ’의 최신 버전으로 업그레이드하세요. 카탈로그 페이지, Cloud Databases CLI 플러그인 명령어( ibmcloud cdb deployables-show또는 Cloud Databases API /deployables 엔드포인트에서 확인하세요.

업그레이드는 데이터 백업을 복원하여 새로운 배포 환경에 적용하는 방식으로 진행됩니다. 백업에서 복원하면 다양한 이점이 있습니다:

  • 원래 데이터베이스는 계속 실행 중이며 프로덕션 작업이 중단될 수 있습니다.
  • 사용자는 프로덕션을 중단하고 새 데이터베이스를 테스트하며 애플리케이션 비호환성에 대해 작업할 수 있습니다.
  • 언제든지 전체 프로세스를 다시 실행할 수 있습니다.
  • 새로운 복원은 이전 버전의 데이터베이스의 불필요한 아티팩트가 새 데이터베이스로 전달될 가능성을 줄여줍니다.

업그레이드 경로

주요 버전 업그레이드 경로
현재 버전 주 버전 업그레이드 경로
Elasticsearch 8.10 Elasticsearch 8.19
Elasticsearch 8.12 Elasticsearch 8.19
Elasticsearch 8.15 Elasticsearch 8.19
Elasticsearch 8.19 Elasticsearch 9.1

UI에서 업그레이드

새로운 호스팅 모델(격리 컴퓨팅 및 공유 컴퓨팅)의 경우, CLIAPI를 통해 새로운 메이저 버전으로 업그레이드할 수 있습니다.

배포의 백업 및 복원 페이지( IBM Cloud 콘솔)에서 백업을 복원하여 새 버전으로 업그레이드할 수 있습니다. 백업에서 백업 복원을 클릭하면 새 탭에서 새 배포에 대한 몇 가지 옵션을 변경할 수 있는 페이지가 열립니다. 옵션 중 하나는 데이터베이스 버전으로 업그레이드할 수 있는 버전으로 자동으로 채워집니다. 버전을 선택한 후 ‘백업 복원’을 클릭하여 프로비저닝 및 복원 절차를 시작하십시오.

CLI를 통한 업그레이드

IBM Cloud CLI를 통해 백업에서 업그레이드 및 복원하는 경우에는 리소스 제어기에서 프로비저닝 명령을 사용하십시오.

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_ID> <SERVICE_PLAN_ID> <REGION>

instance_name, service_id, service_plan_idregion 매개변수는 모두 필수입니다. 또한 JSON 오브젝트에 버전 및 백업 ID 매개변수와 함께 -p를 제공합니다. 새 배치는 백업 시 소스 배치와 동일한 디스크 및 메모리로 자동으로 크기가 조정됩니다.

ibmcloud resource service-instance-create example-upgrade databases-for-elasticsearch enterprise us-south \
-p \ '{
  "backup_id": "crn:v1:bluemix:public:databases-for-elasticsearch:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "version":"8.0"
}'

API를 통한 업그레이드

API를 통한 프로비저닝과 마찬가지로, 백업에서 업그레이드를 수행하려면 먼저 리소스 컨트롤러 API를 사용하기 위해 필요한 단계를 완료해야 합니다. 그런 다음, API를 POST 요청으로 전송하십시오. name, target, resource_groupresource_plan_id 매개변수는 모두 필수입니다. 또한 버전과 백업 ID도 함께 제공해 주십시오. 새 배치는 백업 시 소스 배치와 동일한 메모리 및 디스크 할당을 가집니다.

curl -X POST   https://resource-controller.cloud.ibm.com/v2/resource_instances   -H 'Authorization: Bearer <>'   -H 'Content-Type: application/json'     -d '{
    "name": "my-instance",
    "target": "us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-elasticsearch-enterprise",
    "backup_id": "crn:v1:bluemix:public:databases-for-elasticsearch:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
    "version":"8.0"
  }'

Terraform을 통한 업그레이드

Terraform을 사용하여 이전 버전에서 새 버전으로 백업으로 복원할 수 있습니다.

  1. backup_id 을 설정합니다. 자세한 정보는 backup_id의 내용을 참조하십시오.
  2. 버전 속성에서 version 을 설정합니다. 자세한 정보는 version의 내용을 참조하십시오.

코드는 다음과 같습니다:

resource "ibm_database" "<your-instance>" {
  name                                 = "<your_database_name>"
  service                              = "databases-for-elasticsearch"
  plan                                 = "enterprise"
  location                             = "<region>"
  version                              = "<version>"
  backup_id                            = "<backup_id>"
}

자세한 내용은 Cloud Databases 테라폼 레지스트리를 참조하세요. 또는 Terraform IBM 모듈(TIM) 을 사용하여 백업 인스턴스에서 새 데이터베이스 인스턴스를 만들 수 있습니다. 자세한 내용은 백업에서 복원 예시를 참조하세요.