OCI Ampere A1 인스턴스 만들기: Ubuntu·SSH·네트워크 설정
2025년 6월 Oracle Cloud 콘솔에서 Ubuntu 24.04 기반 Ampere A1 인스턴스를 직접 만들었습니다. 당시 화면에는 4 OCPU·24GB가 Always Free로 표시됐고, 제 서버의 부트 볼륨은 100GB로 지정했습니다. 아래 캡처에 당시 선택을 남겼으며, 지금 따라 만들 때 다시 확인해야 할 무료량과 네트워크 조건은 별도로 설명합니다.
3줄 요약
- Oracle Always Free 문서는 A1을 2 OCPU·12GB로 안내하지만, 유료 테넌시는 가격표의 월 무료량을 별도로 확인해야 합니다.
- Ubuntu Arm 이미지, VM.Standard.A1.Flex, SSH 공개 키, VCN과 부트 볼륨을 확인한 뒤 예상 비용이 무료인지 검토합니다.
- 생성 후에는 SSH 접속·Arm 아키텍처·방화벽·비용 한도를 실제 명령으로 검증해야 합니다.
최종 확인: 2026년 8월 26일
A1 무료량·무료체험 종료 규칙 재확인: 2026-09-08
현재 Oracle 공식 안내는 페이지와 계정 유형에 따라 무료량 표현이 달라 함께 확인해야 합니다. 아래의 2025년 화면은 당시 경험의 기록이며, 현재 계정에 같은 사양이 무료로 적용된다는 보장은 아닙니다.
A1 무료량 안내: Always Free 문서는 월 1,500 OCPU 시간·9,000GB 메모리 시간을 2 OCPU·12GB로 안내합니다. 반면 Oracle 가격표는 유료 테넌시에 월 3,000 OCPU 시간·18,000GB 메모리 시간을 명시합니다. 따라서 모든 계정에 2 OCPU·12GB를 같은 과금 기준으로 적용하면 안 됩니다.
아래 생성 예시는 Always Free 문서의 2 OCPU·12GB 범위를 기준으로 합니다. 공식 페이지의 대상 표현에도 차이가 남아 있으므로, 유료 계정은 가격표와 실제 청구 내역도 함께 확인합니다.
콘솔 화면은 계속 바뀌므로 메뉴 모양보다 각 선택이 무엇을 의미하는지 이해하는 것이 중요합니다. 이 글에서는 인스턴스를 만드는 데서 끝나지 않고 SSH 접속과 Arm 아키텍처, 네트워크 노출, 무료 범위까지 확인합니다.
시작 전에 확인할 것
- Always Free Compute를 만들 홈 리전
- 현재 A1 인스턴스들의 OCPU와 메모리 합계
- 부트 볼륨과 블록 볼륨을 합친 사용량
- 공개키와 개인키의 위치
- SSH 22번 포트를 허용할 내 공인 IP 대역
- 사용할 애플리케이션이 Arm64를 지원하는지 여부
Always Free A1과 관련 블록 볼륨은 홈 리전에서 만들어야 합니다. 홈 리전은 가입 후 바꿀 수 없습니다. Oracle Always Free 문서는 A1의 가용성 도메인 생성 규칙에서 South Korea North(춘천)를 예외로 표시합니다. 이 문구만으로 모든 계정의 신규 생성이 전면 차단됐거나 기존 인스턴스가 회수된다고 단정하지 말고, 가입·생성 직전 콘솔에서 지원 여부와 한도를 확인하세요.
1. Compute 인스턴스 생성 화면 열기
OCI 콘솔에서 Compute → Instances → Create instance로 이동합니다. 메뉴 번역과 배치는 계정 언어와 콘솔 버전에 따라 달라질 수 있습니다.
2. 이름과 Compartment 정하기
인스턴스 이름은 운영 목적을 알 수 있게 정합니다. 예를 들어 blog-a1-prod-01처럼 서비스·Shape·환경·번호를 구분하면 나중에 비용과 장애를 추적하기 쉽습니다.
Compartment도 루트에 모두 몰아넣기보다 서비스별로 나누는 편이 좋습니다. IAM 정책, 예산, Quota와 Cost Analysis를 Compartment 단위로 적용할 수 있기 때문입니다.
3. Ubuntu Arm 이미지를 선택하기
Image 변경 화면에서 Canonical Ubuntu를 선택합니다. A1은 Arm 기반 Shape이므로 선택한 이미지가 aarch64를 지원하는지 확인하세요. 이 글에서는 Ubuntu 24.04 LTS를 사용합니다.
Docker 이미지를 사용할 계획이라면 linux/arm64 지원 여부도 확인해야 합니다. x86_64 전용 바이너리나 컨테이너는 A1에서 그대로 실행되지 않을 수 있습니다.
4. VM.Standard.A1.Flex와 무료량 설정하기
Shape 변경에서 Virtual machine → Ampere → VM.Standard.A1.Flex를 선택합니다. 아래 예시는 Always Free 문서의 테넌시 합계 2 OCPU·12GB 안내를 기준으로 합니다.
구성 예시는 다음과 같습니다.
- 인스턴스 1대: 2 OCPU·12GB
- 인스턴스 2대: 각각 1 OCPU·필요 메모리로 나눠 총 12GB 이하
이미 다른 A1 인스턴스가 있다면 합계를 계산해야 합니다. 콘솔의 Limits, Quotas and Usage에서 현재 테넌시 한도를 확인하고, 생성 화면의 Always Free 표시와 예상 비용을 함께 확인하세요.
아래 화면은 2025년 당시의 기록을 보존하기 위해 남겨 둔 것입니다. 오래된 튜토리얼의 화면만 보고 같은 수치를 입력하지 마세요.
5. VCN과 Public IP 결정하기
처음 사용하는 계정이라면 생성 마법사에서 VCN과 서브넷을 함께 만들 수 있습니다. 운영 환경이라면 네트워크를 먼저 설계하고 기존 VCN·서브넷·Network Security Group을 선택하는 편이 안전합니다.
인터넷에서 바로 SSH로 접속해야 한다면 Public IPv4가 필요합니다. 반대로 Bastion, VPN, Tailscale 같은 사설 접속 경로가 있다면 Public IP 없이 운영하는 구성이 공격 표면을 줄입니다.
다만 Tailscale 설치만으로 외부 통신 경로가 생기지는 않습니다. 공인 IP를 제거하기 전에 로그인과 직접 연결 또는 DERP 연결을 확인하고, 공인 IP 없는 인스턴스에서도 제어 서버와 릴레이에 나갈 수 있도록 NAT Gateway 등 외부 송신 경로와 라우트·보안 규칙을 준비해야 합니다. 필요한 통신은 Tailscale 방화벽 안내에서 확인합니다. Bastion과 VPN도 각 서비스의 연결·라우팅 구성이 선행돼야 합니다.
SSH 포트는 내 IP만 허용하기
Security List 또는 NSG에서 TCP 22를 전 세계 0.0.0.0/0에 열지 말고, 가능한 한 현재 사용하는 공인 IP 한 개인 /32로 제한합니다. 접속 위치가 자주 바뀐다면 Bastion이나 VPN을 검토하세요.
OCI 네트워크 규칙과 Ubuntu 내부 방화벽은 별개입니다. OCI에서 허용했더라도 OS 방화벽이 막을 수 있고, 반대로 Ubuntu에서 열었더라도 OCI 규칙이 막으면 외부에서 접속할 수 없습니다. OCI Ubuntu 플랫폼 이미지에서는 아래 9절의 필수 방화벽 규칙 보존 주의사항도 확인합니다.
6. SSH 키를 직접 준비하기
로컬 PC에서 Ed25519 키를 새로 만들려면 다음 명령을 사용합니다.
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/oci_a1_ed25519 -C "oci-a1"
콘솔에는 .pub 공개키 내용만 붙여 넣습니다.
cat ~/.ssh/oci_a1_ed25519.pub
개인키인
~/.ssh/oci_a1_ed25519파일은 OCI 콘솔, 메신저, Git 저장소에 올리면 안 됩니다.
.pub 공개키를 입력합니다.7. 부트 볼륨과 비용 범위 확인하기
Oracle Always Free 문서상 부트 볼륨과 블록 볼륨은 홈 리전에서 합산 200GB까지 무료 범위입니다. 현재 기본 부트 볼륨은 50GB이며 이 용량도 200GB 총량에 포함됩니다.
2025년에는 제 서버에 100GB를 지정했습니다. 하지만 여러 인스턴스를 만들 계획이라면 기본 50GB부터 시작하고 실제 필요량을 확인한 뒤 확장하는 편이 관리하기 쉽습니다.
볼륨 크기만이 아니라 성능 등급과 백업도 비용에 영향을 줄 수 있습니다. “무료 인스턴스”라는 문구만 보고 넘어가지 말고 생성 직전 예상 비용을 펼쳐 확인하세요.
8. 생성 직전 최종 체크
- 홈 리전과 Availability Domain이 맞는가?
- 이미지가 Ubuntu Arm64를 지원하는가?
- Shape이 VM.Standard.A1.Flex인가?
- A1 전체 합계가 내 계정에 적용되는 무료 범위 안에 있는가?
- 부트·블록 볼륨 합계가 200GB 안에 있는가?
- Public IP가 정말 필요한가?
- SSH 22번 소스가 내 IP로 제한됐는가?
- 개인키가 아닌 공개키를 등록했는가?
- 예상 비용이 무료 범위로 표시되는가?
이상이 맞다면 인스턴스를 생성합니다. 상태가 Provisioning을 거쳐 Running으로 바뀌고 Public IP 또는 Private IP가 할당됐는지 확인합니다.
9. SSH로 접속하고 실제 환경 검증하기
Ubuntu 이미지의 기본 사용자는 일반적으로 ubuntu입니다. 개인키 권한을 제한하고 접속합니다.
chmod 600 ~/.ssh/oci_a1_ed25519
ssh -i ~/.ssh/oci_a1_ed25519 ubuntu@PUBLIC_IP
처음 연결할 때는 OCI 콘솔의 인스턴스와 IP를 확인하는 것과 별도로, SSH가 제시한 호스트 공개키 지문을 대조해야 합니다. 신뢰할 수 있는 별도 관리·콘솔 경로로 해당 인스턴스의 같은 키 종류와 해시 방식의 지문을 확보해 일치하는지 확인한 뒤 승인합니다. 주소가 맞는다는 사실만으로 공개키가 검증되지는 않습니다. 비교 근거 없이 첫 키를 저장하는 방식은 첫 연결 신뢰(TOFU)이며, 최초 연결의 중간자 공격을 배제한 검증으로 볼 수 없습니다. 지문이 다르거나 기존 키 변경 경고가 나오면 무시하지 말고 키 교체·인스턴스 재생성 여부부터 확인합니다. 접속 후 다음 명령으로 아키텍처와 자원을 확인합니다.
uname -m
lscpu
free -h
df -h
ip -brief address
A1이면 uname -m 결과가 일반적으로 aarch64로 표시됩니다. 메모리와 디스크는 운영체제 예약분 때문에 콘솔의 명목 수치와 조금 다르게 보일 수 있습니다.
업데이트 가능한 패키지를 먼저 확인하고, 운영 중인 서비스와 재부팅 가능 시간을 고려해 적용합니다.
sudo apt update
apt list --upgradable
sudo apt upgrade
커널 업데이트 등으로 재부팅이 필요하다면 백업과 복구 경로를 확인한 뒤 진행합니다. 운영 서버에서 명령 한 줄만 보고 무조건 전체 업그레이드하거나 재부팅하지 마세요.
OCI Ubuntu 플랫폼 이미지에는 부트·블록 볼륨 연결을 위한 필수 방화벽 규칙이 있습니다. Oracle의 UFW 알려진 문제는 UFW가 이 규칙을 제거해 재부팅 실패를 일으킬 수 있다고 안내합니다. 따라서 이 생성 가이드에서는 UFW를 활성화하거나 UFW로 규칙을 편집하지 않습니다. SSH 포트만 미리 허용한다고 이 위험이 해소되는 것은 아닙니다.
먼저 현재 규칙과 영구 설정 파일을 읽기 전용으로 확인합니다. 출력에는 내부 주소와 허용 경로가 포함되므로 운영자 로컬에서만 검토합니다.
# 조회만 수행하며 방화벽 규칙을 변경하지 않음
sudo iptables -S
sudo ip6tables -S
sudo test -r /etc/iptables/rules.v4 && sudo sed -n '1,240p' /etc/iptables/rules.v4
변경이 필요하면 Oracle의 Essential Firewall Rules와 Ubuntu 방화벽 수정 절차를 따라 기존 필수 규칙을 보존합니다. 전체 규칙 초기화·덮어쓰기는 피하고, 이미지의 실제 방화벽 백엔드와 영구 설정, SSH 유지 여부, 콘솔 복구 경로를 확인한 뒤 유지보수 시간에 별도로 검증합니다. 위 조회 결과만으로 재부팅이나 볼륨 연결이 검증된 것은 아닙니다.
Out of host capacity가 나올 때
이 오류는 계정이 잘못됐다는 뜻이 아니라 해당 위치의 A1 물리 용량이 일시적으로 부족하다는 뜻입니다.
- 다른 Availability Domain을 선택할 수 있는지 확인합니다.
- Fault Domain 선택을 바꾸거나 자동으로 둡니다.
- OCPU·메모리 요청량을 줄입니다.
- 해당 홈 리전이 현재 Always Free A1을 지원하는지 확인합니다.
- 잠시 기다렸다가 다시 시도합니다.
PAYG 전환은 무료 계정보다 더 많은 Shape과 다른 서비스 한도를 이용하게 해 주지만 A1 호스트 용량을 보장하지는 않습니다.
무료 서버도 회수될 수 있다
Oracle은 Always Free Compute가 7일 동안 CPU 95백분위 20% 미만, 네트워크 사용률 20% 미만이며 A1의 메모리 사용률도 20% 미만이면 유휴 인스턴스로 판단해 회수할 수 있다고 안내합니다.
또한 Free Tier 계정 자체가 30일 이상 유휴 상태이면 방치 계정으로 판단돼 정지 또는 종료 대상이 될 수 있습니다. 인위적으로 부하를 만드는 방식보다 실제 서비스 운영, 정기 로그인, 외부 백업과 복구 절차를 갖추는 것이 중요합니다.
Oracle FAQ는 무료체험 종료 시 A1 사용량이 Always Free 허용량을 초과하면 모든 A1 인스턴스가 비활성화되고, 유료 계정으로 업그레이드하지 않으면 30일 뒤 삭제될 수 있다고 안내합니다. 체험 종료 전에 백업과 OCPU·메모리 합계를 확인하세요. 이 규칙을 기존 장기 계정의 4 OCPU·24GB 자원이 새 기준에 따라 곧 삭제된다는 뜻으로 확대 해석하지 않습니다.
운영 전 보안 체크리스트
- SSH 개인키를 암호화하고 별도 위치에 백업했는가?
- TCP 22를 전 세계에 열지 않았는가?
- Ubuntu 보안 업데이트를 적용했는가?
- 비밀번호 로그인과 root 직접 로그인을 비활성화했는가?
- 서비스 포트의 NSG와 OS 방화벽 규칙을 최소화하되 OCI 필수 규칙은 보존했는가?
- 부트 볼륨 또는 애플리케이션 데이터의 외부 백업이 있는가?
- 모니터링과 알림을 설정했는가?
- 공인 IP·OCID·SSH 키가 화면 캡처와 로그에 노출되지 않았는가?
자주 묻는 질문
지금도 4 OCPU·24GB가 무료인가요?
계정 유형과 적용 조건을 구분해야 합니다. Always Free 문서는 2 OCPU·12GB를 안내하지만, Oracle 가격표는 유료 테넌시에 월 3,000 OCPU 시간·18,000GB 메모리 시간을 안내합니다. 이는 31일 상시 실행 기준으로 4 OCPU·24GB를 포함하는 양입니다. 공식 문서의 대상 표현에도 차이가 있으므로 현재 콘솔과 실제 청구 내역을 확인해야 합니다.
한 대에 2 OCPU·12GB를 모두 넣어도 되나요?
Always Free 문서의 구성 예시에서는 가능합니다. 한 대에 모두 배정하거나 1 OCPU 인스턴스 두 대로 나눌 수 있으며, 합계가 해당 무료 범위 안이어야 합니다.
부트 볼륨 200GB가 인스턴스마다 무료인가요?
아닙니다. 홈 리전의 부트 볼륨과 블록 볼륨을 합친 테넌시 총량이 200GB입니다.
Public IP 없이 운영할 수 있나요?
가능합니다. 다만 Bastion·VPN·Tailscale 같은 사설 접속 경로를 먼저 구성하고 실제 연결을 검증해야 합니다. Tailscale은 공인 IP가 없어도 제어 서버·DERP 등에 연결할 수 있도록 NAT 등 외부 송신 경로와 보안 규칙이 필요합니다. 설치만 한 상태에서 Public IP부터 제거하지 마세요.
춘천 리전에서 무료 A1을 만들 수 있나요?
Oracle Always Free 문서는 A1 생성 규칙에서 South Korea North(춘천)를 예외로 안내합니다. 실제 계정의 생성 가능 여부는 가입·생성 직전 최신 문서와 콘솔에서 다시 확인해야 합니다.
함께 보면 좋은 글
- 오라클 클라우드 무료 계정 가입: 카드 인증·홈 리전 선택
- Oracle Cloud PAYG 전환: 100달러 승인 보류와 과금 주의
- OCI A1 무료 한도 축소? 2 OCPU·12GB와 4 OCPU·24GB 계정별 비교
참고한 Oracle 공식 문서
- OCI Cloud Price List: 유료 테넌시 A1 월 무료량
- Arm-Based Compute
- Always Free 리소스 상세
- 첫 Linux 인스턴스 시작 튜토리얼
- Out of Host Capacity 해결 안내
- 홈 리전 관리
- Oracle Cloud Free Tier FAQ
이 글은 직접 운영한 환경과 Oracle 공식 문서를 바탕으로 작성한 개인 기술 기록입니다. Oracle과 제휴하거나 후원받지 않았으며, 무료량·리전 지원·콘솔 화면은 바뀔 수 있으므로 생성 직전 공식 문서와 예상 비용을 다시 확인하세요.