스토리지 전략 선택 및 구현

Last reviewed 2023-07-17 UTC

Google Cloud 아키텍처 프레임워크의 이 문서는 스토리지를 기반으로 시스템을 배포하기 위한 권장사항을 제공합니다. 스토리지 전략을 선택하는 방법과 스토리지, 액세스 패턴, 워크로드를 관리하는 방법을 알아봅니다.

조직에서는 데이터 교환을 용이하게 하고 데이터를 안전하게 백업 및 저장하기 위해 워크로드, 초당 입출력 작업 수(IOPS), 지연 시간, 검색 빈도, 위치, 용량, 형식(블록, 파일, 객체)을 기준으로 스토리지 요금제를 선택해야 합니다.

Cloud Storage는 안정적이고 안전한 객체 스토리지 서비스를 제공하여 여기에는 다음 서비스가 포함됩니다.

Google Cloud에서 IOPS는 프로비저닝된 스토리지 공간에 맞춰 확장됩니다. Persistent Disk와 같은 스토리지 유형은 영역별 또는 리전별로 제공되므로 수동 복제 및 백업이 필요합니다. 이와 달리 객체 스토리지는 가용성이 높고 단일 리전 또는 여러 리전에서 자동으로 데이터를 복제합니다.

스토리지 유형

이 섹션에서는 시스템을 지원하는 스토리지 유형을 선택하기 위한 권장사항을 제공합니다.

고성능 스토리지 요구에 대한 옵션 평가

고성능 스토리지가 필요한 컴퓨팅 애플리케이션을 위한 영구 디스크 또는 로컬 솔리드 스테이트 드라이브(SSD)를 평가해 보세요. Cloud Storage는 버전 관리가 지원되는 변경 불가능한 객체 스토리지입니다. Cloud Storage를 Cloud CDN과 함께 사용하면 비용을 최적화하는 데 도움이 되며, 자주 액세스하는 정적 객체의 경우 더 그렇습니다.

Filestore는 고성능 공유 공간이 필요한 멀티 쓰기 애플리케이션을 지원합니다. 또한 Filestore는 네트워크 파일 시스템(NFS) 마운트를 통해 POSIX와 비슷한 파일 작업이 필요한 기존 및 최신 애플리케이션을 지원합니다.

Cloud Storage는 데이터 레이크를 만들고 보관처리 요구사항을 처리하는 등의 사용 사례를 지원합니다. 특히 보관 정책을 구성하는 경우 액세스 및 가져오기 비용을 감안해 Cloud Storage 클래스를 선택할 때 균형 잡힌 결정을 내려야 합니다. 자세한 내용은 클라우드 워크로드를 위한 최적의 스토리지 전략 설계를 참조하세요.

모든 스토리지 옵션은 기본적으로 Google 관리 키를 사용하여 미사용 상태와 전송 중에 암호화됩니다. Persistent Disk와 Cloud Storage 같은 스토리지 유형의 경우 자체 키를 제공하거나 Cloud Key Management Service(Cloud KMS)를 통해 관리할 수 있습니다. 프로덕션 데이터에 사용하기 전에 이러한 키를 처리하기 위한 전략을 수립합니다.

스토리지 설계를 지원하는 Google Cloud 서비스 선택

스토리지 설계를 지원하는 Google Cloud 서비스에 대해 알아보려면 다음 표를 사용하세요.

Google Cloud 서비스 설명
Cloud Storage 데이터 양에 상관없이 언제든지 데이터를 저장하고 가져올 수 있습니다. Cloud Storage를 웹사이트 콘텐츠 제공, 보관 및 재해 복구를 위한 데이터 저장, 직접 다운로드를 통해 사용자에게 대량의 데이터 객체 배포 등 다양한 시나리오에서 사용할 수 있습니다.

자세한 내용은 다음을 참조하세요.
Persistent Disk Google Cloud의 고성능 블록 스토리지입니다. Persistent Disk는 Compute Engine 또는 Google Kubernetes Engine(GKE)에서 실행되는 인스턴스에 연결할 수 있는 SSD 및 하드 디스크 드라이브(HDD)를 제공합니다.
  • 리전 디스크는 동일한 리전 내의 두 영역 간 데이터 복제를 지원하며 내구성 있는 스토리지를 제공합니다. IOPS를 높이고 지연 시간이 짧아야 하는 경우 Google Cloud는 Filestore를 제공합니다.
  • 로컬 SSD는 가상 머신 인스턴스를 호스팅하는 서버에 물리적으로 연결됩니다. 로컬 SSD를 임시 디스크 공간으로 사용할 수 있습니다.
Filestore 파일 시스템 인터페이스와 데이터용 공유 파일 시스템이 필요한 애플리케이션을 위해 만들어진 관리형 파일 스토리지 서비스입니다. Filestore는 관리형 네트워크 연결 스토리지(NAS)를 Compute Engine 및 GKE 인스턴스와 같이 구축할 수 있는 원활한 환경을 제공합니다.
Firebase용 Cloud Storage 사진이나 동영상과 같은 사용자 제작 콘텐츠를 저장하고 제공해야 하는 앱 개발자를 위해 빌드되었습니다. 모든 파일이 Cloud Storage 버킷에 저장되므로 Firebase 및 Google Cloud 둘 다에서 파일에 액세스할 수 있습니다.

스토리지 전략 선택

애플리케이션 요구사항을 충족하는 스토리지 전략을 선택하려면 다음 표를 활용하세요.

사용 사례 권장사항
가장 저렴한 비용으로 규모에 맞게 데이터를 저장하려 하며 액세스 성능은 문제가 되지 않는 경우 Cloud Storage
즉각적인 스토리지가 필요한 컴퓨팅 애플리케이션을 실행 중입니다.

자세한 내용은 Persistent Disk 및 로컬 SSD 성능 최적화를 참조하세요.
Persistent Disk 또는 로컬 SSD
공유 공간에 대한 읽기 및 쓰기 액세스가 필요한 고성능 워크로드를 실행 중인 경우 Filestore
고성능 컴퓨팅(HPC) 또는 대용량 컴퓨팅(HTC) 사용 사례가 있는 경우 클러스터에서 대규모 기술 컴퓨팅을 위한 클러스터 사용

스토리지 액세스 요구사항에 따라 활성 또는 아카이브 스토리지 선택

스토리지 클래스는 모든 객체에서 사용되는 메타데이터의 조각입니다. 높은 요청 비율과 고가용성으로 처리되는 데이터의 경우 Standard Storage 클래스를 사용해야 합니다. 자주 액세스하지 않으며 가용성이 다소 낮아도 되는 데이터에는 Nearline Storage, Coldline Storage 또는 Archive Storage 클래스를 사용하세요. 스토리지 클래스 선택 관련 비용 고려사항에 대한 자세한 내용은 Cloud Storage 가격 책정을 참조하세요.

Cloud Storage의 스토리지 위치 및 데이터 보호 요구사항 평가

리전에 위치한 Cloud Storage 버킷의 경우 해당 리전에 포함된 데이터가 자동으로 리전 내의 영역 간에 복제됩니다. 여러 영역으로 데이터를 복제하면 리전 내 한 영역에서 장애가 발생하더라도 데이터를 보호할 수 있습니다.

또한 Cloud Storage는 리전 간에 중복되는 위치를 제공하므로 데이터를 지리적으로 별도의 여러 데이터 센터에 복제합니다. 자세한 내용은 버킷 위치를 참조하세요.

Cloud CDN을 사용하여 정적 객체 전송 기능 개선

객체 검색 비용을 최적화하고 액세스 지연 시간을 최소화하려면 Cloud CDN을 사용합니다. Cloud CDN은 Cloud Load Balancing 외부 애플리케이션 부하 분산기를 사용하여 라우팅, 상태 점검, 애니캐스트 IP 주소 지원을 제공합니다. 자세한 내용은 클라우드 버킷을 사용한 Cloud CDN 설정을 참조하세요.

스토리지 액세스 패턴 및 워크로드 유형

이 섹션에서는 시스템을 지원하기 위해 스토리지 액세스 패턴과 워크로드 유형을 선택하기 위한 권장사항을 제공합니다.

Persistent Disk를 사용하여 고성능 스토리지 액세스 지원

데이터 액세스 패턴은 시스템 성능 설계 방식에 따라 다릅니다. Cloud Storage는 확장 가능한 스토리지를 제공하지만 대량의 데이터에 높은 처리량으로 액세스해야 하는 컴퓨팅 워크로드를 많이 실행하는 경우에는 이상적인 옵션이 아닙니다. 고성능 스토리지 액세스가 필요하다면 Persistent Disk를 사용하세요.

재시도 로직 구현 시 지수 백오프 사용

재시도 로직을 구현할 때 지수 백오프를 사용해 5XX, 408, 429 오류를 해결하세요. 각 Cloud Storage 버킷에는 초기 I/O 용량이 프로비저닝됩니다. 자세한 내용은 요청 비율 및 액세스 분배 가이드라인을 참조하세요. 재시도 요청이 점진적으로 증가하도록 계획을 수립하세요.

스토리지 관리

이 섹션에서는 시스템을 지원하는 스토리지 관리를 위한 권장사항을 제공합니다.

모든 버킷에 고유한 이름 할당

모든 버킷 이름은 Cloud Storage 네임스페이스에서 고유해야 합니다. 버킷 이름에 민감한 정보를 포함하지 마세요. 추측하기 어려운 버킷 이름과 객체 이름을 선택합니다. 자세한 내용은 버킷 이름 지정 가이드라인객체 이름 지정 가이드라인을 참조하세요.

Cloud Storage 버킷을 비공개로 유지

비즈니스 관련 사유가 없는 한 Cloud Storage 버킷에 익명이나 공개적으로 액세스할 수 없어야 합니다. 자세한 내용은 액세스 제어 개요를 참조하세요.

임의의 객체 이름을 할당하여 로드를 균등하게 분산

임의의 객체 이름을 할당하여 성능을 개선하고 핫스팟을 피하세요. 가능하다면 객체에 무작위화된 프리픽스를 사용합니다. 자세한 내용은 전체 키 범위에 걸쳐 부하를 균일하게 분배하는 이름 지정 규칙 사용을 참조하세요.

공개 액세스 방지 사용

조직, 폴더, 프로젝트 또는 버킷 수준에서 액세스하지 못하도록 공개 액세스 방지를 사용하세요. 자세한 내용은 공개 액세스 방지 사용을 참조하세요.

다음 단계

다음을 포함한 Google Cloud 데이터베이스 서비스 및 권장사항 알아보기

안정성, 운영 우수성, 보안, 개인정보 보호, 규정 준수 등 아키텍처 프레임워크의 다른 카테고리 살펴보기