구글 클라우드(Google Cloud) 프리티어(Free Tier)로 개인 프로젝트 서버 구축하기 (1)
fastAPI + postgresSQL + nginx (With Docker Compose) 를 사용해서 개인 프로젝트를 위한 서버를 구축해보자.
- 개인적으로 도커환경으로 서버를 배포해보고 싶기도 했고, 취미 프로젝트 배포를 목표로. 가난한 개발자의 프리티어 서버를 구축해보기로 했다.
- 1년전쯤 아무것도 모를때 헤로쿠(Heroku)에서 배포가 무료여서 해본적이 있었는데, 현재시점 헤로쿠 프리티어는 사라졌다고한다.
- 이 기회에 구글 클라우드 플랫폼 프리티어를 사용해보기로 했다. 이후 AWS도 1년 무료티어가 있으니 dockerize된 코드를 재사용해서 AWS를 통한 서버 배포도 진행해보려고한다.
1. 가입 & 결제 정보 등록
GCP 무료 정책이 가끔 변경되는 것 같은데 포스팅 내용은 2023년 3월 12일 기준입니다.
가입을 먼저 해줍니다. https://cloud.google.com/free
가입시 지불옵션(카드정보)를 입력해야 하지만, 300$의 무료 크레딧을 지급해주기 때문에, 설정을 잘못해서 청구될 수 있다는 부담없이 시작해보기 좋습니다.
- 서버 배포에 필요한 Compute Engine 프리티어에 대한 자세한 정보는 https://cloud.google.com/free/docs/free-cloud-features#free-tier-usage-limits 여기서 확인가능합니다.
- 가입을 완료한 후 Compute Engine 메뉴에서 Enable을 해주려면 가입시 입력한 billing 정보를 activate 해줘야 합니다.($300 크레딧이 있으니 과감하게 눌러주자)
2. VM 인스턴스 생성
- Compute Engine → VM instances → CREATE INSTANCE로 이동해줍니다.
- Free tier 정보에서 확인한 스팩으로 옵션을 설정해줍니다. free tier는 instance region의 제한이 있음으로 해당 부분을 주의해줍니다($300 크레딧이 있다면 두렵지 않습니다..)
- boot disk option에서 기본 저장용량을 10GB에서 30GB로 변경해 주고 type을 Standard persistent disk로 변경해줍니다.
- 인스턴스 생성이 완료되었습니다. 처음 할당된 IP는 인스턴스를 재시작 하면 변경됩니다. 이후에 고정 IP를 할당 받아야 합니다.
- SSH Connect를 클릭해서 인스턴스에 바로 접근해 볼 수 있습니다.
$df -h
커맨드로 30GB 디스크가 /dev/sda1에 마운트되어 바로 사용가능한 것을 확인할 수 있습니다.
3. 예산 정책 설정(가난한 개발자를 위한)
- 가난한 개발자는 걱정이 많습니다. 혹시 실수로 요금이 청구되는 사태를 미연에 방지하기 위해 Billing 예산을 설정하고, alert를 받을 수 있도록 설정가능합니다.
- 좌상단 메뉴에서 Billing → Budgets & alerts로 이동해서 Budgets을 생성합니다.
- Scope → Amount → Action 단계를 설정해줍니다.
- 저는 1000원을 기준으로 50% 90% 100%에 도달할 때 마다 알람 메일이 발송되도록 설정했습니다.
- 결제 안전장치까지 마련했습니다. 물론 90일동안 사용가능한 $300의 크레딧을 지급하기 때문에 지금은 걱정할 필요가 없습니다. 하지만 현생에 치여 살다보면 취미로 올려둔 서버를 잊을 수도 있겠죠…
4. 도커 설치
- 마지막으로 부팅 디스크에 설치된 Debian에 도커를 설치하고 1편은 마무리해보겠습니다.
- 도커는 기술문서가 매우 잘 정리되어 있는 편이라 공식 문서를 따라 설치하면 간단합니다. OS를 debian으로 설치했다는 것만 기억하시면 됩니다.
→ https://docs.docker.com/engine/install/debian/
sudo docker run hello-world
를 실행해서 이미지가 정상적으로 run되면 성공입니다.
Comming up Next! 서버에 올릴 Docker image 만들기가 이어집니다.
참고
https://kibbomi.tistory.com/241