Google Cloud Platform에서 영구 디스크 (HDD or SDD) 추가하는 방법을 설명드립니다.
비용 측면에서는 HDD가 SDD에 비해서 저렴하고 속도는 SDD가 월등할 것으로 생각됩니다. 주의해야 하는 점은 가상 머신(VM instance)과 HDD는 별도로 비용으로 청구됩니다. 가상 머신에 HDD 추가 시 1) VM 삭제 시 HDD도 같이 삭제하는 옵션과 2) 삭제 후에도 HDD를 유지하는 옵션이 있습니다. 일반 PC에 별도의 HDD 추가하는 것처럼 GCP에서 별도의 HDD를 만들 수 있습니다. 또한 HDD는 하나의 VM에서 연결되고, 복수의 VM에서 동시에 사용할 수는 없습니다.
GCP의 평생 무료 제품에서는 총 30G/월까지 제공합니다. GCP에서는 OS 설치 시 기본 사이즈는 10GB로 설정되어 있고, VM 생성 단계에서 HDD 사이즈를 조정할 수 있습니다.
제가 활용하는 사례는 아래와 같습니다. 여러 우분투 버전에서 SW를 테스트하기 위해서 10GB 크기의 우분투 14.04 LTS와 18.04 LTS를 설치하고 사용 중에 있습니다. 필요한 버전만 활성활 시키고 필요 없는 가상 머신은 '중지' ('정지'는 비용 청구됨. 노트북의 초절전 모드 정도와 비슷함)하고 사용 중입니다. 총 30GB까지 무료로 제공하기 때문에 3개 OS까지는 무료로 사용할 수 있습니다.
GCP에서 하드 디스크 추가 방법
GCP에서 하드 디스크 추가하는 방법은 아래 2단계를 거쳐야 합니다.
- Google Cloud Console에서 HDD 생성하고, VM Instance에 연결
- VM instance 상에서 HDD를 포맷하고 마운트 한다. (일반 리눅스에 HDD 연결과 동일한 작업)
Google Cloud Conole에서 VM Instance (가상 PC)에 HDD를 추가하는 방법
1) Google Cloud Console에서 Compute Engine에서 VM Instance를 선택
2) VM Instance 세부 정보에서 '수정' 선택
3) 추가 디스크 메뉴에서 '새 디스크 추가'
4) 하드 디스크 옵션 선택: 디스크 이름, 유형, 인스턴스 삭제 시 디스크 삭제/유지 옵션
5) 하드 디스크의 크기를 선택
VM instance 상에서 HDD를 포맷하고 마운트 하는 방법 (링크)
HDD 추가 후 포맷과 마운트 하는 방법은 일반 리눅스 방법과 동일합니다. Google Cloud console에서 SSH를 이용해서 VM에 접속해서 아래 명령어를 그대로 실행하면 에러 없이 HDD 포맷과 마운트를 진행할 수 있습니다.
#lsblk에서 새로 추가한 디스크를 확인합니다. 아래 경우는 /sdb 가 새로 추가한 Disk입니다.
$ sudo lsblk
# HDD를 EXT4로 포맷 (구글에서 권장한 flag 사용)
$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
# HDD를 /mnt/disks/sdb로 마운트
$ sudo mkdir -p /mnt/disks/sdb
$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/sdb
# HDD를 /mnt/disks/sdb 에 권한 추가
$ sudo chmod a+w /mnt/disks/sdb
# /etc/fstab 작성을 위한 HDD의 UUID 확인
$ sudo blkid /dev/sdb
# sudo vi /etc/fstab 에 아래 내용 추가 (재 부팅 시 마운트)
UUID=UUID_VALUE /mnt/disks/sdb ext4 discard,defaults,nobootwait 0 2
# mount 확인 - /dev/sdb의 공간 확인
$ sudo df -h
관련 글
[개발환경/Google Cloud Platform] - GCP (Google Cloud) 방화벽 설정: 프로토콜과 포트를 사용 허용 또는 거부하기
[개발환경/Google Cloud Platform] - Google Cloud Platform을 활용하여 평생 '무료' PC 만들기
[개발환경] - 우분투 작업 스케줄러 Crontab 사용법, 디버깅, 주의 사항
[모바일 SW 개발/REST API] - JWT(JSON Web Token) Encoding 방법 (Python sample code)
[모바일 SW 개발/REST API] - 우분투 20.04에서 Web 서버 설치 방법 (apache2, tomcat9)
[개발환경] - 네이버 동영상 다운로드 방법 (동영상과 설명 포함)
[모바일 SW 개발/Android] - [실패 사례] WSL(Windows Subsystem for Linux) 에서 Android 빌드하기
[개발환경] - Ubuntu 동영상 플레이어: VLC Player 설치
[개발환경] - Ubuntu 20.04에서 sshfs 를 이용한 원격 폴더 마운트
[개발환경] - [Tips] Ubuntu 20.04 에서 Home 폴더 이름을 영문으로 변경
[개발환경] - [Tips] Ubuntu 20.04 에서 swap file 늘리기
[개발환경] - 우분투 터미널에 Putty 스타일 Copy&Paste 적용 (Terminator)
[개발환경] - 우분투에서 NTFS 를 Read/Write로 마운트 (듀얼 부팅 화일 공유)
[개발환경] - [Tips] Ubuntu 20.04 키 모음 잠금 풀기 (부팅 후에 표시하지 않도록 수정하기)
[개발환경] - Ubuntu 에서 SW 개발 Tool 설치
댓글