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
반응형
728x90

목표 : 나만의 AI에이전트 만들기

부목표 :  보안이슈가 없도록  로컬 서버에 구축된 AI로,  특정인에게 공급, 최대한 무료 즉 비용이 발생하지 않도록.

 

수행 후 파악된 내용

     - 서버는 클라우드에 구축,  무료로 사용할 수 있는 것은 현재  오라클 클라우드임.  완전 무료형은 허가가 안 떨어진다. 차라리 유료버전으로 한 후 할당 받고, 무료 용량 범위 내에서 사용.

     - openCLAW는 중간 연결자의 역할이다. 연결대상은 사용자의 입력을 위한 인터페이스들이다. 이러한 인터페이스에는 채팅 앱(들)이 있다. 또 다른 연결 대상은 백엔드에서  응답/대응을 하는 AI모델들이다.  이러한 AI모델은 자체 구축을 한 후 연결을 할 수도 있고, API를 통해 흔한 Claude, 제미나이, 챗GPT등을 연결하면 된다.  이에 openCLAW는  입력 처리와 백엔드 구성에 대한 아주 많은 다양한 조합 또는 선택을 제공하며, 개발자는 이를 선택해야 한다.  구축 단계에서는 웹 문서기반으로 진행하는 것이 맞다. 문서가 빈약한, 예를 들면 Docker환경으로 구성은 상당히 어렵다.  만약 Docker 와 리눅스 OS를 완벽히 이해를 하고 있으면 물론 매핑해서 이해하면 되니 문제가 없을 것이다.

    - 채팅 앱 :  채널으로서 사용자이 입력을 받기 위한 것이다. 한국앱(카카오톡)은 기본 설정환경에 포함되어 있지 않다. 가장 널리 쓰이고, 설치 문서에도 있는목표 : 나만의 AI에이전트 만들기

 

부목표 : 보안이슈가 없도록 로컬 서버에 구축된 AI로, 특정인에게 공급, 최대한 무료 즉 비용이 발생하지 않도록.

 

 

 

수행 후 파악된 내용

 

     - 서버는 클라우드에 구축, 무료로 사용할 수 있는 것은 현재 오라클 클라우드임. 완전 무료형은 허가가 안 떨어진다. 차라리 유료버전으로 한 후 할당 받고, 무료 용량 범위 내에서 사용.

 

     - openCLAW는 중간 연결자의 역할이다. 연결대상은 사용자의 입력을 위한 인터페이스들이다. 이러한 인터페이스에는 채팅 앱(들)이 있다. 또 다른 연결 대상은 백엔드에서 응답/대응을 하는 AI모델들이다. 이러한 AI모델은 자체 구축을 한 후 연결을 할 수도 있고, API를 통해 흔한 Claude, 제미나이, 챗GPT등을 연결하면 된다. 이에 openCLAW는 입력 처리와 백엔드 구성에 대한 아주 많은 다양한 조합 또는 선택을 제공하며, 개발자는 이를 선택해야 한다. 구축 단계에서는 웹 문서기반으로 진행하는 것이 맞다. 문서가 빈약한, 예를 들면 Docker환경으로 구성은 상당히 어렵다. 만약 Docker 와 리눅스 OS를 완벽히 이해를 하고 있으면 물론 매핑해서 이해하면 되니 문제가 없을 것이다. AI모델은 openRouter를 연결했다. 

 

    - 채팅 앱 : 채널으로서 사용자이 입력을 받기 위한 것이다. 한국앱(카카오톡)은 기본 설정환경에 포함되어 있지 않다. 가장 널리 쓰이고, 설치 문서에도 있는 텔레그램(Telegram)은 앱 설치 과정에 한국 전화 번호를 입력하면 2,000원 후원(?)을 해야 앱이 설치된다.  WhatsApp앱이나 Wechat은 내가 사용을 해보지 않았거나, 그 앱 설치 및 설정에 대해서도 아는 것이 없어서,  Discord앱으로 결정했다. 이 앱도 카카오톡 앱에 비하면 설정요소가 많았다.  텔레그램에서는 예전에 bot을 만들어 초대하고 연결하고 했던 경험이 있었는데, 다른 앱에서는 그런 경험이 없었기에,  연동 테스트 과정에서 전체적인 흐름이 파악되지 않은 상태에서 경험적 설정과 테스트 과정에서 많은 시간이 소요되었다.

 

   - AI도구 :  Claude.ai, 제미나이, 챗GPT, CoPliot 등을 사용해 보았는데, 가장 명확하고 단계적으로 잘 알려준 것은 perplexity였다. Perplexity는 아무래도 웹기반으로 검색과 그 근거 자료를 보여 주는 측면에서  설치 매뉴얼 등에는 성능이 다른 AI도구(들)보다 우수한 것으로 경험했다.

 

 

서버 구축 및 서버에 openclaw 설치 및  그 환경 설정을 통해 Discord와 연동 후, 아래와 같이 채팅에 성공했다.

 

 

728x90
반응형

+ Recent posts