나는 개인 프로젝트를 배포를 하는 과정에서 어떻게하면, 더 저렴하게 사용할 것인지 그리고 어떻게 하면 조금더 효율적으로 할수있는지 방법을 생각을 해보았다. 옛날에 EC2, AWS lightsail, AWS RDS, S3 등 여러가지 사용해보았지만, 그때는 여유가 있어 그냥 막 사용했지만, 지금 생각해보면 너무 많은 비용을 내고있었던거 같다. 심지어 나는 EC2로 마인크래프트 서버를 사용했다. ㅎㅎ 기억상 한달에 11만원 정도 나왔던거 같다.
AWS에서 무엇을 사용하는가?
보통 AWS에서 EC2, RDS를 서버를 세팅할때 vcpu라고 이야기를 많이하는데 여기에 2vcpu라고 되어있으면, 보통은 2쓰레드를 의미한다.
m4.4xlarge를 예시를 들었을때 아래 사진을 참고해보시면, 거기에서 코어당 쓰레드수가 2개이며 코어가 8개이다. 그러면 8 * 2 = 16 이기에 vcpu가 16개라는 의미는 쓰레드가 16개라는 의미를 가지고있다.
vcpu에 대해서는 여기까지만 일단 알고있고, 나머지 내가 자료를 정리하고 세팅을 무엇으로 하면 좋을지 계속 생각해본 결과 2vcpu에서도 50명 동시 접속자까지는 커버가 가능하지만, 그 이상으로는 많이 버거워보인다라는 자료를 찾았다.
나는 AWS가격을 찾아보다가 4~ 8vcpu가 기본 월 20만원이 넘어가는 것을 보고 생각이 드는게 이럴꺼면 내가 지금사용하고있는 컴퓨터가 v20CPU까지 지원되는 i9컴퓨터인데 이걸로 서버를 돌리는게 괜찮은게 아닌가 싶은 마음이 들지만, 이것 역시 무리였다. 트래픽만해도 가정집에서 돌릴수있는 양이 아니였기 때문이다.
그래서 조금더 괜찮은 개선방법은 내가 찾은 자료에서는 AWS Amplify hosting와 Amazon API Gateway + App Runner + AWS Lambda + DB인 Aurora 방식을 채택하는 방법이다. (물론 지금은 웹으로 간단하게 보여주는건 Amplify를 사용했고, 백엔드는 Lambda를 사용했다.)
위에 방법은 조금 더 유동적으로 사용할 수 있으며, 사용자에 따라 서버가 증가되었다가 줄어드는 서버리스 형태로 세팅이 가능하기 때문이다. 그렇기에 조금더 사용하기가 좋을 수 있으며, 이방법이 좋아보인다고 생각했다. 그리고 제일 좋은거 사용한만큼 비용이 나오는 점이다. 물론 실시간 사용자수는 10만명도 가능하다는 판단이 들었는게 거기에 합리적인 영상도 있기 때문이다.
https://www.youtube.com/watch?v=RkB1OtJR1ag
서버리스라고 해서 다 저렴한가?
하지만 서버리스라고해서 다 저렴한가를 보았을때는 사용자들이 유동적으로 실시간으로 1000명단위가 왔다갔다 하면, 물론 저렴 할 수 있다고 생각합니다. 하지만, 초기비용이나 테스트용으로 사용한다면, 세팅비용과 사용 유지를 위해서 최소한의 비용이 나오는데, 아무리 직장인이라도 월 2~3만원 나간다면 돈이 아깝기 때문이다. 차라리 테스트용으로 제작하기위해서는 aws lightsail이나 AWS Amplify(이것도 서버리스이다.)를 사용하는게 좋을거 같다.
우선 나는 여기까지 정리를 하다보니 계속 서버를 계속 찾아보고 개선은 이걸로 마무리 하면 안되고 계속해서 정리를 해나가야 할 거 같다라는 생각이 듭니다.