Azure Container Storage란?
Azure Container Storage는 기본적으로 컨테이너용으로 구축된 클라우드 기반 볼륨 관리, 배포 및 오케스트레이션 서비스입니다. Kubernetes와 통합되어 Kubernetes 클러스터에서 실행되는 상태 저장 애플리케이션의 데이터를 저장하기 위해 영구 볼륨을 동적으로 자동으로 프로비저닝할 수 있습니다.
Important
모든 Azure 지역에서 Azure 컨테이너 스토리지를 사용할 수 있는 것은 아닙니다. 국가별 가용성을 참조하세요. 버전 1.1.0부터는 이제 Azure 컨테이너 스토리지가 GA(일반 공급)로 제공됩니다. GA 버전은 프로덕션 워크로드에는 권장되지 않습니다. 이전에 Azure 컨테이너 스토리지 미리 보기를 설치했으며 자동 업그레이드를 사용하도록 설정하지 않은 경우 GA 버전으로 업데이트해야 합니다.
Azure Container Storage 사용을 시작하려면 Azure Kubernetes Service를 사용하여 Azure Container Storage 사용을 참조하거나 비디오를 시청하세요.
이 비디오에서는 상태 저장 애플리케이션에 대한 종단 간 스토리지 관리 및 오케스트레이션 서비스인 Azure Container Storage를 소개합니다. AKS(Azure Kubernetes Service)에서 상태 저장 워크로드의 성능을 최적화하여 비용 효율적인 컨테이너 네이티브 환경을 제공하면서 스토리지 서비스 간에 효과적으로 스케일링하는 방법을 알아봅니다.
지원되는 스토리지 형식
Azure Container Storage는 실제 데이터 스토리지에 대한 기존 Azure Storage 제품을 활용하고 컨테이너용으로 빌드된 볼륨 오케스트레이션 및 관리 솔루션을 제공합니다. 지원되는 스토리지 지원 옵션 중 하나를 선택하여 영구 볼륨에 대한 스토리지 풀을 만들 수 있습니다.
Azure Container Storage는 Linux 기반 AKS(Azure Kubernetes Service) 클러스터에 대한 ReadWriteOnce 액세스 모드를 사용하여 영구 볼륨 지원을 제공합니다. 지원되는 스토리지 지원 옵션에는 Azure 디스크, 사용 후 삭제 디스크(로컬 NVMe 또는 임시 SSD), Azure Elastic SAN와 같은 블록 스토리지 제품만 포함됩니다(미리보기). 다음 표에는 지원되는 스토리지 유형, 권장 워크로드 및 프로비전 모델이 요약되어 있습니다.
스토리지 유형 | 설명 | 작업 | 제품 | 프로비전 모델 |
---|---|---|---|---|
Azure Elastic SAN(미리 보기) | 주문형, 완전 관리형 리소스 프로비전 | 범용 데이터베이스, 스트리밍 및 메시징 서비스, CD/CI 환경 및 기타 계층 1/계층 2 워크로드 | Azure Elastic SAN | 생성된 볼륨 및 볼륨 스냅샷에 따라 요청 시 프로비전됩니다. 여러 클러스터가 동시에 단일 SAN에 액세스할 수 있지만 영구 볼륨은 한 번에 한 소비자에만 연결할 수 있습니다. |
Azure 디스크 | 스토리지 SKU 및 구성의 세분화된 제어 | Azure 디스크는 MySQL, MongoDB 및 PostgreSQL과 같은 계층 1 및 범용 데이터베이스에 적합합니다. | 프리미엄 SSD, 프리미엄 SSD v2, 표준 SSD, Ultra Disk | 대상 컨테이너 스토리지 풀 크기 및 최대 볼륨 크기에 따라 프로비전됩니다. |
임시 디스크 | AKS 노드에서 로컬 스토리지 리소스 활용(NVMe 또는 임시 SSD) | 사용 후 삭제 디스크는 대기 시간이 매우 중요하므로(sub-ms 대기 시간이 낮음) 데이터 내구성 요구 사항이 없거나 Cassandra와 같은 기본 제공 데이터 복제 지원을 사용하는 애플리케이션에 가장 적합합니다. | NVMe는 스토리지 최적화 VM SKU 또는 GPU 가속 VM SKU와 같은 일부 Azure VM SKU에서 사용할 수 있습니다. | AKS 클러스터를 호스트하는 VM의 일부로 배포됩니다. AKS는 AKS 노드에서 사용 가능한 임시 스토리지를 검색하고 볼륨 배포를 위해 획득합니다. |
다양한 스토리지 유형에 대한 기능 지원
기능 지원은 선택한 백업 스토리지 옵션에 따라 달라집니다. 다음 표에서는 Azure Container Storage의 주요 기능을 나열하고 이를 지원하는 스토리지 옵션을 나타냅니다.
기능 | 로컬 NVMe | 로컬 SSD | Azure 디스크 | Azure Elastic SAN(미리 보기) |
---|---|---|---|---|
스토리지 풀 확장/크기 조정 | 지원됨 | 지원됨 | 지원됨 | 지원되지 않음 |
복제 | 지원 여부 | 지원되지 않음 | 기본적으로 지원됨 | 프리뷰 |
리소스 사용량 | 지원됨 | 지원됨 | 지원됨 | 프리뷰 |
SSE/CMK | 지원되지 않음 | 지원되지 않음 | 지원됨 | 프리뷰 |
ZRS 옵션 노출 | 해당 없음 | 해당 없음 | 지원 여부 | 프리뷰 |
영구적 볼륨 | 지원됨1 | 지원됨1 | 지원됨 | 프리뷰 |
임시 볼륨 | 지원됨 | 지원됨 | 지원됨 | 프리뷰 |
스냅샷 | 지원됨 | 지원됨 | 지원됨 | 지원되지 않음 |
1 로컬 NVMe 및 로컬 SSD의 경우 Azure 컨테이너 스토리지는 기본적으로 데이터가 영구적이지 않은 제네릭 임시 볼륨을 사용합니다. 그러나 임시 디스크 스토리지 풀에서 영구 볼륨 만들기를 지원하도록 Azure 컨테이너 스토리지 설치를 업데이트할 수 있습니다.
국가별 가용성
Azure Container Storage는 Azure 지역의 하위 집합에만 사용할 수 있습니다.
- (아프리카) 남아프리카 북부
- (아시아 태평양) 오스트레일리아 동부
- (아시아 태평양) 동아시아
- (아시아 태평양) 일본 동부
- (아시아 태평양) 한국 중부
- (아시아 태평양) 동남 아시아
- (아시아 태평양) 인도 중부
- (유럽) 프랑스 중부
- (유럽) 독일 중서부
- (유럽) 북유럽
- (유럽) 서유럽
- (유럽) 영국 남부
- (유럽) 스웨덴 중부
- (유럽) 스위스 북부
- (중동) UAE 북부
- (북아메리카) 미국 동부
- (북아메리카) 미국 동부 2
- (북아메리카) 미국 서부
- (북아메리카) 미국 서부 2
- (북아메리카) 미국 서부 3
- (북아메리카) 미국 중부
- (북아메리카) 미국 중북부
- (북아메리카) 미국 중남부
- (북아메리카) 미국 중서부
- (북아메리카) 캐나다 중부
- (북아메리카) 캐나다 동부
- (남미) 브라질 남부
Azure Container Storage의 새로운 기능
최신 업데이트는 상태 저장 컨테이너의 복원력과 성능을 향상시킵니다. 이제 로컬 NVMe 스토리지 풀에 대한 다중 영역 스토리지 풀 및 볼륨 복제를 제공하여 단일 노드 실패 시 가용성을 보장합니다. 스냅샷 지원은 백업 및 재해 복구를 위한 모든 스토리지 옵션에서 사용할 수 있습니다. 또한 임시 디스크 포트폴리오가 이제 임시 SSD 지원을 포함하여 직접 연결된 로컬 스토리지를 활용하는 사용 사례에 대한 비용 효율적인 솔루션을 제공합니다.
- 복제 지원을 사용하여 로컬 NVMe 스토리지에 호스트되는 영구 볼륨의 복원력을 향상시킵니다.
- AKS(Azure Kubernetes Service) 클러스터를 다시 시작한 후 영구 볼륨 복구가 향상되었습니다.
- 새 성능 계층 옵션을 사용하여 로컬 NVMe 스토리지의 성능을 사용자 지정합니다.
이러한 기능에 대한 자세한 정보를 원할 경우 containerstoragepm@microsoft.com으로 Azure Container Storage 팀에 메일을 보내주세요.
Azure Container Storage가 유용한 이유
지금까지는 컨테이너용 클라우드 스토리지를 제공하려면 개별 CSI(Container Storage Interface) 드라이버를 사용하여 IaaS 중심 워크로드용 스토리지 서비스를 사용하고 컨테이너에서 작동하도록 해야 했습니다. CSI 드라이버는 특정 시나리오에서 유용하지만 이러한 드라이버를 사용하면 운영 오버헤드가 발생할 수 있으며 애플리케이션 가용성, 확장성, 성능, 유용성 및 비용에 대한 문제의 위험을 증가시킬 수 있습니다.
이름에도 불구하고 Azure Container Storage는 CSI 드라이버를 사용하지 않습니다. 대신 Kubernetes에 컨테이너 스토리지 기능을 제공하는 오픈 소스 솔루션인 OpenEBS에서 파생됩니다. Kubernetes 환경에서 마이크로 서비스 기반 스토리지 컨트롤러를 통해 관리형 볼륨 오케스트레이션 솔루션을 제공함으로써 Azure Container Storage는 진정한 컨테이너 네이티브 스토리지를 사용할 수 있게 해줍니다.
Azure Container Storage를 사용하여 다음을 수행할 수 있습니다.
VM-컨테이너 이니셔티브 가속화: Azure Container Storage는 이전에는 VM에서만 사용할 수 있었던 Azure 블록 스토리지 제품의 전체 범위를 보여 주고 컨테이너에 사용할 수 있게 합니다. 여기에는 Cassandra와 같은 워크로드에 대해 매우 짧은 대기 시간을 제공하는 사용 후 삭제 디스크와 네이티브 iSCSI 및 공유 프로비전된 대상을 제공하는 Azure Elastic SAN(미리 보기)이 포함됩니다.
Kubernetes를 사용하여 볼륨 관리 간소화: Azure Container Storage는 Kubernetes 컨트롤 플레인을 통해 볼륨 오케스트레이션을 제공하여 컨트롤 플레인이 달라질 때마다 앞뒤로 이동할 필요 없이 Kubernetes 내에서 볼륨을 쉽게 배포하고 관리할 수 있습니다.
TCO(총 소유 비용 절감): Pod 또는 노드당 지원되는 영구 볼륨의 규모를 늘려 비용 효율성을 개선합니다. 스토리지 리소스를 동적으로 공유하여 프로비전에 필요한 스토리지 리소스를 줄입니다. 스토리지 풀 자체에 대한 스케일업 지원은 지원되지 않습니다.
주요 혜택
상태 저장 Pod의 신속한 스케일 아웃: Azure Container Storage는 네트워크 블록 스토리지 프로토콜(NVMe-oF 또는 iSCSI)를 통해 영구 볼륨을 탑재하여 영구 볼륨의 빠른 연결 및 분리를 제공합니다. 초기화 중 또는 프로덕션 환경에서 애플리케이션이 부족해지거나 중단되지 않도록 하면서 필요에 따라 작은 리소스를 시작하고 배포할 수 있습니다. 클러스터 전체에서 Pod가 다시 생성되어 애플리케이션 복원력이 향상되면서 영구 볼륨의 신속한 이동이 요구됩니다. Azure Container Storage는 원격 네트워크 프로토콜을 활용하여 Pod 수명 주기와 긴밀하게 결합되면서 AKS에서 복원력이 뛰어난 대규모 상태 저장 애플리케이션을 지원합니다.
상태 저장 워크로드의 성능 향상: Azure Container Storage는 뛰어난 읽기 성능을 제공하고 TCP를 통해 NVMe-oF를 사용하여 거의 디스크에 가까운 쓰기 성능을 제공합니다. 이를 통해 고객은 계층 1 I/O 집약적, 범용, 처리량 중요성 및 개발/테스트를 비롯한 다양한 컨테이너 워크로드에 대한 성능 요구 사항을 비용 효율적으로 충족할 수 있습니다. 영구 볼륨의 연결/분리 시간을 가속화하고 Pod 장애 조치 시간을 최소화합니다.
Kubernetes 네이티브 볼륨 오케스트레이션: 스토리지 풀 및 영구 볼륨을 만들고, 스냅샷을 캡처하고, 다양한 컨트롤 플레인 작업을 위해 도구 집합 간을 전환하지 않으면서
kubectl
명령을 사용하여 볼륨의 전체 수명 주기를 관리합니다.
용어 설명
Azure Container Storage 및 Kubernetes와 관련된 몇 가지 주요 용어를 이해하는 것이 유용합니다.
컨테이너화
운영 체제 및 필수 종속성만으로 애플리케이션 코드를 패킹하여 단일 실행 파일을 만드는 것입니다.
Kubernetes
Kubernetes는 컨테이너화된 애플리케이션의 배포, 크기 조정, 관리를 자동화하기 위한 오픈 소스 시스템입니다.
Cluster
Kubernetes 클러스터는 컨테이너화된 애플리케이션을 실행하는 컴퓨팅 노드(VM) 집합입니다. 각 노드는 컨트롤 플레인에서 관리되며 Pod를 실행하는 데 필요한 서비스를 포함합니다.
Pod
Pod는 스토리지 및 네트워크 리소스를 공유하는 하나 이상의 컨테이너로 이루어진 그룹이자 컨테이너를 실행하는 방법에 대한 사양입니다. Pod는 Kubernetes 클러스터에서 배포 가능한 가장 작은 단위입니다.
AKS(Azure Kubernetes Service)
Azure Kubernetes Service는 운영 오버헤드를 Azure로 오프로드하여 Azure의 관리형 Kubernetes 클러스터 배포를 단순화하는 호스트된 Kubernetes 서비스입니다. Azure는 상태 모니터링 및 유지 관리와 같은 중요한 작업을 처리합니다.
스토리지 풀
Azure Container Storage 스택은 클러스터 소유 리소스 및 플랫폼 추상화에서 개체 모델을 통합하려고 시도합니다. 통합을 나타내기 위해 사용 가능한 스토리지 용량은 스토리지 풀 개체로 집계됩니다. 스토리지 풀 내의 스토리지 용량은 동종으로 간주됩니다. AKS 클러스터에는 여러 스토리지 풀이 있을 수 있습니다. 스토리지 풀은 인증 및 프로비전 경계 역할을 합니다. 애플리케이션 개발자를 위한 볼륨 생성 및 관리를 간소화하면서 운영자가 스토리지 인프라를 관리할 수 있도록 하는 논리적 구문을 제공합니다.
스토리지 클래스
Kubernetes 스토리지 클래스는 영구적 볼륨에서 스토리지 단위를 동적으로 생성되는 방법을 정의합니다. 자세한 내용은 Kubernetes 스토리지 클래스를 참조하세요.
부피
Kubernetes 볼륨은 지정된 Pod의 컨테이너에 액세스할 수 있는 데이터를 포함하는 디렉터리입니다. 볼륨은 영구적이거나 일시적일 수 있습니다. 볼륨은 스토리지 풀 내에서 씬 프로비전되며 스토리지 풀의 성능 특성(IOPS, 대역폭 및 용량)을 공유합니다.
영구 볼륨
영구 볼륨은 VM의 디스크와 같습니다. 파일 시스템을 탑재하는 데 사용할 수 있는 원시 블록 디바이스를 나타냅니다. 애플리케이션 개발자는 애플리케이션 또는 Pod 정의와 함께 영구 볼륨을 만들고, 볼륨은 종종 상태 저장 애플리케이션의 수명 주기에 연결됩니다. 자세한 내용은 영구 볼륨을 참조하세요.
PVC(영구 볼륨 클레임)
영구 볼륨 클레임을 사용하여 스토리지 클래스를 기반으로 하는 스토리지를 자동으로 프로비전합니다.