-
홈서버(?)에서 서빙하던 서비스 클라우드 이전 썰 (feat. OPGC, AWS Lightsail)👨🏻💻 개발자 제이의 이야기 2022. 10. 3. 20:19
안녕하세요! 개발자 Jay입니다! 오늘은 약간 재미난 썰(이라고 쓰고 날벼락 맞은 썰 이라고 읽는다...)을 가지고 왔습니다ㅎㅎ
2년 전쯤 [Server] 안쓰는 노트북으로 개인서버(Ubuntu) 만들기 💻 라는 글을 쓴 적이 있었습니다. 집에서 버리려다가 만 노트북을 ubuntu server로 만들어서 사용을 했습니다. 덕분에 이 서버에서 토이 프로젝트도 서빙하고 여러 가지 실험도 할 수 있었습니다.
엊그제 까지만 해도(?) OPGC라는 서비스를 서빙하고 있었죠 ㅋㅋ
2022년 9월 31일 오후 1시 사건의 발단
사건은... 평화로운 백수생활을 즐기면서 꿀잠자고 있던 2022년 9월 30일 오후 1시에 일어났습니다... 갑자기 탕! 하는 큰소리와 함께 건물 외벽이 울리는 겁니다...
순간 무슨 사고라도 밖에 터졌나 했는데 너무 조용하고..."뭐지?" 하다가 벽을 보니까 뭔가 끊어진 선이 하나... 보이더라고요. 3초간 머엉~ 하고 생각하다가 랜선인가? 하고 생각했는데 ㅋㅋㅋㅋ 서버가 죽었다고 슬랙 알림이 오기 시작했습니다ㅋㅋㅋㅋㅋ
어이가 없어서 황급히 밖에 나가보니 랜선 하나가 끊어져 있는게 보이더라고요 ㅋㅋㅋㅋㅋ 아니 살다 살다 ㅋㅋㅋ 탑차 같은게 지나가다가 저희 집 랜선을 걸고 가서 끊어진 걸로 추측이 됩니다ㅠㅠ
뭐 당장 인터넷이 안되는건 상관없는데 유저들이 사용하고 있는 OPGC에 장애가 생기는게 걱정이었습니다. OPGC에서는 개발자 랭킹을 github 뱃지(?)로 제공하고 있어서 서비스 장애가 나면 깃헙 readme에 엑박(엑스박스)떠서 보기 좋지 않기 때문입니다.
유저가 많지는 않지만 실제로 유저들이 사용하는 서비스이기 때문에 빨리 복구를 해야겠다는 생각뿐이었습니다. 안그래도 맨날 이사 가거나 집 구조 바꿀 때마다 인터넷이 끊기면 서비스 장애가 돼서 클라우드로 이전을 해야겠다고 생각했는데 ㅋㅋㅋㅋ 강제로 그 시기가 찾아왔습니다.
클라우드로의 이전
이전 직장에서 동료들이 AWS Lightsail로 토이프로젝트를 서빙하고 있고 값이 싸다고 알려준 적이 있어서 바로 AWS로그인해서 Lightsail페이지로 들어갔습니다.
Lightsail은 클릭 몇번으로 원하는 사양과 목적에 맞는 서버를 생성할 수 있습니다. 저는 홈서버와 비슷하게 하나에 서버에 nginx, mysql, redis, django application을 구성할 거라 ubuntu 20.04 LTS로 선택했습니다. 서버 사양은 홈서버와 비슷하게 20달러짜리로 하고 싶었는데 10달러짜리가 3개월 무료라서 10달러짜리를 선택했습니다.
어차피 트래픽이 그렇게 많지도 않고 고사양 스펙을 돌리는것도 아니라서 괜찮을 거라고 생각했습니다. (+ 고정아이피 사용)
서버를 생성하고 기존 홈서버에서 몇가지 파일들과 DB data를 옮기기 위해 USB를 사용했습니다.
탑차가 저희집 랜선을 끊고 간 덕분에 usb 마운트 해서 파일 옮기는 법도 알게 되었네요 ㅎㅎ 일단 파일들을 옮기고 기존 홈서버와 동일하게 환경 세팅을 했습니다.
nginx, mysql, redis를 설치하고 원래 사용하던 fabfile을 통해 init 배포를 시작했습니다. fabfile은 fabric이라는 파이썬 라이브러리로 간단하게 배포를 할 수 있는 파일을 말합니다.
https://jay-ji.tistory.com/38?category=828550
사실 기존 홈서버와 다른점이 클라우드라는 점만 빼면 동일했기 때문에 특별히 이슈는 없었고 OPGC의 클라우드 이전은 무사히 마칠 수 있었습니다.
클라우드 서비스 이전 과정 요약
- ubuntu 서버 생성
- nginx, mysql, redis 설치
- djagno application 배포 및 gunicorn 실행, nginx <-> gunicorn 연결
- 프론트(react) build 및 nginx에 index경로 연결
- 도메인 서비스(GoDaddy) 가서 A레코드 IP 주소 변경
- SSL 인증서 설치
- 서비스 동작 확인
마치며
세상 황당한 일을 겪었지만 덕분에 많은걸 얻은 것 같습니다 (긍정 회로 돌리기)
- 클라우드로 서비스 이전 (이제 이사가거나 두꺼비집 내려가서 서비스 장애 나는 불상사 없어짐)
- ubuntu usb 마운트 하는법 습득
- 블로그 컨텐츠 획득
- 서버 배포과정 한 번 더 복습
여러분들도 토이프로젝트 하신다면 AWS Lightsail 한 번 이용해보시길 바랍니다. 값이 싸서 이것저것 해보기 좋은 것 같아요! 인터넷이 복구되면 기존에 사용하던 서버는 좀 자유롭게 이상한짓(?)을 해보는 테스트 서버로 사용해야겠네요 ㅋㅋ
그럼 오늘도 즐거운 코딩 하시길 바래요!
참고자료
https://mingg123.tistory.com/88
https://chamshna.tistory.com/3
'👨🏻💻 개발자 제이의 이야기' 카테고리의 다른 글
유부월드 합류한 5년차 개발자의 2023년 회고 (4) 2023.12.31 중니어가 되고싶은 개발자의 2022년 회고 (14) 2022.12.26 💡해커톤 아이디어에서 실제 프로덕 배포까지 썰 (0) 2022.09.09 사내 글쓰기 모임 운영 후기 및 회고 (feat.다또) (0) 2022.06.27 지.극.히. 개인적인 4년차 개발자의 성장곡선 🚀 (7) 2022.06.11