Oracle Cloud 무료 서버 완전 활용법 — Always Free 티어의 모든 것

게시일: 2025년 8월 12일 · 15분 읽기

AWS Free Tier는 1년 후 과금 폭탄이 온다. Oracle Cloud는 진짜 평생 무료다

이것은 사실이다. Oracle Cloud의 Always Free 티어는 구독을 취소하지 않는 한 절대 비용이 청구되지 않는다. 반면 AWS는 1년 후 자동으로 과금이 시작된다.

내가 Oracle Cloud를 도입한 지 2년이 되었고, 단 한 푼도 비용을 내지 않았다. 이 글에서는 실제 경험을 바탕으로 Oracle Cloud Always Free를 완벽히 활용하는 방법을 다룬다.

계정 생성 시 주의사항

Oracle Cloud 가입은 까다롭다. 신용카드 정보가 필요하고, 유효성 검사도 엄격하다.

필요한 것:

주의: VPN을 사용하면 가입이 거절될 가능성이 높다. VPN 없이 가입하는 것을 추천한다.

계정 생성 후 서비스를 조회할 때, "Always Free" 라벨이 있는 것만 사용하면 된다. 그 외의 서비스를 만들면 언제든 과금될 수 있다.

Always Free 리소스

영구적으로 무료인 리소스들:

이 정도면 중소 웹서비스를 충분히 운영할 수 있다.

ARM 인스턴스 생성

Oracle Cloud의 강점은 4개 코어 24GB 메모리를 무료로 준다는 것이다. 다른 클라우드는 상상도 할 수 없는 사양이다.

생성 단계:

  1. Oracle Cloud 콘솔 -> Compute -> Instances
  2. Create Instance 클릭
  3. Image: "Ubuntu 22.04" (또는 최신 LTS)
  4. Shape: Ampere (ARM) A1 Compute 선택
  5. Networking: Default VCN 사용
  6. SSH Key: 공개 키 업로드 (또는 생성)

인스턴스가 생성되면 공개 IP가 할당된다. SSH로 접속한다:

ssh ubuntu@INSTANCE_PUBLIC_IP

방화벽(Security List) 설정

인스턴스가 생성되어도 기본적으로 대부분의 포트가 닫혀 있다. 필요한 포트만 열어야 한다.

Oracle Cloud의 방화벽은 Security List로 관리된다:

  1. Networking -> Virtual Cloud Networks
  2. Default VCN 선택
  3. Security List 선택
  4. Ingress Rules 추가
# 웹서버에 필요한 규칙들
HTTP (80): 0.0.0.0/0에서 허용
HTTPS (443): 0.0.0.0/0에서 허용
SSH (22): 나의 IP에서만 허용 (0.0.0.0/0 권장하지 않음)
Custom TCP (3000): 내 애플리케이션 포트

Docker 설치

인스턴스에 접속한 후 Docker를 설치한다:

#!/bin/bash
# 시스템 업데이트
sudo apt-get update
sudo apt-get upgrade -y

# Docker 설치
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 현재 사용자를 docker 그룹에 추가
sudo usermod -aG docker $USER

# 적용을 위해 로그아웃 후 다시 로그인
exit
ssh ubuntu@INSTANCE_PUBLIC_IP

# Docker 확인
docker --version
docker run hello-world

PM2로 Node.js 애플리케이션 관리

Docker를 쓰지 않고 직접 Node.js를 실행하려면 PM2를 사용한다. PM2는 프로세스 관리자로, 애플리케이션이 죽으면 자동으로 재시작한다.

#!/bin/bash
# Node.js 설치 (NVM 사용)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 18

# PM2 전역 설치
npm install -g pm2

# 애플리케이션 시작
pm2 start app.js --name "myapp"

# 부팅 시 자동 시작되도록 설정
pm2 startup
pm2 save

# 상태 확인
pm2 status
pm2 logs myapp

PM2의 주요 명령어:

# 모든 프로세스 확인
pm2 list

# 로그 보기 (실시간)
pm2 logs myapp

# 재시작
pm2 restart myapp

# 모니터링 대시보드
pm2 monit

# 삭제
pm2 delete myapp

영구 저장소 (Block Storage)

인스턴스에는 기본 부팅 볼륨이 있지만, 데이터를 위해 추가 스토리지가 필요하다. Always Free 플랜에서는 200GB까지 무료다.

#!/bin/bash
# 블록 스토리지 생성 (Oracle Cloud 콘솔에서)
# -> Block Storage -> Block Volumes -> Create Block Volume
# 크기: 100GB, 가용성 도메인: 인스턴스와 동일

# 인스턴스에 연결 (콘솔에서)
# Compute -> Instances -> 인스턴스 선택 -> Attached Block Volumes -> Attach

# 인스턴스에서 마운트
lsblk  # 새 디스크 확인 (예: /dev/sdb)
sudo mkfs.ext4 /dev/sdb
sudo mkdir -p /mnt/data
sudo mount /dev/sdb /mnt/data
sudo chown ubuntu:ubuntu /mnt/data

# 부팅 시 자동 마운트
echo '/dev/sdb /mnt/data ext4 defaults 0 2' | sudo tee -a /etc/fstab

모니터링 설정

Oracle Cloud는 기본적으로 모니터링 서비스를 제공한다. Monitoring 탭에서 CPU, 메모리, 네트워크 사용량을 확인할 수 있다.

더 상세한 모니터링을 위해 Prometheus나 Grafana를 설치할 수도 있다:

# Docker로 Prometheus + Grafana 설정
docker run -d   --name prometheus   -p 9090:9090   -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml   prom/prometheus

docker run -d   --name grafana   -p 3000:3000   grafana/grafana

백업 전략

Always Free 계정이므로 백업도 신중해야 한다. 월 1-2회 수동 백업으로 충분하다:

#!/bin/bash
# 데이터 백업 (Object Storage로)
sudo apt-get install -y awscli

# AWS CLI를 Oracle Cloud와 호환되도록 설정
aws s3 sync /mnt/data s3://my-backup-bucket/ --endpoint-url https://your-tenancy.compat.objectstorage.your-region.oraclecloud.com

비용 모니터링

Oracle Cloud 콘솔에서 Costs 탭을 열면 현재 월의 예상 비용을 볼 수 있다. Always Free 플랜을 사용하면 항상 0이어야 한다.

만약 비용이 청구되려고 하면, 즉시 해당 리소스를 확인하고 삭제해야 한다. 보통은 실수로 유료 인스턴스를 생성했을 때 발생한다.

실제 경험

내가 Oracle Cloud를 2년 사용한 결과:

유일한 단점은 인스턴스가 가끔 느릴 수 있다는 것이다. 4개 코어가 과다 공유되기 때문이다. 하지만 나의 용도(테스트 서버, 개인 프로젝트)에는 충분하다.

결론

Oracle Cloud Always Free는 평생 무료 서버가 필요한 개발자의 구세주다. AWS보다 훨씬 후한 리소스를 제공하면서도 비용은 0이다. 가입 과정이 까다로운 것이 유일한 단점이다.

iL
ian.lab

실무 개발자입니다. 현장에서 겪은 문제와 해결 과정을 기록합니다. 오류 제보는 연락처로 보내주세요.