인프라 개편
인프라 현황
현재 개발환경과 운영환경이 분리되어 있고, 어느정도 모니터링 환경도 갖춰져 있다.
그런데 유지,관리 포인트가 너무 늘어난 느낌이라, 좀 쳐내보려고 한다. 사실 몇 개 더 있는데, 이미지가 너무 복잡해지기도 하고 운영에 그다지 영향은 없어서 일단 제외했다.
무엇이 문제인가?
유지비
사이트 수익에 비해 매달 나가는 고정지출이 크다.
광고비가 한달에 10달러는 버는지 모르겠는데, 서버비로 꾸준히 16달러 정도가 나가고 있다. 주로 ec2에서 요금이 가장 많이 나가는데, 살펴보니 뭔가 추가적인 컴퓨팅 리소스가 나간다기보다는 기본적으로 t2 micro가 켜져있을 때 나가는 최소한의 금액이 지출되고 있는 듯 하다. 기본 구동료인 셈이다.
어느순간부터 이상한 과금 파트가 하나 추가되어서 더 부담스러운데, vpc라는 명목으로 지출되는 영역이다. 특정 시점부터 ipv4 형태의 고정 아이피를 사용하면 추가적으로 지출된다고 한다. ip가 고갈되어가서 ipv6 형태를 사용하면 요금을 면제해준다고 한다.
어쨌든, 수익보다 지출이 훨씬 큰 상황이다.
분산된 관리 포인트
대부분은 깃허브 코드 기반이라 크게 불편함은 없는데, 그래도 종종 해당 플랫폼에 직접 접속해야 할 일이 생긴다. 그런데 너무 다양하게 이것저것 일을 벌려놔서, 뭐가 어딘지 기억도 가물가물하다.
플랫폼도 어느정도 통합하고, 관리나 접속을 거의 하지 않는 도구들은 이번 기회에 다 정리해보려 한다.
인프라 절충안
최종적으로 고민한 방안은 다음과 같다.
일단 aws 최대 과금요소인 ec2를 정리하고, 달라진 서비스 이용 방식에 따라 람다쪽 리소스도 대부분 정리가 될 것 같다. 아마 국토교통부쪽 람다 하나만 남지 않을까 싶다. cors 문제 때문에 이미지 대신 받아오는 역할이라 개발과 운영을 나눌 필요까지는 없을 듯 하다.
고민중인게 개발쪽 api 서버를 어떻게 할 지 고민중이다. 조금 더 정확히 말하면 굳이 db 기반의 api 서버가 필요한 상황이 맞나 싶다. 아예 api 서버를 양쪽 다 걷어내거나, 개발쪽 api 서버를 제거하고 이 리소스를 운영쪽으로 넘길까 싶다.
api 문서는 딱히 볼일도 없고 해서, api 서버 존재 유무에 관계없이 정리할 것 같다. better stack은 서버 떠있는 업타임 감시해주는 툴인데, url 헬스체크 역할이다. 얘도 없앨 것 같다. 주로 랜딩 페이지쪽이랑 api 서버 감시중인데, 랜딩 페이지는 죽으면 클라우드플레어가 죽은셈이라 쟤보다 뉴스기사가 더 빠를 것 같다.
깃북으로 관리하던 운영 이슈는 리빌딩 완료했다. 맵샷 서브 도메인으로 블로그를 개설했다. 굳이 바꿀 필요는 없었는데, 깃북 한글 씹힘 문제가 몇년째 제자리라 타이핑할때 불편해서 변경했다.
우려되는 점은?
오라클의 안전성
만약 개발쪽 인프라, 그러니까 오라클 서버를 운영 쪽으로 넘기면 걱정되는 건 단 한가지다. 오라클 클라우드 자체의 안정성이다.
얘네들이 메일로 점검일자 알려주면 그나마 양반이다. 느닷없이 연결이 끊기다가 갑자기 되는건 다반사고, ‘점검이 있었다, 이제 잘될거다’ 라는 식의 통보도 많다. 그럼에도 불구하고 인프라 이전을 고려한 이유는 api 서버의 중요도가 현저히 낮아졌기 때문이다. 만약 서버 터졌다고 가정하면 먹통이 되는 기능이 뉴스레터, 공지사항 정도인데 사실 얘네는 내일 당장 없애도 운영 자체에는 큰 영향력이 없어서, 별 문제 없지 않을까 싶다.
요즘 한 가지 아이디어가 더 떠오른건 별도의 마크다운 파일을 어디 정적 사이트에 쌓아놓는 방식으로 운영할까 고민중이다. 프라이빗한 데이터도 아니라서 큰 문제가 없지 않을까 싶다. 뉴스레터도 깃헙액션으로 배치파일 만들어놓으면 아마 전면 대체가 가능할지도??
결론
api 서버 존재 유무에 따라서 변경될 요소가 많은데 정작 이걸 아직 결정 못했다.
기능 추가 고민중인것들이 있는데, api 서버가 날아가면 다 백지화이긴 하다. 운영비를 줄일것이냐, 기능확장을 할것이냐에서 고민중인데, 어느정도 정리가 완료되면 추가적으로 작성해야겠다.
24.10.03
aws ec2는 정리했다. 람다도 국토교통부쪽 1개 남기고 다 정리했다.
개발 api 서버는 정리했고 오라클 클라우드를 프로덕션쪽으로 붙였다. 로컬에서 최대한 테스트 해보는 방향으로 가야할 것 같다.
참고
- 내 경험