#fargate
#aws
Written by Paul
Why Fargate?
ECR + EC2 와 nginx를 쓰던 스택에서 Fargate + ECR 조합으로 바꾸어보았다.
이유는 다음과 같았다.
- 24시간 떠있어야 하는 서비스는 아니었다
- 내가 원했던것은 serverless 형식이었던것 같은데, Fargate를 serverless와 착각했던 것 같다.
Price Issue
무튼 Fargate를 적용해보니, ELB 등 비용이 장난아니었다. auto scaling을 지원하고 롤백 등 서비스를 관리하기 편한건 사실이었지만, 개인 사이드프로젝트에서 쓰기에는 비용이 만만치 않았다. fargate는 http 요청한 만큼 비용을 지불하는 그러한 종류의 서버리스가 아니고, TaskDefinition을 통해서 약속된 서비스들을 ECS (Elastic Container Service)로 띄워주는 역할을 한다. 따라서 무조건 1개이상의 서비스는 떠있어야 하고, 해당 비용이 월별로 지속해서 청구되기 때문에 꽤나 불필요한 비용이 많이 들었다.
따라서 해당 Fargate는 중단하고 backend service는 serverless로, nextjs 프런트엔드 서비스는 sst를 사용하여 Cloufront + serverless 조합으로 다시 운용을 할 계획이다.
기존에 EC2는 AMI로 이미지를 생성해놨긴 했는데, 굳이 그것으로 돌리는 시간대비 비용이 더 클 것 같아서 그 선택은 하지 않았다.
SST
sst는 Typescript를 지원하여 IaC를 추상화 해주는 아주 좋은 Javascript 생태계 체이닝 툴이다.
IAM을 통해서 몇가지 권한만 잘 설정해주면, sst deploy와 remove 등으로 쉽게 AWS 서비스에 대한 인프라 관리가 코드로 가능하다.