ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 기존 EB 로 진행되어지던 프로젝트 Lambda 로 전환
    잡담 2023. 5. 29. 19:23

    서론

    기존 주식관련 정보제공 플랫폼에 관련하여 일을 진행한 적이 있다.

     

    그때 배포환경이 EB로 구축이 되어있었고 비용이 월 약 100만원에서 200만원 사이로 나왔던 것으로 확인이 되었다.

    그리고 사용자는 유료 사용자가 100명 정도가 있고 무료 사용자의 경우 약 1,000명 정도가 있었다. 

     

    그래도 나름 초기 플랫폼치고 서비스의 이용자가 있는 플랫폼이였다.

     

    그런데 나는 사실 여기서 보면 의아한 부분이 있었다. 대략 사용자가 1,000 명 정도인데 왜 서버 비용이 저렇게 많이 나오는가?

     

    내가 생각 했을때에는 월 30만원 정도로 절감할 수 있다 생각했다.

    그리고 또 하나의 문제가 무엇이냐면 특정 기능을 수행하면 서버가 순간 다운되었다가 다시 스케일링 되는 형태였다.

    이때 지연시간이 존재했고 그로인해서 다른 사용자도 영향을 받게되는 것이였다.

    물론 스케일링이 되고 시간이 지나면 괜찮아졌지만, 뭔가 매끄러움은 없었던 것 같았다.

     

    그럼에도 여기에 대해 바로 개선하기에는 조금은 어려운 상황이기는 했다.

     

    이유

    기본적으로 리스크가 있는 작업이었고(기존 사용자가 있는 상태에서 어떠하든지 일정시간의 장애를 경험할 수 밖에 없는 상황),

    그리고 우리나라 주식 뿐만 아니라 해외주식까지 다루고 있다보니 변경할 수 있는 시간을 잡기가 어려웠다.

     

    사용자가 없으면 사실 그냥 배포환경을 바꾸는 것에 그렇게 크게 어려움은 없었을 것 같다.

     

    현재 상황 요약

    문제점

    1. 비용이 너무 많이 나온다

    2. 하나의 기능 때문에 오토 스케일링이 일어나고 그 동안에 지연시간이 발생 -> 비용 증대 요인 중 하나

     

    해결방법

    1. 기존 서버의 사양을 적절한 테스트를 통해서 설정한다

    2. 특정 기능만 따로 분리하는 형태로 변경 후, 기존 서버의 사양을 대폭 낮춤 

    3. 서버리스 형태로 변경하기

     

    선택에 도움을 줬던 부분

    1. 서버에 그렇게 많은 노력을 기울일 수가 없다(인력부족).

    2. 비용의 문제는 현재 심각하다.(기존에는 크레딧으로 결제 중, 이게 소진되면 바로 지출로 잡힌다.)

    3. 전체적으로 AWS 에 그렇게 많이 친숙하지 않은 사람들

    (해당 서비스를 외주를 통해서 납품을 받고 사용중, 외주측에서도 관리 측면으로는 도움을 줄 수 있는 환경이 아니었다)

     

    해결방안

    사실 스트레스 테스트를 통해서 적절한 사양을 찾는 것도 좋은 방법이 될 수도 있었을 것 같다.

    서버에 관심이 있는 사람이 회사내에 있었다면 말이다.

     

    하지만 현실은 그렇지 못했고 서버에 노력을 많이 할애할 수 있는 환경이 아니었다.

    그래서 lambda 를 통해서 배포환경을 변경하게 되었다.

     

    이유는 기존에도 Lambda를 통해서 많은 프로젝트들을 진행했었고

    EB 같은 경우에는 설정하는 부분에서 많은 시간을 할애해야하다보니

    지금같이 관리의 측면에서는 매우 벗어나는 영역이었다.

    그러다보니 Lambda를 선택하게 되었고 또한, 분리라는 선택지를 고를 수도 있었지만

    미래에도 이러한 경우가 생길 경우에 또 다시 이러한 대응을 해야할 환경이 생겨지다보니 일단은 잠깐의 시간유예를 두어서

    조금 더 깊게 생각해보는 방향으로 진행하게되었다.

     

    시간을 늘리기위해서는 크레딧 소진되는 시기를 뒤로 미룰 필요가 있었기 때문이다. 

     

    실질적으로 Lambda를 통해서 배포하는 중에는 그렇게 크게 문제는 없었다.

    워낙 많이 했던 작업이기도 했고 다행히 version 또한 맞았기에 따로 어려움이 없었던 작업이었다.

    Zappa 를 통해서 배포를 진행했고 해당 주식장이 아예 멈추는 주말에 작업을 진행했다.

     

    그리고 어떻게 배포를 했는지에 세세하게 적지않은 이유는 나보다 더 잘 쓴 사람들이 요즘은 너무 많다.

    그냥 키워드만 던지고 검색만 하면 요즘은 손쉽게 찾을 수 있는 것 같다.

     

    결론

    결과는 우리가 원하는 예상치대로 나왔다.

    시간을 벌게되었고(크레딧 소진시기를 미루게 되어짐), 신기능 개발에 몰두할 수 있었다.

     

    이 문제가 발생한 가장 큰 요인은 외주를 통해서 받았을 때 적절한 사양으로 받지 못한 것이 가장 큰 요인이었다.

    처음부터 적절한 사양으로 받았으면 아마 시간적 여유가 생겨서 더 나은 방안을 모색했을 것 같았지만

    현실은 시간에 문제에 부딪혀 가장 익숙한 방법으로 해결하게 된 방법이기 때문이다.

     

    그래서 그 부분이 아쉽기는 하다.

    왜냐하면 그쪽에서는 템플릿 형태로 찍어내는 배포환경을 갖추다보니 문제가 생기면 템플릿을 바꾸어서 하다보니

    적절한 세팅을 못한다는 것이 있고

    그쪽에서는 따로 AWS 에 대해 잘 다루지도 못하고 다른 사람들에게 받은 설정파일을 통해서 작업을 하다보니

    대응을 못하는게 매우 아쉬웠던 것 같다.

Designed by Tistory.