AKS의 백업 및 복구
백업 및 복구는 조직의 운영 및 재해 복구 전략에서 필수적인 부분입니다. 백업 및 복구 계획은 일반적으로 데이터 및 애플리케이션의 정기적인 복사본을 별도의 보조 디바이스 또는 서비스로 가져오기를 기반으로 하는 다양한 기술 및 사례 집합에 의존합니다. 시스템 오류, 데이터 손실 또는 재해가 발생하면 이러한 복사본을 사용하여 데이터 및 애플리케이션을 복구하고 해당 복사본이 의존하는 비즈니스 작업을 복구합니다.
AKS(Azure Kubernetes Service) 2일차 작업 가이드의 이 섹션에서는 AKS에 대한 백업 및 복구 사례를 설명합니다.
AKS 클러스터 백업이 중요한 이유
클라우드 네이티브 배포 및 Kubernetes 채택이 계속 증가함에 따라 조직은 포괄적인 백업 및 복구 전략에 Kubernetes 클러스터 및 워크로드를 포함해야 합니다.
AKS에서 백업 및 복구를 구현하면 다음을 수행할 수 있습니다.
- 되돌릴 수 없는 시스템 오류, 데이터 손실 또는 재해가 발생하는 경우 사용할 AKS 클러스터에서 구성 및 데이터의 보조 복사본을 만듭니다.
- 한 AKS 클러스터에서 다른 AKS 클러스터로 Kubernetes 리소스 및 애플리케이션 데이터를 복사합니다.
- AKS 클러스터를 복제하여 다른 환경을 만듭니다.
- AKS 버전 업그레이드와 같은 유지 관리 작업 전에 워크로드 스냅샷을 만듭니다.
- 데이터 보호 요구 사항을 준수하여 규정 또는 조직의 규정 준수를 유지합니다.
- 최근 배포 또는 변경에 문제가 발견되면 이전 배포로 신속하게 롤백합니다.
백업은 문제가 발생할 경우 워크로드를 복원하는 데 도움이 되지만 HA(고가용성)를 제공하지는 않습니다.
AKS의 지역 내 고가용성 및 지역 간 재해 복구와 관련하여 다음과 같은 몇 가지 다른 옵션을 고려할 수 있습니다.
- 가용성 영역: AKS는 Azure 지역 내에서 물리적으로 분리된 데이터 센터인 가용성 영역의 사용을 지원합니다. 여러 가용성 영역에 AKS 클러스터를 배포하면 지역 내에서 더 높은 복원력과 내결함성을 보장할 수 있습니다. 이렇게 하면 한 영역에서 중단이 발생하는 경우에도 애플리케이션이 계속 작동할 수 있습니다.
- 영구 볼륨에 대한 중복 옵션: AKS는 영구 볼륨에 대한 다양한 중복 옵션을 제공합니다. Kubernetes용 Azure Disk CSI 드라이버는 지역 내 복원력을 높이기 위해 LRS(로컬 중복 스토리지) 또는 ZRS(영역 중복 스토리지)를 사용하는 기본 제공 스토리지 클래스 및 사용자 지정 스토리지 클래스를 지원합니다. 자세한 내용은 드라이버 매개 변수를 참조 하세요.
- Azure Kubernetes Fleet Manager: Azure Kubernetes Fleet Manager를 사용하면 AKS 클러스터에 대한 다중 클러스터 및 대규모 지역 내 및 지역 간 시나리오를 사용할 수 있습니다.
- ACR(Azure Container Registry)에 대한 지역 중복 옵션: ACR(Azure Container Registry)은 지역 복제 기능을 제공합니다. 지역 중복성을 사용하면 컨테이너 이미지가 여러 Azure 지역에 복제됩니다. 따라서 특정 지역에서 중단이 발생하더라도 이미지를 사용할 수 있으므로 컨테이너 레지스트리에 더 높은 가용성을 제공합니다.
또한 IaC(Infrastructure as Code), Azure Pipelines, GitOps 및 Flux와 같은 방법론을 사용하여 재해가 발생할 경우 워크로드를 신속하게 다시 배포할 수 있습니다.
이러한 방법론에 대해 자세히 알아보려면 다음 문서를 검토할 수 있습니다.
- Azure Pipelines를 사용하여 Azure Kubernetes Service에 빌드 및 배포합니다
- 자습서: Flux v2에서 GitOps를 사용하여 애플리케이션 배포
- ARM 템플릿의 구조 및 구문 이해
- Bicep이란?
- Azure의 Terraform 개요 - Terraform이란?
백업할 항목
일반적으로 AKS 및 Kubernetes 클러스터에 대한 백업 및 복구를 고려할 때 성공적인 복원을 위해 백업에 포함해야 하는 구성 요소를 정확히 식별하는 것이 중요합니다. 주로 이러한 중요한 구성 요소는 다음으로 구성됩니다.
클러스터 상태: 클러스터 내의 모든 Kubernetes 개체의 현재 및 원하는 구성 또는 상태를 나타냅니다. 배포, Pod, 서비스 등과 같은 다양한 개체를 포함합니다. 클러스터 상태는 AKS와 같은 관리형 클러스터의 경우처럼 API 서버에서만 액세스할 수 있는 고가용성 etcd 키-값 쌍 데이터베이스에 저장됩니다. 클러스터 상태는 선언적 방식으로 정의되며 YAML 매니페스트와 같이 클러스터에 적용된 모든 Kubernetes 구성 파일의 결과입니다.
애플리케이션 데이터: 클러스터 내에서 실행되는 컨테이너화된 워크로드에서 생성, 관리 또는 액세스하는 데이터를 나타냅니다. Pod 또는 컨테이너에서 데이터 지속성이 다시 시작되도록 하기 위해 Kubernetes는 애플리케이션 데이터를 영구 볼륨에 저장하는 것이 좋습니다. 이러한 볼륨은 정적 또는 동적으로 만들 수 있으며 다양한 유형의 영구 스토리지를 통해 지원될 수 있으므로 데이터 스토리지 및 관리 요구 사항에 대한 유연성과 확장성을 제공합니다.
클러스터의 전체 백업은 클러스터 상태와 애플리케이션 데이터를 모두 단일 단위로 포함해야 하지만 각 백업의 최적 범위를 결정하는 것은 다양한 요인에 따라 달라집니다. 예를 들어 CI/CD(연속 통합 및 지속적인 업데이트) 파이프라인과 같은 대체 원본이 있으면 클러스터 상태를 보다 쉽게 복구할 수 있습니다. 또한 애플리케이션 데이터의 크기는 스토리지 비용 및 백업 및 복구 작업에 필요한 시간에 중요한 역할을 합니다.
이상적인 백업 및 복구 전략은 특정 애플리케이션 및 환경에 따라 크게 달라집니다. 따라서 백업의 범위는 사례별로 평가되어야 합니다. 또한 클러스터 상태의 중요성 및 애플리케이션 데이터의 볼륨과 같은 요소를 고려해야 합니다.
일반적으로 서버 기반 시스템의 기존 백업 및 복구 계획에 포함된 개별 클러스터 노드(VM) 또는 로컬 파일 시스템 및 볼륨과 같은 다른 구성 요소를 대상으로 지정하는 것은 Kubernetes와 관련이 없습니다. 관련 상태 및 데이터는 기존 시스템과 동일한 방식으로 개별 노드 또는 로컬 파일 시스템에 유지되지 않습니다.
AKS에 대한 백업 및 복구 옵션 소개
기존 모놀리식 애플리케이션과 Kubernetes 클러스터에서 실행되는 워크로드 간에는 주목할 만한 차이점이 있으며 백업 및 복구에 몇 가지 문제가 있습니다. Kubernetes 워크로드는 여러 기본 리소스 및 서비스에서 지원하는 외부 영구 볼륨에 걸쳐 데이터가 유지되는 매우 동적이며 분산되도록 의도적으로 설계되었습니다.
Kubernetes 환경을 효과적으로 지원하려면 백업 및 복구 솔루션에 Kubernetes 및 애플리케이션 인식이 있어야 합니다. 레거시 또는 더 일반적인 백업 및 복구 도구에서 찾을 수 없는 자동화, 안정성 및 통합 수준을 제공해야 합니다.
다양한 Kubernetes 네이티브 백업 및 복구 솔루션을 사용할 수 있으며, 오픈 소스에서 닫힌 원본에 이르기까지 다양한 옵션을 사용할 수 있으며 다양한 라이선스 모델을 제공합니다.
다음은 AKS에서 사용할 수 있는 백업 및 복구 솔루션의 몇 가지 예입니다. 한 가지 주목할 만한 예는 AKS(Azure Kubernetes Service) Backup이라는 Microsoft의 완전 관리형 자사 솔루션으로, AKS 클러스터 및 해당 워크로드의 백업 및 복구를 위해 설계된 Azure 통합 서비스를 제공합니다. 이 목록은 완전하지 않으며 몇 가지 사용 가능한 옵션만 제공합니다.
AKS 백업
AKS Backup 은 AKS 클러스터를 백업하고 복원하기 위한 Azure의 제품입니다. AKS 클러스터에서 실행되는 컨테이너화된 애플리케이션 및 데이터를 백업하고 복원할 수 있는 간단한 Azure 네이티브 프로세스입니다.
AKS Backup을 사용하면 Azure 디스크 기반 영구 볼륨에 저장된 전체 또는 세분화된 클러스터 상태 및 애플리케이션 데이터의 주문형 또는 예약된 백업을 허용합니다. Azure Backup Center와 통합되어 대규모 백업을 제어, 모니터링, 운영 및 분석하는 데 도움이 되는 단일 영역을 Azure Portal에 제공합니다.
AKS Backup 작동 방식 및 해당 기능에 대한 자세한 설명은 Azure Backup을 사용하는 AKS Backup에 대해 참조하세요.
Kasten
Kasten 은 Kubernetes 애플리케이션의 백업 및 복구를 위해 사용하기 쉽고 안전한 시스템을 운영 팀에 제공하는 상용 제품입니다. 기능이 제한되고 지원되지 않는 무료 버전과 더 많은 기능과 고객 지원을 포함하는 유료 버전 모두에서 사용할 수 있습니다.
Kasten이 클러스터 내에서 Kubernetes 연산자로 배포되면 포괄적인 백업 솔루션을 제공합니다. 중앙 집중식 제어 및 가시성을 위한 관리 대시보드를 제공합니다. Kasten을 사용하면 사용자는 증분 및 애플리케이션 인식 백업을 통해 효율적인 데이터 보호를 사용할 수 있습니다. 또한 Kasten은 재해 복구 기능을 제공합니다. 이러한 기능에는 자동화된 장애 조치(failover) 및 장애 복구(failback)와 데이터 마이그레이션 및 보안 보장 기능이 포함됩니다.
Kasten의 기능 집합에 대한 자세한 내용은 Kasten K10 설명서를 참조 하세요. AKS 클러스터에서 Kasten을 효과적으로 사용하는 방법을 알아보려면 Azure에 K10 설치를 참조하세요.
벨레로 (Velero)
Velero는 Kubernetes에 널리 사용되는 오픈 소스 백업 및 복구 도구입니다. 프로젝트 기여자 커뮤니티에서 제공하는 지원 및 유지 관리와 함께 모든 사용자가 사용할 수 있는 무료 및 무제한 버전을 제공합니다.
Velero는 클러스터에서 배포로 실행되며 애플리케이션 백업, 복구 및 데이터 마이그레이션을 위한 포괄적인 기능 집합을 제공합니다. 대시보드는 기본 제공으로 사용할 수 없지만 외부 통합을 통해 추가할 수 있습니다.
기능 집합에 대한 자세한 내용과 AKS 클러스터와 통합하는 방법에 대한 자세한 내용은 Velero 설명서를 참조 하세요.
AKS 백업 설치 및 구성
AKS Backup을 설치하고 구성하려면 다음 단계를 수행합니다.
- AKS 클러스터에서 AKS Backup을 사용하기 위한 필수 구성 요소에 대한 자세한 설명은 Azure Backup을 사용하는 AKS Backup의 필수 구성 요소를 참조하세요.
- AKS Backup의 지역 가용성, 지원되는 시나리오 및 제한 사항에 대한 자세한 설명은 AKS Backup 지원 매트릭스 를 검토합니다.
- 구독에 필요한 리소스 공급자를 등록하고 이러한 등록을 관리하는 방법에 대한 지침은 Azure Backup을 사용하여 AKS 백업 관리를 참조하세요.
- AKS Backup을 사용하여 AKS 클러스터에 대한 백업 및 복구를 설정하는 방법에 대한 자세한 지침은 Azure Backup을 사용하여 AKS 백업을 검토합니다. 지침에는 Backup 자격 증명 모음, 백업 정책 및 Backup 인스턴스와 같은 필요한 모든 Azure 리소스의 생성 및 구성이 포함됩니다.
- 기존 Backup 인스턴스에서 AKS 클러스터의 전체 또는 항목 수준 복원을 수행하는 방법에 대한 자세한 지침은 Azure Backup을 사용하여 AKS 복원을 참조하세요.
AKS의 백업 빈도 및 보존: 백업 정책 정의
백업 빈도 및 보존 기간을 결정하는 것은 백업 및 복구 솔루션의 기본적인 측면입니다. 이러한 매개 변수는 백업이 수행되는 빈도와 삭제 전에 보존되는 기간을 정의합니다. AKS 클러스터 및 해당 워크로드에 대한 백업 빈도 및 보존 기간 선택은 RPO(복구 지점 목표) 및 RTO(복구 시간 목표)의 미리 정의된 목표와 일치해야 합니다.
Kubernetes 시나리오에서 RPO는 허용 가능한 최대 클러스터 상태 또는 데이터 손실을 나타냅니다. RTO는 클러스터 상태 또는 데이터 손실과 클러스터 작업 재개 사이의 최대 허용 시간을 지정합니다.
선택한 백업 빈도 및 보존 기간은 바람직한 RPO/RTO 대상, 스토리지 비용 및 백업 관리 오버헤드 간의 절상입니다. 즉, 모든 AKS 클러스터 및 워크로드에 대해 하나의 크기에 적합한 구성이 없으며, 신중한 계획 및 고려 사항에 따라 비즈니스 요구 사항을 충족하기 위해 각 클러스터 또는 워크로드에 대한 최적의 구성을 사례별로 정의해야 합니다. AKS 클러스터의 백업 빈도 및 보존 기간을 정의할 때 고려해야 할 관련 요소는 다음과 같습니다.
- 중요도: 비즈니스 연속성 측면에서 클러스터 및 해당 워크로드 애플리케이션 데이터와 관련된 중요도 수준입니다.
- 액세스 패턴 및 변경률: 지정된 기간 동안 추가, 수정, 삭제된 클러스터 상태 및 데이터의 양입니다.
- 데이터 볼륨: 스토리지 비용에 영향을 주는 데이터의 양과 백업 및 복구 작업을 완료하는 데 필요한 시간입니다.
- 규정 준수: 내부 규정 준수 규칙 및 업계 규정을 기반으로 하는 데이터 보존 및 데이터 주권에 대한 요구 사항입니다.
AKS Backup 서비스에서 백업 빈도 및 보존 기간은 클러스터 상태와 영구 볼륨의 애플리케이션 데이터 모두에 적용되는 백업 정책 리소스로 저장됩니다.
AKS Backup의 백업 정책은 보존 기간이 최대 360일인 매일 및 시간별 백업을 지원하지만 여러 정책을 정의하고 동일한 클러스터에 적용할 수 있습니다.
AKS Backup에서 백업 정책을 구성하는 방법에 대한 자세한 내용은 백업 정책 만들기를 참조하세요.
기타 백업 고려 사항
백업 및 복구 솔루션이 조직의 요구 사항 및 정책을 충족하는지 확인하려면 다음 사항을 고려합니다.
- RPO(복구 지점 목표) 및 RTO(복구 시간 목표) : 백업 및 복구 작업에 대해 충족해야 하는 특정 RPO 및 RTO 대상이 있는지 확인합니다.
- PV(영구 볼륨): 영구 볼륨을 사용하고 있는지 확인하고 AKS Backup 솔루션이 PV 유형을 지원하는지 확인합니다. 호환성 세부 정보는 AKS Backup 지원 매트릭스를 참조하세요.
- 백업 범위: 특정 네임스페이스, 리소스 유형 또는 클러스터 내의 특정 데이터와 같이 백업해야 하는 항목을 정의합니다. 자세한 내용은 백업 작업 구성을 참조 하세요.
- 백업 빈도 및 보존: 백업을 수행해야 하는 빈도와 백업을 보존해야 하는 기간을 결정합니다. 이 설정은 백업 정책을 사용하여 구성할 수 있습니다. 자세한 내용은 백업 정책 정의를 참조하세요.
- 클러스터 선택: 요구 사항에 따라 모든 클러스터 또는 특정 프로덕션 클러스터만 백업해야 하는지 결정합니다.
- 테스트 복원 절차: 정기적인 테스트 복원을 수행하여 백업 전략의 안정성과 유용성의 유효성을 검사합니다. 이 단계는 백업 및 복구 솔루션의 효율성을 보장하는 데 중요합니다. 자세한 내용은 AKS 클러스터 복원을 참조 하세요.
- 지원되는 시나리오: AKS Backup 솔루션이 특정 시나리오를 지원하는지 확인합니다. 호환성 정보는 AKS Backup 지원 매트릭스를 참조하세요.
- 예산 할당: 백업 및 복원 작업에 대한 특정 예산 할당이 있는지 고려합니다. AKS Backup 솔루션에서 제공하는 가격 책정 정보를 검토하여 예산 요구 사항에 맞춥니다.
이러한 다른 고려 사항을 고려하여 AKS에 대한 백업 및 복구 솔루션이 조직의 요구 사항과 기본 설정을 효율적이고 효과적으로 충족하는지 확인할 수 있습니다.
AKS 백업 위치 및 스토리지
AKS Backup은 백업 자격 증명 모음 및 스토리지 계정을 사용하여 백업 중에 클러스터에서 캡처된 다양한 유형의 데이터를 저장합니다.
디스크 기반 영구 볼륨의 경우 AKS Backup은 Azure 구독 내에 저장된 기본 Azure Disk의 증분 스냅샷을 사용합니다.
Backup 자격 증명 모음은 AKS 클러스터와 같이 Azure Backup에서 지원하는 워크로드에 대한 백업 데이터를 저장하는 데 사용되는 Azure 내의 보안 스토리지 엔터티입니다. Backup 자격 증명 모음 자체에는 백업 정책과 백업 작업에서 만든 백업 및 복구 지점이 모두 포함됩니다.
Azure는 Backup Vault에 대한 스토리지를 자동으로 관리합니다. 백업 자격 증명 모음을 만들 때 구성할 수 있는 그 안에 저장된 데이터에 대한 몇 가지 중복 옵션 중에서 선택할 수 있습니다.
스토리지 계정은 Azure 내의 데이터 개체에 대한 스토리지 영역이며 매우 구성 가능합니다. 데이터 내구성을 보장하기 위해 여러 지역 내 및 지역 간 중복 옵션을 제공합니다. AKS Backup은 지정된 스토리지 계정 내의 Blob 컨테이너를 사용하여 AKS 클러스터의 일부 구성 요소에 대한 백업을 수행합니다.
증분 스냅샷은 마지막 스냅샷 이후의 변경 내용으로만 구성된 관리 디스크에 대한 지정 시간 백업입니다. 첫 번째 증분 스냅샷은 디스크의 전체 복사본입니다. 후속 증분 스냅샷은 마지막 스냅샷 이후 디스크에 대한 델타 변경 내용만 캡처합니다.
AKS Backup을 사용하여 AKS 클러스터 간에 워크로드 마이그레이션
AKS Backup을 특정 클러스터에 대한 백업 및 복구 메커니즘으로 사용할 수 있습니다. 또한 AKS Backup은 한 클러스터에서 백업을 수행하고 다음과 같이 다른 클러스터로 복원할 수 있도록 하여 마이그레이션 시나리오를 지원합니다.
- 개발 클러스터를 스테이징 클러스터로 복원
- 여러 클러스터에서 콘텐츠 복제
시나리오가 지원되는지 확인하려면 다음 설명서를 참조하세요.
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
보안 주체 작성자:
- Adam Sharif | 기술 관리자
- Joao Tavares | 선임 에스컬레이션 엔지니어
기타 기여자:
- Paolo Salvatori | 수석 고객 엔지니어, FastTrack for Azure
- 소니아 커프 | 주요 Cloud Advocate 잠재 고객
다음 단계
AKS 백업에 대해 자세히 알아보기
- AKS Backup 개요
- AKS Backup 지원 매트릭스
- AKS Backup 필수 구성 요소
- AKS 백업 구성
- Backup 자격 증명 모음 만들기
- 백업 정책 만들기
- 백업 구성
- AKS 클러스터 복원
- AKS에 대한 비즈니스 연속성 및 재해 복구 모범 사례
- 안정성 패턴 - 클라우드 디자인 패턴