이 가이드는 클라우드 워크로드의 스토리지 요구사항을 평가하고, Google Cloud에서 사용 가능한 스토리지 옵션을 이해하고, 최적의 비즈니스 가치를 제공하는 스토리지 전략을 설계하는 데 도움이 됩니다.
주요 설계 추천에 대한 시각적 요약은 결정 트리 다이어그램을 참조하세요.
설계 프로세스 개요
클라우드 설계자는 클라우드 워크로드에 맞게 스토리지를 계획할 때 먼저 워크로드의 기능 특성, 보안 제약조건, 복원력 요구사항, 성능 기대 수준, 비용 목표를 고려한 후 Google Cloud에서 사용할 수 있는 스토리지 서비스 및 기능을 검토해야 합니다. 그런 다음 요구사항과 사용 가능한 옵션에 따라 필요한 스토리지 서비스와 기능을 선택합니다.
다음 다이어그램은 이 3단계 설계 프로세스를 보여줍니다.
요구사항 정의
이 섹션의 설문지를 사용하여 Google Cloud에 배포하려는 워크로드의 주요 스토리지 요구사항을 정의합니다.
스토리지 요구사항 정의 가이드라인
설문지에 답변할 때 다음 가이드라인을 고려하세요.
세부적인 요구사항 정의
예를 들어 애플리케이션에 네트워크 파일 시스템(NFS) 기반 파일 스토리지가 필요한 경우 필요한 NFS 버전을 파악합니다.
향후 요구사항 고려
예를 들어 현재 배포에서 아시아 내 국가의 사용자에게 서비스를 제공할 수 있지만 비즈니스를 다른 대륙으로 확장할 수도 있습니다. 이 경우 새 비즈니스 영역의 스토리지 관련 규제 요건을 고려하세요.
클라우드별 기회 및 요구사항 고려
클라우드 관련 기회를 활용하세요.
예를 들어 Cloud Storage에 저장된 데이터의 스토리지 비용을 최적화하기 위해 데이터 보관 정책 및 수명 주기 구성을 사용하여 저장 기간을 조정할 수 있습니다.
클라우드별 요구사항을 고려하세요.
예를 들어 온프레미스 데이터가 단일 데이터 센터에 있을 수 있으며 중복화를 위해 마이그레이션된 데이터를 두 Google Cloud 위치에 복제해야 할 수 있습니다.
설문지
다음 설문지는 계획에 완벽한 체크리스트가 아닙니다. 이를 Google Cloud에 배포하려는 워크로드의 모든 스토리지 요구사항을 체계적으로 분석하기 위한 시작점으로 사용하세요.
워크로드의 특성 평가
어떤 종류의 데이터를 저장해야 하나요?
예시
- 정적 웹사이트 콘텐츠
- 재해 복구를 위한 백업 및 보관처리
- 규정 준수를 위한 감사 로그
- 사용자가 직접 다운로드하는 큰 데이터 객체
- 트랜잭션 데이터
- 구조화되지 않은 이기종 데이터
용량이 얼마나 필요한가요? 현재 및 향후 요구사항을 고려하세요.
사용량에 따라 용량을 자동으로 조정해야 하나요?
액세스 요구사항은 무엇인가요? 예를 들어 Google Cloud 외부에서 데이터에 액세스할 수 있어야 하나요?
예상되는 읽기-쓰기 패턴은 무엇인가요?
예시
- 자주 쓰기 및 읽기
- 자주 쓰지만 가끔 읽기
- 가끔 쓰기 및 읽기
- 가끔 쓰지만 자주 읽기
워크로드에 NFS를 사용하는 파일 기반 액세스가 필요한가요?
여러 클라이언트가 동시에 데이터를 읽거나 쓸 수 있어야 하나요?
보안 제약조건 식별
데이터 암호화 요구사항은 무엇인가요? 예를 들어, 개발자가 제어하는 키를 사용해야 하나요?
데이터 보존 요구사항이 있나요?
데이터 복원력 요구사항 정의
- 워크로드에 지연 시간이 짧은 캐싱 또는 스크래치 공간이 필요한가요?
- 중복화를 위해 데이터를 클라우드에 복제해야 하나요?
- 복제된 데이터세트에 엄격한 읽기-쓰기 일관성이 필요한가요?
성능 기대치 설정
필요한 I/O 비율은 얼마인가요?
애플리케이션에 필요한 읽기 및 쓰기 처리량의 수준은 무엇인가요?
어떤 환경에 저장해야 하나요? 특정 워크로드에서는 프로덕션 환경에 대한 고성능 스토리지가 필요할 수 있지만 비프로덕션 환경에 더 낮은 성능 옵션을 선택할 수 있습니다.
스토리지 옵션 검토
Google Cloud는 모든 주요 스토리지 형식인 블록, 파일, 객체를 위한 스토리지 서비스를 제공합니다. 각 스토리지 형식에 사용할 수 있는 서비스의 기능, 디자인 옵션, 상대적 이점을 검토하고 평가합니다.
개요
블록 스토리지
블록 스토리지에 저장한 데이터는 청크로 분할되며, 각 청크는 고유 주소가 있는 별도의 블록으로 저장됩니다. 애플리케이션은 적절한 블록 주소를 참조하여 데이터에 액세스합니다. 블록 스토리지는 트랜잭션 처리와 같이 IOPS가 높은 워크로드에 최적화되어 있습니다. 이는 온프레미스 스토리지 영역 네트워크(SAN) 및 직접 연결 스토리지(DAS) 시스템과 유사합니다.
Google Cloud의 블록 스토리지 옵션은 Compute Engine 서비스의 일부입니다.
옵션 | 개요 |
---|---|
Persistent Disk | Compute Engine VM 및 Google Kubernetes Engine(GKE) 클러스터에 배포된 엔터프라이즈 및 데이터베이스 애플리케이션용 전용 하드 디스크 드라이브(HDD) 및 솔리드 스테이트 드라이브(SSD)입니다. |
Google Cloud Hyperdisk | Compute Engine VM을 위한 빠르고 중복된 네트워크 스토리지로, 구성 가능한 성능과 볼륨을 동적으로 조정할 수 있습니다. |
로컬 SSD | 고성능 애플리케이션을 위한 임시 로컬 연결 블록 스토리지입니다. |
파일 스토리지
데이터는 온프레미스 네트워크 연결 스토리지(NAS)와 마찬가지로 폴더에 저장된 파일의 계층 구조로 구성되고 표현됩니다. NFS 및 서버 메시지 블록(SMB)과 같은 프로토콜을 사용하여 클라이언트에 파일 시스템을 마운트할 수 있습니다. 애플리케이션은 관련 파일 이름과 디렉터리 경로를 사용하여 데이터에 액세스합니다.
Google Cloud는 파일 스토리지를 위한 다양한 완전 관리형 및 서드 파티 솔루션을 제공합니다.
솔루션 | 개요 |
---|---|
Google Cloud Filestore |
Compute Engine VM 및 Google Kubernetes Engine 클러스터용 NFSv3 파일 서버 사용 사례에 적합한 서비스 등급(기본, 영역, 리전)을 선택할 수 있습니다. |
Google Cloud NetApp Volumes | NFSv3, NFSv4.1 또는 SMB를 사용하는 파일 기반 스토리지입니다. |
추가 옵션 | 파일 서버 옵션 요약을 참조하세요. |
객체 스토리지
데이터는 버킷의 플랫 계층 구조에 객체로 저장됩니다. 각 객체에는 전역적으로 고유한 ID가 할당됩니다. 객체에 시스템 할당 및 사용자 정의 메타데이터가 포함되어 데이터를 정리하고 관리할 수 있습니다. 애플리케이션은 REST API 또는 클라이언트 라이브러리를 사용하여 객체 ID를 참조해 데이터에 액세스합니다. 객체 스토리지는 확장 기능 면에서 온프레미스 SAN과 비슷하지만 관리하기 쉽고 비용이 저렴합니다.
Cloud Storage는 다양한 데이터 유형에 적합한 저가의 내구성 높은 무제한 객체 스토리지를 제공합니다. Cloud Storage에 저장된 데이터는 Google Cloud 안팎의 어디에서든지 액세스할 수 있습니다. 리전 간의 선택적인 중복성은 최대한의 안정성을 제공합니다. 데이터 보관 및 액세스 빈도 요구사항에 맞는 스토리지 클래스를 선택할 수 있습니다.
비교 분석
다음 표에서는 Google Cloud에서 사용되는 스토리지 서비스의 주요 기능을 비교 분석합니다.
Persistent Disk | 하이퍼디스크 | 로컬 SSD | Filestore | Google Cloud NetApp Volumes | Cloud Storage | |
---|---|---|---|---|---|---|
용량 |
디스크당 10GiB~64TiB VM당 257TiB |
디스크당 4GiB~64TiB VM당 512TiB |
디스크당 375GiB VM당 12TiB |
Filestore 인스턴스당 1~100TiB(최소 및 최대 용량과 확장 증분은 서비스 등급에 따라 다름) | 스토리지 풀당 2~500TiB 볼륨당 100GiB~100TiB |
하한 또는 상한 없음 |
확장 |
|
성능과 용량을 동적으로 확장 | 확장 불가능 |
|
확장 및 축소 | 사용량에 따라 자동으로 확장 |
공유 |
제한된 공유
|
공유할 수 없음 | 공유할 수 없음 | 여러 Compute Engine VM, 원격 클라이언트, GKE 클러스터에 마운트 가능 | 여러 Compute Engine VM 및 GKE 클러스터에 마운트 가능 |
|
암호화 키 |
다음 중 하나:
|
다음 중 하나:
|
Google 소유 및 Google 관리 키 |
|
다음 중 하나:
|
다음 중 하나:
|
지속성 |
디스크 수명 | 디스크 수명 | 임시(VM이 중지 또는 삭제될 때까지 데이터가 유지됨) | Filestore 인스턴스 수명 | 볼륨 수명 | 버킷 수명 |
가용성 |
영역 | 영역 |
| |||
성능 |
디스크 크기 및 CPU 수를 기준으로 높은 성능으로 선형 확장 | 동적으로 확장 가능한 고성능 영구 스토리지 | 고성능 스크래치 스토리지 | 확장 가능한 성능 예상 값은 서비스 수준에 따라 다름 |
자동 확장 읽기-쓰기 속도 및 동적 부하 재분산 | |
관리 |
수동 포맷 및 마운트 | 수동 포맷 및 마운트 | 수동 포맷, 스트라이프, 마운트 | 완전 관리형 | 완전 관리형 | 완전 관리형 |
워크로드 |
|
|
|
|
|
|
스토리지 옵션 선택
스토리지 옵션은 두 부분으로 이루어집니다.
- 필요한 스토리지 서비스 결정
- 특정 서비스에서 필요한 기능 및 설계 옵션 선택
서비스별 기능 및 설계 옵션 예시
Persistent Disk
- 배포 리전 및 영역
- 리전 복제
- 디스크 유형, 크기, IOPS(익스트림 Persistent Disk의 경우)
- 암호화 키: Google 소유 및 Google 관리, 고객 관리 또는 고객 제공
- 스냅샷 일정
하이퍼디스크
- 배포 영역
- 디스크 유형, 크기, IOPS
- 암호화 키: Google 소유 및 Google 관리, 고객 관리 또는 고객 제공
- 스냅샷 일정
Filestore
- 배포 리전 및 영역
- 인스턴스 등급
- 용량
- IP 범위: 자동 할당 또는 커스텀
- 액세스 제어
NetApp Volumes
- 배포 리전
- 스토리지 풀의 서비스 수준
- 풀 및 볼륨 용량
- 볼륨 프로토콜
- 볼륨 내보내기 규칙
Cloud Storage
- 위치: 멀티 리전, 이중 리전, 단일 리전
- 스토리지 클래스: Standard, Nearline, Coldline, Archive
- 액세스 제어: 균일하거나 세분화된 액세스 제어
- 암호화 키: Google 소유 및 Google 관리, 고객 관리 또는 고객 제공
- 보관 정책
스토리지 권장사항
다음 권장사항을 시작점으로 사용하여 요구사항을 충족하는 스토리지 서비스 및 기능을 선택하세요. 이러한 권장사항은 이 문서 뒷부분의 결정 트리로도 제공됩니다.
파일 기반 액세스가 필요한 애플리케이션의 경우 액세스 프로토콜, 가용성, 성능에 대한 요구사항에 따라 적합한 파일 스토리지 서비스를 선택합니다.
액세스 프로토콜 권장사항 NFSv3 - 리전 가용성이 필요하면 Filestore 리전을 사용합니다.
- 영역 가용성이 충분하지만 고성능이 필요한 경우 Filestore 영역을 사용합니다.
- 그렇지 않으면 Filestore 기본 또는 NetApp Volumes를 사용합니다.
Filestore 서비스 등급 간의 차이점에 대한 자세한 내용은 서비스 등급을 참조하세요.
SMB 또는 NFSv4.1 NetApp Volumes를 사용합니다. 고성능의 기본 스토리지가 필요한 워크로드의 경우 요구사항에 따라 로컬 SSD, Persistent Disk 또는 하이퍼디스크를 사용하세요.
요구 사항 권장사항 빠른 스크래치 디스크 또는 캐시 로컬 SSD 디스크(임시)를 사용합니다.
순차적 IOPS pd-standard
디스크 유형에 Persistent Disk를 사용합니다.IOPS 집약적인 워크로드 pd-extreme
또는pd-ssd
디스크 유형에 Persistent Disk를 사용합니다.성능과 비용 간 균형 유지 pd-balanced
디스크 유형에 Persistent Disk를 사용합니다.동적으로 확장 가능한 성능 및 용량 하이퍼디스크를 사용합니다.
적합한 하이퍼디스크 유형을 선택하세요.
- 하이퍼디스크 처리량은 수평 확장 분석, 비용에 민감한 앱용 데이터 드라이브, 콜드 스토리지에 권장됩니다.
- 하이퍼디스크 익스트림은 고성능 데이터베이스와 같이 높은 I/O가 필요한 워크로드에 권장됩니다.
- 중복화 필요 여부에 따라 영역 디스크와 리전 디스크 중에서 선택합니다.
요구 사항 권장사항 리전의 단일 영역 내에서 중복화 영역 Persistent Disk 또는 하이퍼디스크를 사용합니다. 리전 내 여러 영역에 중복화 리전 Persistent Disk를 사용합니다.
무제한 확장 및 전역적으로 사용 가능한 스토리지에는 Cloud Storage를 사용합니다.
데이터 액세스 빈도와 스토리지 기간에 따라 적절한 Cloud Storage 클래스를 선택합니다.
요구 사항 권장사항> 액세스 빈도에 차이가 있거나 데이터 보관 기간을 알 수 없거나 예측할 수 없습니다. 자동 클래스 기능을 사용하여 각 객체의 액세스 패턴에 따라 버킷의 객체를 적절한 스토리지 클래스로 자동 전환합니다. 대용량 액세스/데이터 레이크, 웹사이트, 스트리밍 동영상, 모바일 앱을 비롯하여 자주 액세스하는 데이터용 스토리지입니다. 표준 스토리지 클래스를 사용합니다.
자주 액세스하는 데이터를 캐시하고 클라이언트에 가까운 위치에서 제공하려면 Cloud CDN을 사용합니다.
자주 액세스하지 않는 데이터를 최소 30일 동안 저장할 수 있는 저비용 스토리지입니다(예: 백업 및 롱테일 멀티미디어 콘텐츠). Nearline 스토리지 클래스를 사용합니다. 자주 액세스하지 않는 데이터를 최소 90일 동안 저장할 수 있는 저렴한 스토리지입니다(예: 재해 복구). Coldline 스토리지 클래스를 사용합니다. 자주 액세스하지 않는 데이터를 365일 이상 저장할 수 있는 가장 저렴한 스토리지입니다(예: 규정 준수를 위한 보관처리). Archive 스토리지 클래스를 사용합니다. 자세한 비교 분석은 Cloud Storage 클래스를 참조하세요.
데이터 전송 옵션
적절한 Google Cloud 스토리지 서비스를 선택한 후 워크로드를 배포하고 실행하려면 데이터를 Google Cloud로 전송해야 합니다. 전송해야 하는 데이터가 온프레미스 또는 다른 클라우드 플랫폼에 있을 수 있습니다.
다음 방법을 사용해서 Google Cloud로 데이터를 전송할 수 있습니다.
- Storage Transfer Service를 사용해 온라인으로 데이터 전송: Cloud Storage, Amazon S3, Azure Storage 서비스, 온프레미스 데이터 소스를 포함한 파일 스토리지 시스템과 객체 간에 대량의 데이터를 자동으로 전송합니다.
- Transfer Appliance를 사용해 오프라인으로 데이터 전송: 네트워크 연결 및 대역폭을 사용할 수 없거나, 제한적이거나, 비용이 많이 드는 상황에서는 대량의 데이터를 오프라인으로 Google Cloud에 전송하고 로드합니다.
- Cloud Storage에 데이터 업로드: Google Cloud 콘솔, gcloud CLI, Cloud Storage API 또는 클라이언트 라이브러리를 사용하여 Cloud Storage 버킷에 데이터를 온라인으로 업로드합니다.
데이터 전송 방법을 선택할 때는 데이터 크기, 시간 제약조건, 대역폭 가용성, 비용 목표, 보안, 규정 준수 요구사항과 같은 요소를 고려해야 합니다. Google Cloud로의 데이터 전송을 계획 및 구현하는 방법에 대한 자세한 내용은 Google Cloud로 마이그레이션: 대규모 데이터 세트 전송을 참조하세요.
스토리지 옵션 결정 트리
다음 결정 트리는 앞에서 설명한 Google Cloud 스토리지 권장사항을 안내합니다.
다음 단계
- Google Cloud 가격 계산기를 사용하여 스토리지 비용 추정
- 보안, 복원력, 비용, 성능에 최적화된 클라우드 토폴로지 빌드 권장사항 알아보기
- Google Cloud의 객체, 블록, 파일 스토리지 차이점(동영상) 알아보기
- HPC 워크로드용 Lustre와 같은 병렬 파일 시스템을 사용해야 하는 경우 알아보기
기여자
저자: Kumar Dhanagopal | 크로스 프로덕트 솔루션 개발자
기타 참여자:
- 브레난 도일 | 솔루션 설계자
- 딘 힐데브랜드 | CTO실 기술 이사
- 제오프레이 노어 | 그룹 제품 관리자
- 잭 저우 | 테크니컬 라이터
- 제이슨 우 | 제품 관리 부문 전무이사
- 제프 앨런 | 솔루션 설계자
- 션 데링턴 | 스토리지 부문 그룹 아웃바운드 제품 관리자