오라클 클라우드 무료 티어로 24시간 서버 공짜로 굴리기

오라클 클라우드 무료 티어(Always Free)로 상시 서버를 진짜 공짜로 굴리는 법. 공인 IP·서브넷·과금 함정과 GCP 비교

개인 프로젝트 하나를 24시간 돌릴 서버가 필요했다. 근데 홈 PC를 계속 켜두는 건 싫었다. 전기세도 아깝고, 컴퓨터가 꺼지면 끊기니까. “진짜 평생 공짜”인 상시 VM을 찾다가 오라클 클라우드로 갔다.

“12개월 무료”가 아니라 “평생 무료”라는 것

클라우드 무료 티어는 크게 둘로 나뉜다. 12개월만 무료(AWS EC2, Azure B1S)와 평생 무료(Always Free). 개인 프로젝트를 계속 돌릴 거면 1년 뒤 청구서가 날아오는 쪽은 답이 아니다.

오라클 클라우드의 Always Free는 기간 제한이 없다. 한도 안에서만 쓰면 계속 $0다. 대략 이렇게 들어있다.

자원 무료 한도
컴퓨트 (AMD) VM.Standard.E2.1.Micro (1 OCPU·1GB) 2대
컴퓨트 (ARM) VM.Standard.A1.Flex 4 OCPU·24GB까지
블록 스토리지 총 200GB
공인 IPv4 무료
아웃바운드(egress) 10TB/월

작은 상시 서비스 하나 돌리기엔 차고 넘친다. ARM(A1)은 4코어 24GB까지 공짜라 훨씬 넉넉한데, 인기가 많아 “용량 없음”으로 생성이 자주 막힌다. 나는 E2.1.Micro(1GB)로 갔다. 대신 메모리가 작아서 나중에 swap을 붙여야 했다(뒤에서).

📸 이건 예시 사진이고 실제로는 E2.1.Micro 이걸로 만들었다.

image.png

왜 AWS·GCP 말고 오라클이었나 — 핵심은 “공인 IP”

메이저는 AWS·GCP·Azure인데, 바깥으로 나가는 통신(아웃바운드)이 필요한 서버를 진짜 공짜로 굴리려니 오라클밖에 안 남았다. 이유가 하나 있다.

서버가 외부 API를 호출하거나 패키지를 받으려면 인터넷으로 나갈 길이 있어야 한다. 그러려면 보통 공인 IP나 NAT 게이트웨이가 필요하다. 그런데 —

  • GCP e2-micro도 평생 무료지만, 2024년 2월부터 공인 IPv4 주소에 과금(시간당 요금, 월 ~$3)한다. 게다가 무료 egress가 월 1GB로 빡빡하다. 그래서 아웃바운드가 필요한 서버는 사실상 $0가 안 나온다.
  • AWS·Azure는 무료 VM 자체가 12개월 한정이다.
  • 오라클은 공인 IP가 무료고 egress도 10TB/월이라, 아웃바운드 서버가 진짜 $0로 돌아간다.
상시 무료 VM 공인 IPv4 아웃바운드
오라클 평생 무료 10TB/월
GCP 평생(e2-micro) ~$3/월 1GB/월
AWS / Azure 12개월 이후 과금

나도 처음엔 “메이저 중 무료인 GCP로 하지 뭐” 하고 GCP에 인스턴스까지 만들었다가, 공인 IP 과금을 뒤늦게 알고 갈아엎었다. 인바운드는 터널로 우회할 수 있어도, 아웃바운드는 우회가 안 된다는 걸 놓쳤던 거다.

과금 안 나게 만드는 체크리스트

인스턴스 만들 때 아래만 지키면 청구서가 안 날아온다.

  • Shape: VM.Standard.E2.1.Micro (또는 A1.Flex를 4 OCPU/24GB 이내로). “Always Free-eligible” 뱃지 확인.
  • 부팅 볼륨: 기본값(약 46.6GB, 표준) 그대로. 200GB 한도 안이라 무료. 추가 블록 볼륨은 만들지 않기.
  • 리전: 가입 때 정한 홈 리전. Always Free 자원은 홈 리전에서만 무료다.
  • 공인 IPv4: “할당”으로. 오라클은 공짜고, 이게 아웃바운드를 뚫어준다(GCP와 정반대라 헷갈리기 쉽다).
  • 예산 알림: 결제 → 예산에서 $1 예산 + 알림을 걸어둔다. 실수로 뭐 하나 잘못 켜서 과금되면 즉시 통보 온다.

확인해야되는 항목 5가지

오라클 클라우드 UX가 낯설어서,,세팅하다 고민했던 것들.

1. “예상 비용 보기”에 요금이 뜬다 — 근데 실청구는 0

인스턴스 만들기 마지막에 “예상 비용 보기”를 눌렀더니 부트 볼륨 $2.76/월이 떴다. 분명 무료 티어인데?

알고 보니 오라클 견적기는 정가(list price)만 보여주고 Always Free 할인을 안 뺀다. 컴퓨트는 $0로 뜨는데, 스토리지는 정가가 찍힌다. 실제 청구는 200GB 한도 안이라 0원이다. 견적기 숫자에 놀라지 말자. 대신 $1 예산 알림으로 실제 청구를 감시하면 확실하다.

📸

image.png

2. 공인 IP가 안 붙는다

인스턴스를 만들었는데 공인 IP가 없었다. 다시 보니 생성 마법사가 만든 서브넷이 프라이빗이었고, 프라이빗 서브넷의 VNIC엔 공인 IP를 아예 못 붙인다.

VCN을 통째로 지우려다 그것도 잘 안 돼서(종료 직후엔 리소스가 물려 있어 삭제가 막힌다), 결국 VCN은 그대로 두고 퍼블릭 서브넷만 새로 하나 만들어서 거기에 인스턴스를 올렸다. 생성 화면에서 서브넷 = 퍼블릭 + “퍼블릭 IPv4 주소 할당” 체크가 핵심.

3. 공인 IP가 없으면 인터넷 자체가 안 나간다

이게 2번이랑 이어지는데, 공인 IP가 없으면 SSH만 못 붙는 게 아니라 VM이 바깥으로 나가는 통신 자체가 안 된다. apt 업데이트도, docker pull도 다 실패한다. NAT 게이트웨이를 붙이면 되지만 그건 별도 비용이라 무료 취지랑 안 맞는다. 오라클에선 답이 간단하다 — 공인 IP는 무료니까 그냥 붙이면 된다.

4. 1GB RAM은 도커 빌드가 버겁다 → swap

E2.1.Micro는 메모리가 1GB뿐이라, 컨테이너 이미지 빌드 중에 메모리가 모자라 뻗을 수 있다. swap 2GB를 만들어두니 빌드도 런타임도 안정적이었다.

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile && sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

5. 안 쓰면 인스턴스를 회수당할 수 있다

오라클 Always Free는 너무 놀고 있는(idle) 인스턴스를 회수하는 정책이 있다. 내 서비스는 CPU를 거의 안 써서 회수 대상이 될 수 있었다. 해결은 계정을 “Pay As You Go”로 업그레이드하는 것. 업그레이드해도 Always Free 한도 안에선 여전히 $0인데, idle 회수는 면제된다.

보안 — 뭘 열어야 하나

의외로 여기서 손댈 게 별로 없다. 오라클 VM은 클라우드 방화벽(VCN 보안 목록)이 기본으로 SSH(22)만 열고 나머지를 다 막아둔다. 즉 만들자마자 “SSH만 열린” 상태다. ICMP는 ping 명령어가 쓰는 프로토콜인데 보수적으로 관리하고 싶으면 ICMP도 막으면 된다. 나는 굳이 안막았다.

  • 서비스를 인터넷에 직접 노출할 거면, 그 포트만 보안 목록에 추가한다.
  • 하지만 아웃바운드 방식(예: Cloudflare Tunnel)으로 트래픽을 받으면 인바운드 포트를 하나도 안 열어도 된다. 서버가 바깥으로 연결을 만들어서 그 길로 요청이 들어오기 때문. 포트를 안 여는 게 당연히 더 안전하다. 나는 이 방식이라 SSH(22) 외엔 아무것도 안 열었다.

📸 기본 인바운드 규칙

image.png

FAQ

Q. 오라클 무료 티어, 진짜 평생 공짜인가요?

Always Free는 기간 제한이 없다. 단 무료 한도(스펙·리전·200GB 등)를 넘기면 넘긴 만큼 과금된다. 한도 안이면 계속 $0. 지금까지는 그런데 이후에 오라클 정책이 바뀌면 어떻게 될 지 몰루

Q. 카드 등록하면 돈이 나가나요?

카드는 본인 확인용이고, 한도 안에서 쓰면 청구는 0이다. 불안하면 $1 예산 알림을 걸어두면 실제로 뭐라도 과금되는 순간 바로 알 수 있다.

Q. 안 쓰면 인스턴스를 지운다던데요?

Always Free는 저사용 인스턴스 회수 정책이 있다. Pay As You Go로 업그레이드하면(그래도 한도 안이면 무료) 회수 대상에서 빠진다.

정리

  • 아웃바운드가 필요한 상시 서버를 진짜 $0로 굴릴 거면, 공인 IP·egress가 무료인 오라클 Always Free가 사실상 유일한 선택이다. (GCP는 공인 IP 과금, AWS·Azure는 1년 한정)
  • 만들 때 공인 IP 할당 + 표준 부트 볼륨 + $1 예산 알림 세 개만 챙기면 과금 안 난다.
  • 견적기의 요금 표시는 정가라 무시하고, 실청구는 예산 알림으로 감시하면 된다.

바로 할 것 두 가지 — ① 인스턴스 만들 때 공인 IP를 꼭 “할당”으로(안 그러면 인터넷도 안 나간다), ② 만들자마자 $1 예산 알림부터 걸어두기.

댓글

익명 댓글입니다. 닉네임과 내용이 저장되며, 서로 존중하는 표현을 부탁드려요. 부적절하거나 광고성 댓글은 예고 없이 삭제될 수 있습니다.