Aws TechCamp라는 AWS 기술을 실시간 실습을 통하여 빠르고 쉽게 향상시킬 수 있는 프로그램을 접하게 됐습니다.
11/26(화) ~ 11/28(목) 까지 무료로 진행하는 세션인데요. 무료로 여러 AWS 서비스에 대한 설명 및 튜토리얼을 경험할 수 있어 신청해보았습니다.
첫번째 세션의 주제는 AWS 서버리스로 서버 고민 없이 웹 애플리케이션 구축하기였어요.
위 AWS 서비스들을 활용하여 API 서버와 DB 서버를 구축할 필요없이 백엔드 환경을 구축하는 방법을 알려줬어요.
기본적인 서버리스 프로세스는 다음과 같았아요.
dynamo DB를 통해 RDB와 같은 DB 서버없이 DB 환경을 설정할 수 있구요.
lamda를 통해 API 함수를 만들어 DynamoDB와 통신하고 API Gateway를 통해 lamda 함수에 대한 endpoint를 생성할 수 있죠.
현재 진행하고 있는 사이드 프로젝트의 백엔드를 Spring boot를 활용하여 API 서버를 AWS EC2에 배포하여 사용하고 있고 postgreSQL DB는 AWS RDB에 배포하여 사용하고 있습니다.
프리티어를 통해 두개의 서비스를 사용하고 있는데요. EC2의 경우, 아무래도 프리티어 사양으로 진행하다보니 메모리,CPU가 제한적이라 빌드 및 배포 과정에서 이슈가 있습니다. 인스턴스에서 빌드하고 jar 파일을 실행한 뒤에,조금 뒤에 또 다시 배포 과정을 진행하면 먹통이 됩니다. 이는 메모리,CPU가 제한적이기 때문인데요. 이러한 이슈 때문에 시간을 두고 배포를 진행해야한다는 번거로움이 있습니다.
현재 EC2 인스턴스를 2개를 사용하고 있습니다. 프리티어일지라도 인스턴스 한대는 무료이긴 하지만 한달에 750시간 무료 제공이라 나머지 인스턴스 한대 값은 지불해야해요. 뿐만 아니라 VPC 또한 사용해야하기 때문에 이에 대한 비용을 지불해야하구요.
RDB는 프리티어면 750시간 무료제공이기때문에 프리티어 기간동안은 무료로 이용할 수 있어요.
하지만 프리티어 기간이 종료되면 RDB에 대한 비용도 과금되겠죠.
API 서버와 RDB 서버를 따로 구축하지 않아도 되어 2개의 서버비용을 절감할 수 있습니다.
저처럼 백엔드 환경을 구성하기 위해서는 API서버와 RDB 서버를 구축해야하고 이를 AWS 서비스를 가지고 활용한다면 AWS EC2 인스턴스,VPC, RDB를 구성해야합니다.
프리티어가 종료되고 이를 다 과금해야한다면 꽤나 비용이 나가게 되죠. RDB의 과금이 제일 큰것으로 알고 있습니다.
하지만 서버리스 환경으로 구성하면 이보다 비용을 절감할 수 있습니다.
EC2 인스턴스나 RDB는 계속 가동을 해야하기때문에 고정적으로 비용이 지출되지만 lamda,dynamoDB,api gateway와 같은 서비스들은 온디맨드 방식으로 과금되기 때문에 적게 사용하면 그만큼 비용이 적게 나옵니다.
그래서 2가지를 비교해봤을 때, 서버리스 환경이 더 저렴하다고 판단했습니다.
spring boot나 nodejs 프로젝트 환경을 따로 설정하지 않아도 AWS 서비스만으로 백엔드 환경을 설정할 수 있습니다.
백엔드를 구축하기 위해서는 API서버뿐만 아니라 이에 대한 프로젝트 셋팅을 해야하는데요. 저의 경우 spring boot로 구성하였습니다. 하지만 백엔드에 대해 잘 알지는 못해요.
서버리스 환경을 활용하면 spring boot 등의 코드의 지식이 많이 없어도 AWS 서비스내의 UI를 통해 여러 설정들을 간편하게 할 수 있습니다.
그래서 제가 내린 판단은 백엔드에 대한 경험이 없고 이를 구성할 리소스를 크게 할애하고 싶지 않다면 서버리스 환경으로 백엔드를 구축하는 것도 좋은 솔루션이라고 생각합니다.
백엔드 개발도 관심이 있지만 저의 상황은 프론트 개발에 더 집중해야하는 상황이라 위와 같은 대안이 좋은 솔루션이 될 것 같다는 생각이 들었어요.
현재 진행하고 있는 사이드 프로젝트의 백엔드 환경을 서버리스로 변경할 것인지, 그대로 API서버와 RDB 서버를 유지할 것인지는 조금 더 고민해보고 결정해야겠네요.