vue 프론트를 배포하려면 구글 플랫폼에서는 google cloud run 및 firebase hosting 을 통해 배포할 수 있습니다.
cloud storage 에 정적 파일로 올릴 수 있지만 이 경우에 vue router 등 프론트에서 라우트 기능을 사용한다면
경로 오류가 생길 수 있습니다.
완전 static 하게 경로 이동 없는 경우에 cloud storage 이용하는게 좋습니다.
Firebase Hosting
비용: Firebase Hosting은 정적 파일(HTML, CSS, JS 등)을 호스팅하기 위한 것이므로, 주로 네트워크 대역폭과 저장 공간에 대한 비용이 발생합니다. Firebase는 무료 티어를 제공하며, 이는 작은 프로젝트나 테스트 용도로 충분한 경우가 많습니다. 무료 티어를 초과하는 사용량에 대해서는 비용이 청구됩니다.
무료 티어 제공: 예, 제공됩니다. 일정 수준의 사용량(예: 일정 GB의 저장 공간 및 월간 대역폭)은 무료입니다.
적합한 사용 사례: 정적 웹 사이트 및 SPA(Single Page Application).
Cloud Run
비용: Cloud Run은 사용한 컴퓨팅 자원(메모리와 CPU), 요청 수, 네트워크 대역폭에 따라 비용이 청구됩니다. Cloud Run도 무료 티어를 제공하며, 이에는 월간 요청 수, 컴퓨팅 자원 사용량에 대한 무료 할당량이 포함됩니다. 무료 사용량을 초과하면 비용이 발생하며, 이는 애플리케이션의 복잡도와 트래픽에 따라 달라집니다.
무료 티어 제공: 예, 제공됩니다. 무료 티어는 일정량의 컴퓨팅 자원 사용과 요청 수에 대해 무료로 제공됩니다.
적합한 사용 사례: 동적 웹 애플리케이션, API 백엔드, 마이크로서비스.
비교 및 선택
정적 컨텐츠: 당신의 애플리케이션이 주로 정적 컨텐츠를 제공한다면, Firebase Hosting이 더 경제적일 수 있습니다. 이 서비스는 정적 파일을 효율적으로 서빙하기 위해 최적화되어 있습니다.
동적 처리가 필요한 경우: 애플리케이션이 서버 사이드에서 동적 컨텐츠를 생성하거나, 사용자 인증, 데이터베이스 연동 등 복잡한 백엔드 로직을 필요로 한다면, Cloud Run이 더 적합할 수 있습니다. 이 경우 추가적인 비용이 발생할 수 있지만, 더 강력한 기능과 유연성을 제공합니다.
결국 선택은 애플리케이션의 요구 사항, 예상 트래픽, 그리고 예산에 달려 있습니다. 무료 티어로 시작하여 요구 사항이나 사용량이 증가함에 따라 서비스를 조정하는 것이 좋습니다.
하지만 따로 웹사이트에서 작업해줘야 할 것은 없고 로컬에서 firebase 설치해서 아래 가이드대로 설치해주시면 됩니다.
FIREBASE_TOKEN은 Firebase CLI를 사용해 생성할 수 있는 인증 토큰입니다. 이 토큰은 Firebase 프로젝트에 대한 비밀 액세스 권한을 제공하며, CI/CD 파이프라인(예: GitHub Actions)에서 Firebase 서비스에 자동으로 인증하기 위해 사용됩니다. 토큰을 생성하고 GitHub Secrets에 저장하는 방법은 다음과 같습니다:
Firebase 토큰 생성 방법
1. Firebase CLI 설치: Firebase CLI가 로컬 시스템에 설치되어 있지 않은 경우, 먼저 설치해야 합니다. 터미널에서 다음 명령어를 실행하여 설치할 수 있습니다:이 명령은 Firebase CLI를 글로벌로 설치합니다.
npm install -g firebase-tools
2. Firebase에 로그인: 다음 명령어를 사용해 Firebase에 로그인합니다:이 명령은 기본 웹 브라우저를 열고 Firebase 인증 프로세스를 시작합니다. 로그인 과정을 완료하세요.
firebase login
위 명령어 사용시 브라우져 창에서 firebase 계졍 인정하도록 화면이 뜨게 됩니다.
위 완료 메시지 뜨면 로그인 완료되었습니다.
3. CI용 Firebase 토큰 생성: Firebase CLI에서 CI(지속적 통합) 환경을 위한 인증 토큰을 생성하려면, 다음 명령어를 실행합니다:이 명령은 새로운 인증 토큰을 생성하고, 이 토큰을 터미널에 출력됩니다. 출력된 토큰을 복사하세요.
firebase login:ci
4. 프로젝트 폴더에 firebase.json 이 있어야 하는데, 아래 명령어 통해서 세팅하면 됩니다.
firebase init hosting
프로젝트가 없으면 새로 생성, 미리 firebase 에서 프로젝트 생성 하면 됩니다.
있으면 프로젝트 선택하면 됩니다.
github workflow 에 넣냐는 말이 있는데, 여기에서 프로젝트 유저명/프로젝트명 을 넣어줍니다.
필요한 옵션을 알아서 선택해주자.
firebase.json
이 아래와 같이 생성되는데 혹시 잘못해서 안되면 나중에 덮어씌어도 됩니다.
여기까지 작성 후
firebase deploy
를 하게 되면 프론트 소스가 배포 됩니다.
선택해야 하는 옵션 이 너무 잘 되어 있어
github actions 파일까지 생성해 줍니다.
옵션만 잘 따라가 주면 됩니다
옵션을 잘 못 선택해주었을 경우를 대비하여 firebase.json 및 firebase-hosting-merge.yml 공유합니다. 굳이 먼저 생성안해도 firebase init 통해서 actions 파일까지 생성해 줍니다.
구글 클라우드 플랫폼(GCP)를 사용하려면 먼저 계정을 등록시켜야 합니다. Gmail에 사용하는 구글 계정이 있는경우 이를 통해 로그인을 진행 할 수 있지만 클라우드 계정이 없다면 클라우드 계정에 가입해야합니다. 구글 클라우드 플랫폼은 90일간 $300을 사용할 수 있는 무료 크레딧을 제공해 주기 때문에 이를 통해 구글 클라우드 플랫폼을 체험해 볼수도 있습니다.
구글 클라우드 플랫폼 등록을 맞추면 클라우드 콘솔로 이동하고 My First Project라는 새로운 프로젝트가 자동으로 만들어 줍니다. 또한 페이지의 왼편에는 컴퓨팅, 서버리스, 저장소등과 같이 구글 클라우드 플랫폼이 제공하는 서비스가 속한 카테고리와 프로젝트별 구성란이 있습니다.
1. 프로젝트 선택하기
2. cloud shell
cloud shell 활성화하기
cloud shell 로 한 프로젝트에 속한 application 들을 관리
gcloud auth list
gcloud config set account `이메일계정`
다음과 같이 output 이 나오면 인증 되었고, 아래 명령어로 프로젝트를 확인하면 된다.