본문 바로가기
컴퓨터 창고

장고. 실패의 여정

by 알센 2024. 1. 25.

멋사듣고 나서 토이프로젝트로, 스터디그룹에서 사용하려고 액티비티 로거 리더보드를 간단하게 만들었다.  코파일럿한테 떠들기만 하면 잘 만들어줘서 만들기가 참쉬었다.   그런데 토이프로젝트를 하려고 비싼 AWS EC2를 사용할수는 없는 노릇이니, 헤로쿠처럼 어딘가 무료로 되는 곳이 있겠지...라고 생각하였다. 

 

0. 로컬에서 도커와 쿠버네티즈 사용. - 잘됨.   그런데 디비에  데이터가 어떻게 되는지는 기억이 안남.  잘 돌아가 보여서 크게 신경쓰지 않았음

 

1. vercel 

실패.   sqLite도 안된다는 듯 하지만, 거기까지 가기도 전에...  파이썬 버전이 낮아서 장고5버전을 사용할 수 없었다.  다운그레이드를 해보려 했으나..너무 많은 것을 해야했고, 결정적으로 사용할 수 없는게 있어서, 미련없이 프로젝트를 삭제하였다. 

 

2. fly.io

무료는 없다고 일단 카드번호를 입력하라고... $5/월에 사용량 베이스라는데.사용량 까이꺼 얼마 나올까...싶어 일단 해봄.... 로컬에서 fly launch만 하면 디플로이가 되는 신박함.. 깃헙과도 연결할수 있다는데 나중에 해봐야지라고 생각하며.... 도커 이미지로 론칭을 하다보니... 로컬디비가 업데이트가 안되는 문제가.. 그래서 fly.io안에 postres 디비를 하비 버전도 사용할수 있다길래, 디비서버를 하나 켜봤으나, 연결하는 방법을 잘 모르겠어서.. ㅠ.ㅠ   flycli를 사용해서 연결도 해보았으나, 되었나 안되었나도 모르겠고......  또 이 디비는 vpc안에서.. fly.io에 있는 앱들에서만 사용할수 있게 되어있어서 로컬에서 연결해서 쓸수 없었다. 

 

3. aws postgres 

결국 익숙한 aws의..한번도 사용해본적 없는  RDS에 도전... 프리티어가 있기는 하나, 25일만 켜야 하는 750시간의 제한은 무엇인가.. 이것을 어찌 해결할까는 나중에 고민하기로 하고.. 약간의 삽질을 거쳐 - 다른 것들의 삽질에 비하면 여기는 정말 잠시.  그나마도 다큐멘테이션이나 콘솔 사용법에 익숙해서 할수 있었던 것 같다.  디비를 만들때..  Additional Configuration을 열어야만... 이름을 입력하는 게 보이는거, 이거는 정말 찾기가 어려웠다.  참고했던 블로그들에 나온 적도 없고, Security Group을 반드시 새로 만들어야 한다는 글이 있었는데, 그것은 틀린 정보였고,    Inbound 설정을 직접 추가하는 법을 잘 몰라서 그러셨던듯.   어떤 유튜부에서 이름을 넣어줘야 한다는 거 보고 해결할수 있었다. 

그리하여 로컬에서 AWS  PostgreSQL 무료버전(월 750시간 제한이 있는)을 잘 연결할 수 있었다.  프론트 하시는 분과 굳이 같은 테스트 데이터를 공유해볼 수 있어서 좋다고 치자. 

 

4. AWS Serverless with zappa library

대실패.  매우 쉽게 될듯 하였으나,  lambda 250M의 한계에 떡하니 걸려서... 도커 이미지가 1.15G던데..무엇을 어떻게 줄여야 해결할수 있는지 당췌 알수도 없었고, zappa install, init으로 인해서 너무 많은 라이브러리들이 설치되어서, 깃헙에서 다시 불러와야했다.  한꺼번에 다 날릴 방법이 없어서.. 언인스톨해봐야... 두세개밖에 안없애주고.    250M의 한계를 어찌할 방법이 없으니 이방법은 아쉽지만 그냥 패스하기로 했다.  공짜로 사용할 수 있는 확실한 방법이었는데 ㅠ.ㅠ 

 

5.fly.io + aws postgres 

현재 상황에서 실패.   도커 이미지를 빌드하며 디비 설정을 불러올수 없다.  뭔가 또 다른 설정이 필요한 거 같은데... 또다른 완전 새로운 삽질.   아직 안해봤지만 로컬 쿠버네티즈에서도 같은 이슈가 있지 않을까 예상된다.  앱 pod와 디비 pod를 따로 만들어서 불러줘야 한다고 본듯... 하아..한숨이 자주 나와 내 앞에 바닥엔 커다란 구멍이라도 생긴 기분. 

 

6. ngrok 

토이를 위한 무료/저렴한 호스팅을 찾아다니는 나에게 보스가 해준 조언... 아....왜 그생각을 못했지...  로컬을 오픈해보자!   그러나... manifest.json을 불러오지 못한다.  어흑.   프론트 리액트를 연결하는 것도 엄청난 챌린지였긴 했다. ㅠ.ㅠ    /build folder를 백엔드앱에 복사해넣고, settings.py에 STATIC DIR과 TEMPLATES 설정들을 약간만 바꿔주면 되는 듯이 모두들 말하고 있지만, .을 추가해줘야만 작동한다고 한 글도 있었지만,  이도저도 아니고..하여튼...몇번의 설정 수정으로 로컬에서는 잘 불러올수 있게 되었는데, ngrok을 통해 다른데서 접속하면 /manifest.json을 불러올 수 없다는 404 에러가 계속 난다. ㅠ.ㅠ  


다음에 해보려는 것. 

백엔드는 일단 로컬 ngrok을 사용해보고 - 디비콜은 되는지 /swagger사이트로라도 확인해봐야겠다.   
프론트 엔드는 독립된 레포에 옮겨서.. 독립시켜서 AWS에 Amplify로 올려봐야겠다. - 몇번 해봤으니 잘 되겠지.  

해보고 싶은 것 - 아직도??  
aws postgre대신에 s3에 sqlite를 사용해 보는 것. 
백엔드는....서버리스로 바꾸는 것.  어드민과 인증따위야 귀찮지만, 만들면 되겠지... 네스트 서버리스 시도.. 정도... 
에너지가 남아 있으려나 모르겠다. 

 

기본이 없고 연습과 경험도 없는 도커의 사용이 매우 무의미하고 너무 어려운 일임을 깨달았고.  코파일럿 챗이 해결해주지도 못해서, 데브옵스야 말로 AI 시대에 살아남을 수 있는 직군이라는 생각이 들었다.  비즈니스마다 모두 다른 환경과 테크들의 조합을 가지고 있을테니,  많은 비슷한 데이터로 패턴을 찾아서 알려주는 것이 매우 어려울 것 같았다.   하긴..클라우드 매니지스 서비스들이 그래서 존재하는 것이니 돈 많이 버는 회사들과 돈 많이 버는 클라우드의 조합은...  계속 승승장구 하겠구나 싶다. 

 

몇일동안 삽질을 했지만, 뭐하나 제대로 알게 된 것은 없는 것 같고 - 이길이 어렵구나를 알게 되었다고나 할까.    아...오늘도 나오는 것은 한숨이고 늘어가는 것은 흰머리와 주름살이로구나. 

'컴퓨터 창고' 카테고리의 다른 글

멋쟁이 사자처럼 백엔드 프로그램을 마치며.  (1) 2024.01.19
코드아카데미  (0) 2015.01.08
인증과 관련하여...  (2) 2014.01.05
검색기능에 감사하는 시간  (2) 2013.06.29
커뮤니케이션 서비스들  (4) 2013.06.22