728x90

오라클 클라우드(OCI) Always Free 인스턴스를 한동안 잘 쓰다 보면, 어느 날 갑자기 이런 상황을 만나게 됩니다.

$ df -h /
  Filesystem      Size  Used Avail Use% Mounted on
  /dev/sda1        45G   44G  1.2G  98% /

디스크 사용률 98%. 도커 이미지 몇 개 받고, 로그가 쌓이고, DB가 좀 커졌을 뿐인데 어느새 꽉 차버립니다. 저도 운영 중이던 인스턴스가 거의 풀나기 직전까지 가서 부랴부랴 디스크를 늘리게 되었는데요, 다행히 추가 비용 없이 무료 한도 내에서 꽤 넉넉하게 확장할 수 있었습니다.

이 글에서는 기본 인스턴스가 주는 용량과, 거기서 무료로 어디까지 더 늘릴 수 있는지를 실제로 작업한 순서대로 정리해 보겠습니다.

1. 먼저, 기본 인스턴스는 얼마나 주나요?

OCI의 Always Free(평생 무료) 티어는 생각보다 후합니다. 디스크(블록 스토리지) 기준으로 무료 한도는 이렇습니다.

항목 무료 한도
블록 스토리지 총량 200GB (부트 볼륨 + 추가 블록 볼륨 합산)
부트 볼륨 최소 크기 50GB
블록 볼륨 개수 한도(200GB) 안에서 자유롭게

여기서 핵심은 "200GB는 부트 볼륨과 추가 볼륨을 모두 합친 값" 이라는 점입니다.

그런데 인스턴스를 처음 만들면 부트 볼륨이 보통 46~47GB 정도로 잡혀 있습니다. 즉 200GB를 다 받은 게 아니라, 150GB 이상을 그냥 남겨두고 있는 셈이죠. 이 남은 용량을 두 가지 방법으로 끌어다 쓸 수 있습니다.

  • 방법 A. 기존 부트 볼륨을 더 크게 확장 (예: 47GB → 100GB)
  • 방법 B. 새 블록 볼륨을 추가로 만들어 별도 디스크로 붙이기 (예: 100GB를 /data로)

저는 두 가지를 다 적용해서 부트 100GB + 블록 100GB = 200GB로, 무료 한도를 꽉 채워 사용했습니다. 순서대로 보겠습니다.

2. 단계 — 부트 볼륨 확장하기 (47GB → 100GB)

2-1. OCI 콘솔에서 볼륨 크기 변경

먼저 웹 콘솔에서 볼륨의 "선언된 크기"부터 키워줍니다.

  1. OCI 콘솔 → Compute(컴퓨트) → Instances(인스턴스) → 내 인스턴스 선택
  2. 좌측 Resources → Boot Volume(부트 볼륨) 클릭 → 볼륨 이름 클릭
  3. 우측 상단 Edit(편집)Volume Size(볼륨 크기)100GB로 입력 후 저장
⚠️ 콘솔에서 크기를 키워도, OS는 아직 늘어난 걸 모릅니다. 디스크는 100GB가 됐지만 파티션과 파일시스템은 그대로라서, 아래 OS 작업까지 해줘야 실제로 공간이 늘어납니다.

2-2. 서버에 SSH로 접속해서 파일시스템까지 늘리기

콘솔에서 키운 용량을 리눅스가 인식하도록 rescan → 파티션 확장 → 파일시스템 확장 3단계를 진행합니다.

# 1) 디스크 변경사항을 OS에 다시
  인식시키기
  echo 1 | sudo tee /sys/class/block/sda/device/rescan

  # 2) 파티션(sda1)을 디스크 끝까지 확장
  sudo growpart /dev/sda 1

  # 3) 파일시스템을 파티션 크기에 맞게 확장 (ext4 기준)
  sudo resize2fs /dev/sda1

이제 확인해 보면 루트 디스크가 늘어나 있습니다.

$ df -h /
  Filesystem      Size  Used Avail Use% Mounted on
  /dev/sda1        97G   44G   53G  46% /

growpartresize2fs 명령이 없다면 아래로 설치하시면 됩니다.

sudo apt update && sudo apt   install -y cloud-guest-utils e2fsprogs

3. 단계 — 새 블록 볼륨 100GB 추가해서 붙이기

부트 볼륨만 키워도 되지만, 저는 데이터·도커·DB는 별도 디스크로 분리하는 걸 선호합니다. 부트 볼륨이 꽉 차서 부팅이 안 되는 사고를 막을 수 있거든요. 그래서 100GB짜리 블록 볼륨을 따로 만들어 /data로 붙였습니다.

3-1. OCI 콘솔에서 블록 볼륨 생성 & 연결

  1. 콘솔 → Storage(스토리지) → Block Volumes(블록 볼륨)Create Block Volume
    • 크기 100GB, 가용 도메인은 인스턴스와 동일하게 (안 그러면 연결 불가)
  2. 다시 인스턴스 → Resources → Attached Block VolumesAttach Block Volume
    • Attachment type: Paravirtualized(반가상화) 선택 (별도 iSCSI 설정이 필요 없어 가장 간편합니다)

3-2. 서버에서 포맷하고 마운트하기

연결되면 새 디스크가 /dev/sdb로 보입니다.

# 새 디스크(sdb)가 보이는지 확인
  lsblk
  # sdb   8:16   0  100G  0 disk   ← 100GB 디스크가 새로 보이면 OK

  # ext4로 포맷 (라벨을 'data'로 지정)
  sudo mkfs.ext4 -L data /dev/sdb

  # 마운트할 폴더 만들고 붙이기
  sudo mkdir -p /data
  sudo mount /dev/sdb /data

3-3. 재부팅해도 자동 마운트되게 fstab 등록

이 단계를 빼먹으면 재부팅 시 디스크가 안 붙어서 서비스가 죽을 수 있으니 꼭 해주세요.

# 디스크 UUID 확인
  sudo blkid -s UUID -o value /dev/sdb
  # 예: f112d479-21ef-4a5c-b357-230f7d665277

/etc/fstab 맨 아래에 아래 한 줄을 추가합니다. (UUID는 위에서 확인한 값으로)

UUID=f112d479-21ef-4a5c-b357-230f7d665277  /data  ext4  defaults,_netdev,nofail  0
  2
💡 nofail 옵션이 핵심입니다. 혹시 디스크 연결이 늦어지거나 문제가 생겨도 부팅 자체는 막지 않도록 해주는 안전장치입니다. 클라우드 블록 볼륨은 _netdev도 같이 넣어주는 걸 권장합니다.

마지막으로 설정이 맞는지 미리 검증하고 마무리합니다.

sudo mount -a   # 에러 없이
  넘어가면 fstab 설정 정상
  df -h /data

4. 결과 정리 — 무료로 200GB 꽉 채우기

여기까지 하면 무료 한도(200GB)를 알뜰하게 다 쓰게 됩니다.

볼륨 마운트 크기 용도
부트 볼륨 /dev/sda1 / 100GB OS·기본 시스템
블록 볼륨 /dev/sdb /data 100GB 도커·DB·데이터
합계   200GB / 200GB 무료 한도 소진
$ df -h / /data
  Filesystem      Size  Used Avail Use% Mounted on
  /dev/sda1        97G   63G   34G  66% /
  /dev/sdb         98G   30G   64G  32% /data

처음 45GB로 쩔쩔매던 것에 비하면 정말 숨통이 트입니다.

5. 보너스 — 디스크 말고 vCPU·메모리도 무료로 더 줍니다

사실 OCI Always Free에서 무료로 늘릴 수 있는 건 디스크만이 아닙니다. ARM 기반(Ampere A1) 인스턴스는 아래까지 평생 무료입니다.

자원 Always Free 한도
OCPU(vCPU) 최대 4개
메모리(RAM) 최대 24GB
블록 스토리지 200GB

그런데 인스턴스를 만들 때 기본값으로 두면 1 vCPU / 6GB RAM 정도만 받는 경우가 많습니다. 즉, vCPU 3개와 RAM 18GB를 그냥 비워두고 있는 셈이죠. 이건 콘솔에서 인스턴스를 재구성(Reshape / Edit) 하면 무료 한도 안에서 1→4 vCPU, 6→24GB까지 올릴 수 있습니다. (변경 시 재부팅 한 번 필요합니다.)

또 하나, 메모리가 빠듯하다면 swap 파일을 만들어두는 것도 좋습니다. RAM을 올리지 않아도 디스크를 임시 메모리처럼 써서 OOM(메모리 부족) 사고를 줄여줍니다.

# 4GB swap 파일 만들기
  sudo fallocate -l 4G /swapfile
  sudo chmod 600 /swapfile
  sudo mkswap /swapfile
  sudo swapon /swapfile

  # 재부팅 후에도 유지되게 fstab 등록
  echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

마무리

정리하면, OCI 무료 인스턴스는 기본값만 쓰면 한도의 절반도 안 쓰고 있는 경우가 대부분입니다. 디스크는 200GB까지(부트 확장 + 블록 추가), vCPU는 4개, RAM은 24GB까지 추가 비용 0원으로 끌어다 쓸 수 있으니, 답답하셨던 분들은 꼭 한 번 확장해 보시길 권합니다.

작업 자체도 콘솔에서 크기 키우고 → 서버에서 growpart / resize2fs 또는 mkfs / mount 몇 줄이면 끝이라 생각보다 간단합니다. 다만 fstabnofail 옵션과 자동 마운트 검증(mount -a)은 꼭 챙기셔서, 재부팅 사고 없이 안전하게 늘리시길 바랍니다. ^^

728x90
반응형

+ Recent posts