Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OCI Free Tier A1 Instance Auto-Creator Bot 🤖

Oracle Cloud Free Tier의 VM.Standard.A1.Flex 인스턴스가 Out of capacity 에러로 생성 불가능할 때, 자동으로 반복 시도하여 인스턴스를 확보하는 봇입니다.

✨ 기능

  • 🔄 자동 반복 시도: 설정한 간격(기본 60초)으로 인스턴스 생성 반복 요청
  • 🔍 자동 탐색: Availability Domain, Subnet, OS Image 자동 탐색
  • 🔔 알림: Discord Webhook / Telegram Bot 알림 지원
  • 🛡️ 중복 방지: 이미 생성된 인스턴스가 있으면 자동 종료
  • 📝 로그: logs/oci_bot.log에 상세 로그 기록
  • Graceful Shutdown: Ctrl+C로 안전하게 종료

📋 사전 준비

1. OCI API Key 생성

  1. OCI 콘솔 로그인
  2. 우측 상단 프로필User settings
  3. API KeysAdd API Key
  4. Generate API Key Pair → Private Key 다운로드 → Add
  5. Configuration Preview 내용 복사

2. VCN & Subnet 생성 (없는 경우)

  1. OCI 콘솔 → NetworkingVirtual Cloud Networks
  2. Start VCN WizardCreate VCN with Internet Connectivity
  3. 생성된 Public Subnet의 OCID 복사

3. SSH 키 생성 (없는 경우)

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

🚀 설치 & 실행

# 1. 의존성 설치
pip install -r requirements.txt

# 2. 설정 파일 복사 & 편집
cp .env.example .env
nano .env  # 또는 vim .env

# 3. 실행
python oci_bot.py

⚙️ 설정 (.env)

변수 필수 설명
OCI_USER_OCID User OCID
OCI_FINGERPRINT API Key Fingerprint
OCI_TENANCY_OCID Tenancy OCID
OCI_REGION 리전 (예: ap-chuncheon-1)
OCI_KEY_FILE Private Key 경로
OCI_COMPARTMENT_ID Compartment OCID
OCI_AVAILABILITY_DOMAIN AD (비워두면 자동 탐색)
OCI_SUBNET_ID Subnet OCID (비워두면 자동 탐색)
OCI_INSTANCE_NAME 인스턴스 이름 (기본: my-free-a1)
OCI_OCPUS OCPU 수 (기본: 4)
OCI_MEMORY_IN_GBS 메모리 GB (기본: 24)
OCI_BOOT_VOLUME_SIZE_IN_GBS 부트볼륨 GB (기본: 100)
OCI_OS_NAME OS (기본: Canonical Ubuntu)
OCI_OS_VERSION OS 버전 (기본: 22.04)
OCI_IMAGE_ID Image OCID 직접 지정
OCI_SSH_PUBLIC_KEY_FILE SSH 공개키 경로
RETRY_INTERVAL_SECONDS 재시도 간격 초 (기본: 60)
DISCORD_WEBHOOK_URL Discord 알림 URL
TELEGRAM_BOT_TOKEN Telegram Bot Token
TELEGRAM_CHAT_ID Telegram Chat ID

💡 팁

  • 리전: 서울(ap-seoul-1)보다 춘천(ap-chuncheon-1)이 경쟁이 덜합니다
  • 시간대: 새벽~아침(KST)에 성공 확률이 높습니다
  • 간격: 너무 짧으면 Rate Limit에 걸릴 수 있으므로 30~60초 권장
  • 인내: 며칠 걸릴 수 있습니다. 백그라운드로 돌려두세요

🔧 백그라운드 실행

# nohup으로 백그라운드 실행
nohup python oci_bot.py > /dev/null 2>&1 &

# 로그 실시간 확인
tail -f logs/oci_bot.log

# 프로세스 확인 & 종료
ps aux | grep oci_bot
kill <PID>

✅ 성공 후

  1. 봇이 자동으로 종료됩니다 (.instance_created 파일 생성)
  2. OCI 콘솔에서 인스턴스 확인
  3. SSH 접속: ssh ubuntu@<Public-IP>
  4. 다시 실행하려면: rm .instance_created

📚 참고

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages