공부

Heroku에서 Fly.io로 (feat. Fly.io를 통한 배포 과정)

Zedd0202 2022. 11. 12. 17:38
반응형

 

Heroku에서 자꾸 메일이 오길래 봤더니, free plan을 삭제한다는 것이었다.

11월 28일까지 조치를 취해야하는데

내 작고..작은....너무 작아서 안보이는 토이 프로젝트 하나에 plan을 업그레이드 할만한 가치는 없다고 느껴져서(?)

대체제를 찾다 Fly.io를 발견했다.

Heroku 미안

 

# Fly.io 가입 

https://fly.io 로 가서 가입을 해주고..

$ brew install flyctl

하라는대로 명령어를 터미널에 입력해준다.

Heroku처럼 로그인을 해야하는데, 

$ flyctl auth login

터미널에 입력하면 알아서 브라우저 열리고 로그인되어있으면 알아서 잘 넘어간다.

 

# 카드 등록

일단 카드를 등록해야한다. 무료 Plan을 사용하려고 해도 카드를 일단 등록해야한다. 

대시보드로 가서 오른쪽에 보면 Add Payment method..? 로 버튼이 있는데 거기서 카드를 등록해주면 된다.

등록을 완료하면 Hobby플랜으로 시작된다. 

Hobby Plan은 무료사용량을 넘은 것만큼만 지불하는데, 

  • Up to 3 shared-cpu-1x 256mb VMs 
  • 3GB persistent volume storage (total) 
  • 160GB outbound data transfer 

이정도가 무료인듯

내 앱은 찐따여서 상관없을 듯 한데, 아예 막히는게 아니라 넘으면 과금이라 이건 지켜봐야 할 것 같다. ㅎ

아무튼 카드 등록을 안하면 배포를 못하니까 꼭 해주기

 

# Deploy

$ cd {소스코드 경로}

터미널에서 소스코드가 있는 경로로 이동해준다. 

$ fly launch

그 상태에서 위 명령어를 쳐주면

스캔하고 알아서 app 종류(?)를 선택해주는 것 같다. 

그리고 앱 이름을 입력해달라고 하는데, 입력해주고 

이제 리전을 선택해달라는 메시지가 나온다.

암거나 하고..엔터치삼 

 

이제 질문이 막 나오는데 자기 프로젝트에 맞게 알아서 대답하면 된다. 

- Would you like to set up a Postgresql database now?  ➡️ No로 함

- Would you like to set up an Upstash Redis database now? ➡️ No로 함

- Would you like to deploy now? ➡️ Yes

그럼 열심히 뭔가를 알아서 돌려준다. 기다리면댐

==> Creating release
--> release v1 created

--> You can detach the terminal anytime without stopping the deployment
==> Monitoring deployment

 1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total, 1 passing]
--> v1 deployed successfully

이런식으로 deployed successfully 가 보이면 배포 성공..ㅎ_ㅎ

사실 계속

v0 failed - Failed due to unhealthy allocations - no stable job version to auto revert to and deploying as v1

이런 오류가 나서 좀 고생했는데..

내 소스코드의 index.js 파일의 포트와 fly.toml의 포트가 안맞아서 나는 문제였다.

배포가 실패했다면 원인을 수정한 뒤 fly launch 말고 fly deploy를 쳐주면 된다. 

(그럼 알아서 v0, v1, v2...순으로 릴리즈함)

+ 실패 원인을 찾기 위해 로그를 보고싶다면

$ fly logs -a {앱 이름}

을 통해 확인 할 수 있다. 

 


 

대시보드로 가면, 처음에 앱 이름으로 등록한 앱이 추가되어있을거다.

앱에서 사용하는 Host를 herokuapp에서 fly.dev로 수정해주면 된다. 

계속 마음의 짐이었는데...하나 덜었군

반응형