오라클 클라우드 평생 무료 서버 구축부터 안정적인 운영까지 실전 팁

개인 개발 프로젝트나 블로그 운영, 테스트용 웹 서버가 필요할 때 가장 먼저 고려되는 서비스 중 하나가 바로 '오라클 클라우드(Oracle Cloud Infrastructure, OCI)'입니다. 주요 클라우드 제공업체들이 일정 기간만 무료 체험을 제공하는 것과 달리, 오라클은 일정 사양 이하의 리소스를 상시 무료로 제공하는 'Always Free' 정책을 운영하고 있어 꾸준한 관심을 받고 있습니다.

특히 ARM 기반의 Ampere 인스턴스는 무료라고 믿기 힘들 만큼 넉넉한 컴퓨팅 자원을 제공하기 때문에 가성비를 중시하는 개발자와 개인이 서버를 운영하기에 최선의 선택지로 꼽힙니다. 하지만 제대로 된 설정 방법과 운영 노하우를 모르면 접속이 불가능해지거나 인스턴스가 비활성화되는 불편을 겪을 수 있습니다. 이번 글에서는 오라클 클라우드 무료 서버를 효율적으로 세팅하고, 문제없이 장기적으로 운영하는 실전 팁을 정리해 드립니다.

1. 무료 인스턴스 사양 선택 및 생성 노하우

오라클 클라우드에서 제공하는 대표적인 무료 컴퓨팅 리소스를 정확히 이해하고 구성하는 것이 첫 번째 단계입니다.

  • AMD 기반 Micro 인스턴스: 1 OCPU와 1GB 메모리를 제공하는 인스턴스 2개를 무료로 생성할 수 있습니다. 스펙이 낮기 때문에 가벼운 DNS 서버나 단순 리버스 프록시, 캐시 서버용으로 적합합니다.
  • ARM 기반 Ampere A1 Compute 인스턴스: 최대 4 OCPU와 24GB 메모리를 무료로 사용할 수 있습니다. 이 자원은 1개의 대형 인스턴스로 몰아서 생성할 수도 있고, 2 OCPU / 12GB 메모리 인스턴스 2개 등으로 분할하여 생성할 수도 있습니다.

서버를 처음 생성할 때 유의할 점은 '부트 볼륨(용량)' 설정입니다. 오라클 클라우드는 무료 계정에 총 200GB의 부트 볼륨 용량을 제공합니다. 만약 4개의 인스턴스를 각각 생성하면서 기본 설정대로 부트 볼륨을 과도하게 잡으면 200GB 한도를 초과해 의도치 않은 비용이 발생할 수 있습니다. 인스턴스 생성 시 부트 볼륨 용량을 50GB 내외로 균등하게 배분하여 설정하는 것이 안전합니다.

또한 인기 있는 수신 지역(리전)에서는 ARM 인스턴스 재고가 부족하여 인스턴스 생성 시 오류가 발생하는 경우가 자주 있습니다. 이때는 자동 생성 스크립트를 활용하거나 시간대를 달리하여 재시도하는 편이 좋습니다.

2. 외부 접속 불가 문제를 해결하는 네트워크 및 방화벽 설정

오라클 클라우드 서버를 처음 개설한 후 많은 사용자가 겪는 대표적인 문제는 "웹서버를 띄웠는데 외부에서 접속이 안 된다"는 점입니다. 오라클 클라우드는 이중 방화벽 구조를 취하고 있으므로 두 가지 설정을 모두 완료해야 합니다.

(1) OCI 수신 규칙(Ingress Rules) 설정

오라클 클라우드 콘솔의 VCN(가상Cloud 네트워크) 설정에서 트래픽을 허용해야 합니다.

  1. OCI 콘솔 메뉴에서 Networking -> Virtual Cloud Networks로 이동합니다.
  2. 사용 중인 VCN과 연동된 Security Lists(보안 목록)를 클릭합니다.
  3. Ingress Rules(수신 규칙)를 추가합니다.
  • 소스 CIDR: 0.0.0.0/0 (전체 허용)
  • IP 프로토콜: TCP
  • 대상 포트 범위: 80(HTTP), 443(HTTPS), 또는 사용하려는 서비스 포트(예: 8080, 3000)

(2) OS 내부 방화벽(iptables / ufw) 해제

클라우드 콘솔에서 포트를 열었더라도 인스턴스 내부의 리눅스 OS 방화벽이 차단하고 있으면 접속되지 않습니다. 우분투(Ubuntu) 기준, 기본 설정되어 있는 iptables 규칙이 외부 접속을 막는 경우가 많습니다.

SSH로 서버에 접속한 후 아래 명령어를 실행하여 포트를 허용해 주어야 합니다.

# Ubuntu 환경 예시 (UFW 사용 시)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

만약 UFW 설정 후에도 포트가 열리지 않는다면 기본 iptables 체인 정책을 확인하고 수신 규칙을 직접 업데이트하거나, 오라클 기본 네트워크 정책 파일(netfilter-persistent)을 재설정해야 합니다.

3. 휴면 인스턴스 회수 방지 및 리소스 최적화 운영 전략

오라클 클라우드는 사용되지 않고 방치된 무료 리소스를 회수하는 정책을 시행하고 있습니다. 일정 기간 동안 CPU 사용률, 메모리 사용량, 네트워크 트래픽이 일정 수준 이하(예: CPU 활용률 2% 미만)로 지속되면 해당 인스턴스를 비활성화하거나 회수할 수 있습니다.

이를 방지하고 서버를 안정적으로 유지하기 위해 다음과 같은 실전 팁을 적용해 보세요.

(1) 실제 서비스 탑재 운영

단순히 서버를 켜두기만 하는 것보다 실제로 가벼운 서비스를 올려두는 것이 가장 좋은 해결책입니다.

  • Docker 기반 서비스 구축: 차임벨 알림 서비스, 개인 포트폴리오 웹사이트, 데이터 수집용 봇(Bot), RSS 리더 등을 띄워 최소한의 리소스가 꾸준히 소모되도록 합니다.
  • 주기적 작업(Cron Job) 등록: 백업 작업이나 시스템 상태 점검 스크립트를 주기적으로 실행하도록 셸 스크립트를 작성하여 crontab에 등록합니다.

(2) 스왑 메모리(Swap Memory) 설정

무료로 제공되는 1GB 메모리의 AMD 인스턴스를 활용할 경우 메모리 부족(OOM)으로 프로세스가 강제 종료될 수 있습니다. 이를 방지하기 위해 디스크 공간 일부를 메모리처럼 사용하는 스왑 공간을 반드시 설정해야 합니다.

# 2GB 크기의 스왑 파일 생성 예시
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 부팅 시 자동 적용을 위해 /etc/fstab에 추가
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

4. 미연의 비용 발생을 막는 결제 방어 팁

무료 티어를 사용할 때 가장 두려운 부분은 "혹시 나도 모르게 돈이 나가면 어쩌지?" 하는 점입니다. 오라클 클라우드에서 안전하게 무료 범위 내 운영을 유지하려면 다음 두 가지를 준수해야 합니다.

  1. 예산 알림(Budgets) 설정: 클라우드 콘솔의 Governance & Administration -> Cost Management -> Budgets 메뉴로 이동하여 월 예산을 1원(또는 1달러)으로 설정하고, 비용이 발생하기 시작하면 이메일로 알림을 받도록 설정합니다.
  2. Pay-As-You-Go(유료 전환) 계정 활용 고려: 유료 계정으로 전환하더라도 사용량이 'Always Free' 제공량을 넘지 않으면 비용이 청구되지 않습니다. 오히려 유료 전환 계정은 인스턴스 생성 시 리소스 할당 우선순위를 받기 때문에 ARM 인스턴스 생성 불량 문제를 해결하는 데 큰 도움이 됩니다. 다만 유료 전환 후에는 실수로 유료 옵션(예: 고성능 스토리지, 유료 전용 OS 등)을 선택하지 않도록 주의해야 합니다.

—

오라클 클라우드의 평생 무료 리소스는 올바르게 설정하고 운영한다면 개인 프로젝트와 학습을 위한 최상의 환경을 제공해 줍니다. 초기 네트워크 설정 및 방화벽 해제, 스왑 메모리 구성, 그리고 적절한 리소스 활용 패턴만 유지해 준다면 추가 비용 부담 없이 가치 있는 나만의 클라우드 서버를 지속적으로 운용할 수 있을 것입니다.