회사에서 AWS로 EC2만 주구장창 사용하다가, 비용적인 문제와 Scale up / out 에 대한 고민이 깊어지기 시작했다.
Spot Instance를 최대한 활용해보기도 했지만 기본적으로 24시간 EC2를 켜두는 것은 잘못된 방법인것 같았다.
그래서, AWS에서는 쓰는만큼만 사용하면 되는 Serverless한 서비스들로 눈을 돌렸다.
너무나 다양한 서비스들이 있기에, 기존에 사용하던 것들을 하나씩 대체하면서 개발 환경을 구성해보기로 했다.
우선 AWS Console에서는 (비교적🤔) 쉽게 Lambda와 API Gateway 구성을 할 수 있다.
그렇지만 개발자들이 매번 그 구성을 따라하면서 직접 개발하고 배포하기에는 너무나 리스키한 부분이 많다.
(AWS Console에 들어와서 뭔가 직접 조작한다는 것은 권한관리를 엄격하게 하고 있지 않은 경우에는.....)
또한 Lambda함수는 개발환경과 배포가 영 편하지 않다.
그래서 AWS CDK를 활용해서 API Gateway와 Endpoint로의 Lambda연결까지를 구성해보고자 했는데, 쉽지 않았다.
우선 CDK를 이해하는건 둘째치고, 사용하는 것도 처음에는 익숙하지 않았다.
기본적으로 Cloudformaition을 통해서 만들어지는 Stack이라는 구조인데, 이미 기존에 생성된 Resource들은 가지고와서 설정만 간단히 바꿔 사용하는 것이 거의 불가능했다. (내가 못하는걸까....😞)
때문에 기존에 사용하던, 일반적인 방법으로 만들어서 사용하던 Resource를 이용하는 방법으로 진행하다가 포기하고, 아예 처음부터 모든 Resource를 구성하는 방법으로 진행했다.
Lambda 함수에서 일반적으로 사용하게 되는 Http Endpoint로의 단순 API Gateway는 (API REST Gateway보다) 저렴하지만 다양한 기능이 없다. 뭔가 아쉽다. REST 로 기능을 사용하고 싶은데, 구글링만 일주일 내내 하고, 검색해서 나오는 Article을 거의 모두 읽은 것 같다.
'개발' 카테고리의 다른 글
| Cloudfront Serving. 그런데, CORS? (0) | 2021.08.29 |
|---|---|
| AWS에서 Serverless 배포 생각정리 (0) | 2021.07.25 |
| ECS with ALB (0) | 2021.07.15 |
| EC2, Fargate, Lambda. 뭐쓰지? (0) | 2021.07.10 |
| Gitlab CI/CD 사용하기 (0) | 2021.07.05 |