컴퓨터/클라우드

[GCP Associate Cloud Engineer] Storage

sidedoor 2025. 1. 24. 15:01

Block Storage & File Storage

Block Storage

 

하드 디스크처럼 데이터를 블록 단위로 저장한다.

주로 가상 서버나 가상 머신에 연결되어 데이터베이스 및 고성능 애플리케이션에서 사용된다.

일반적으로 한 블록 스토리지 장치는 하나의 가상 서버에 연결되고, 읽기 전용 장치의 경우 여러 서버에 연결 가능하다.

일부 클라우드 공급자는 다중 쓰기 디스크도 지원한다.

크기 조정이 유연하여 디스크의 크기를 동적으로 확장할 수 있고, 디스크를 분리하지 않고도 크기 조절이 가능하다.

 

 

사용 방식

 

직접 연결 스토리지(DAS): 하드 디스크처럼 서버에 직접 연결.

 

스토리지 영역 네트워크(SAN): 고속 네트워크를 통해 스토리지 풀에 연결.

Oracle, Microsoft SQL Server 같은 고성능 데이터베이스에서 사용된다.

 

GCP의 Block Storage 옵션

 

Persistent Disks

네트워크 블록 스토리지로 아래 두 가지 유형이 존재한다.

 - Zonal Persistent Disks: 데이터가 하나의 존(zone) 내에서만 복제.

 - Regional Persistent Disks: 데이터가 여러 존에 복제되어 고가용성 제공.

VM 생성 시 기본으로 부팅 디스크로 연결되고, 추가 디스크는 VM 설정의 Disks 섹션에서 생성 및 연결된다.

디스크 유형(Blank Disk, Image, Snapshot) 및 크기 설정 가능하다.

디스크 생성

그리고 현재 인스턴스가 E2로 되어있기 때문에 로컬SSD추가는 선택할 수 없는 것을 볼 수 있는데 이를 선택하기 위해서는 인스턴스를 N1과 같이 고성능으로 변경해주면 된다.

 

Persistent Disk 유형

 

디스크 유형 설정

Standard

전통적인 HDD 기반의 스토리지로, 비교적 낮은 비용에 제공된다.

 

Balanced

성능과 비용의 균형을 맞춘 스토리지로, 일반적인 SSD 성능을 제공하면서도 비용 효율적이다.

 

SSD

최고 성능을 제공하며, 비용은 상대적으로 높다.

 

Extreme

NVMe 기반 SSD를 사용하며, 기존 SSD보다 훨씬 더 높은 성능과 낮은 지연 시간을 제공한다.

 

Persistent Disk의 성능은 크게 Sequential IOPS(순차적 IOPS)와 Random IOPS(랜덤 IOPS)로 나눌 수 있는데 Standard부터 Extreme까지 순서대로 성능이 향상 되고 가격이 비싸진다.

 

사용 사례

 - Standard 

순차적 IOPS를 주로 사용하는 작업에 적합하고, 비용 효율적이기 때문에 저렴한 빅데이터 워크로드에 적합하다.

 

 - Balanced 

SSD 성능의 일부를 제공하면서도 비용은 저렴하기 때문에 비용과 성능의 균형이 필요한 트랜잭션 애플리케이션에 적합하다.

 

 - SSD

순차적 및 랜덤 IOPS 모두에서 탁월한 성능을 제공하기 때문에 빅데이터 작업 또는 트랜잭션 앱과 같이 최고의 성능이 필요한 경우에 적합하다.

 

- Extreme

OLTP 시스템이나 초고속 쿼리를 수행해야 하는 데이터베이스에서 활용된다.

 

스냅샷

스냅샷 생성

 

스냅샷은 Persistent Disk의 특정 시점의 백업으로 이를 통해 데이터의 백업을 효율적으로 관리할 수 있다. 

특정 주기로 스냅샷을 생성할 수 있는데, 스케줄을 설정하여 오래된 스냅샷 자동 삭제도 가능하다.

그리고 스냅샷은 프로젝트 간 공유가 가능하기 때문에 한 프로젝트에서 생성한 스냅샷을 다른 프로젝트에서 사용할 수 있다.

스냅샷을 활용해 새로운 Persistent Disk를 생성할 수 있는데 스냅샷에 부트 디스크 데이터가 포함된 경우, 해당 스냅샷을 사용해 새로운 VM 인스턴스를 생성할 수도 있다.

여러개의 스냅샷을 찍을 때 첫 번째 스냅샷은 전체 데이터를 저장하지만, 이후 스냅샷은 변경된 데이터만 저장하여 증분 방식으로 스토리지 비용을 최적화한다.

 

이미지와의 차이는 스냅샷에서 디스크를 생성하는 데는 시간이 더 걸리지만 동일한 스냅샷으로 반복적으로 디스크를 생성하는 경우, 스냅샷에서 이미지를 생성하고 이를 사용하면 더 빠르게 디스크를 생성할 수 있다.

 

Local SSDs

VM과 동일한 호스트에 위치한 로컬 블록 스토리지로 고성능 및 낮은 지연 시간을 요구하는 실시간 작업에 적합하다.

디스크 추가를 통해서 어떤 디스크를 추가할지 정할 수 있다.

Persistent Disk보다 10~100배 빠른 IO 속도 제공하기 때문에 캐싱이나 임시 파일 저장과 같은 고성능 애플리케이션에 적합하다.

로컬 SSD에서 데이터는 VM 인스턴스가 실행 중인 동안만 유지된다. 이때 라이브 마이그레이션을 활성화하면 유지 가능하다. 그리고 다른 VM으로 디스크 이동 불가능 하여 Persistent Disk보다 가용성 및 유연성이 낮다.

Local SSD의 데이터는 Google에서 자동으로 암호화를 하는데 Google 관리 키를 사용하기 때문에 사용자 정의 암호화 키 설정이 불가능하다.

 

로컬 SSD 추가

VM 인스턴스 생성 시 지원하는 머신 타입에서만 사용 가능기 때문에 해당 인스턴스를 선택하면 로컬 SSD 추가를 할 수 있다. 그 후 인터페이스(SCSI 또는 NVMe)를 선택하고, 연결할 Local SSD 수량 선택하면 추가가 완료된다.

 

특징  Local SSD  Persistent Disk 
스토리지 위치 VM과 같은 호스트에 물리적으로 연결. 네트워크를 통해 연결된 스토리지.
데이터 지속성 FML (Ephemeral): VM 종료 시 데이터 삭제. VM 종료 후에도 데이터 유지 가능.
성능 매우 높은 IOPS와 낮은 지연 시간 제공. 비교적 낮은 IOPS와 더 높은 지연 시간.
유연성 VM에만 고정, 다른 VM에 재사용 불가. 디스크를 분리하고 다른 VM에 재사용 가능.
스냅샷 지원 미지원 지원
사용 사례 캐시, 임시 데이터, Scratch 파일. 데이터베이스, 영구 데이터 저장.

 

 

File Storage

 

공유 파일 시스템 형태로 여러 서버가 데이터를 동시에 접근 가능하여 주로 협업 작업 및 파일 공유에 적합하다.

 

 

GCP의 File Storage 옵션

 

Filestore

완전 관리형 네트워크 연결 스토리지(NAS)로 Compute Engine 및 Kubernetes Engine과 통합 가능하다.

고성능(SSD)와 기본(HDD) 옵션 제공한다.

Filestore 생성 시 이름, 스토리지 유형(HDD 또는 SSD), 용량, 리전/존 지정을 해야하고, 생성 후 SSH를 통해 VM에 연결가능하다.

 

 

File Storage생성

Compute Engine에서의 백업 옵션 비교

단일 디스크 백업

 

Machine Image

단일 디스크를 포함해 전체 VM 구성 및 데이터 백업이 가능하다.

 

Snapshot

단일 Persistent Disk의 특정 시점 백업만 가능하다. 이때 VM 구성 정보는 포함되지 않는다. 

 

Custom Image

부트 디스크만 백업이 가능하다. VM의 부트 디스크를 기반으로 이미지를 생성하며, 운영체제를 배포하거나 클론할 때 유용하다.

 

Instance Template

데이터를 백업하지 않고, 단순히 VM 인스턴스의 구성 정보(머신 유형, 태그, 네트워크 설정 등)만 포함한다.

 

다중 디스크 백업

 

Machine Image

유일하게 다중 디스크 백업이 가능한 옵션이다.

VM에 연결된 모든 디스크를 포함해 백업한다.

 

 

차등 백업

 

이전 백업 이후 변경된 데이터만 저장하는 방식으로 스토리지 효율성과 백업 속도가 증가한다.

옵션  차등 백업 지원 여부
Machine Image 지원 (변경된 데이터만 저장)
Snapshot 지원 (증분 방식)
Custom Image 미지원 (전체 데이터 저장)
Instance Template 미지원 (구성 정보만 포함)

 

 

인스턴스 복제 및 클로닝

 

Machine Image

인스턴스 복제 및 클로닝 가능하다.

다중 디스크 및 구성 정보를 포함하므로, 새로운 VM을 쉽게 생성할 수 있다.

 

Snapshot

인스턴스 복제 불가하고, 디스크 데이터 백업에만 사용된다.

 

Custom Image

인스턴스 복제가 가능하지만, 부트 디스크만 포함된다.

 

Instance Template

 

# 디스크 목록 확인
gcloud compute disks list

 

실행 결과

 

실행 결과를 보면 현재 디스크가 2개가 있고 해당 디스크의 정보를 볼 수 가 있다.

NAME: 디스크 이름.

ZONE: 디스크가 위치한 영역(zone).

SIZE: 디스크 크기(GB 단위).

TYPE: 디스크 유형(PD-balanced, PD-standard, PD-SSD, Local SSD).

STATUS: 디스크 상태(READY 등).

 

디스크 생성 및 수정

# 디스크 생성
gcloud compute disks create <디스크 이름> \
    --size=<크기(GB)> \
    --type=<디스크 유형> \
    --zone=<영역>
    
# 디스크 수정
gcloud compute disks resize <디스크 이름> \
    --size=<새로운 크기(GB)> \
    --zone=<영역>

 

디스크 수정 결과

디스크를 수정하면 위와 같이 수정이 된것을 확인할 수 있다.

이때 디스크의 수정은 영구적이기 때문에 수정된것을 되돌리기 위해서 용량을 다시 작게 줄이는것은 아래와 같이 불가능하다.

용량 줄이기 불가능

 

아래와 같은 방식으로 이미지, 스냅샷, 디스크로 생성이 가능하다.

# 이미지로 생성
gcloud compute disks create <디스크 이름> \
    --image=<이미지 이름> \
    --zone=<영역>
    
# 스냅샷으로 생성
gcloud compute disks create <디스크 이름> \
    --source-snapshot=<스냅샷 이름> \
    --zone=<영역>

# 기존 디스크로 생성
gcloud compute disks create <디스크 이름> \
    --source-disk=<디스크 이름> \
    --zone=<영역>

 

 

데이터 암호화

디스크를 생성할 때 암호화 옵션을 설정할 수 있다.
KMS(Key Management Service)를 활용하거나 프로젝트 수준에서 키를 지정할 수 있다.

gcloud compute disks create <디스크 이름> \
    --size=<크기> \
    --type=<디스크 유형> \
    --zone=<영역> \
    --kms-key=<키> \
    --kms-project=<프로젝트>