AWS DB 테이블에 대한 AWS Lambda CRUD API를 만드는
나의 첫 개발자 경력은 Node.js 풀스택 개발자로 시작했다. 하지만 첫 경력으로 풀스택 개발자를 하게되면 모든 면에서 배울 때 얕게 배우게되어 실무를 하면서 이해하기 어려운 점이 존재한다.
특히 초기에는 주로 React와 js에 대해서 공부를 열심히 했기 때문에 개발자 경력을 시작하기전에는 거의 프론트엔드 공부를 많이했었다.
그래서 나에게는 API 서버와 데이터베이스에 대한 이해는 더욱 더 어려웠었고 공부와 이해하는데 까지는 오랜 시간이 걸렸다.
나는 위의 과정이 그저 나한테만 일어나는 일이 아니라고 생각했다. 그래서 SteveWebService 콘솔 서비스를 만들면서 위와 같은 어려움을 겪을 개발자가 API와 데이터베이스를 조금 더 쉽게 구축하고 다룰 수 있는 기능을 생각하려고 했고 그게 바로 Lambda CRUD API Turn Key라는 기능이다.
아이디어는 아래 이미지와 같다.
SteveWebService에서 Lambda CRUD API Turn Key를 통해서 SWS Project를 선택하고 DynamoDB 또는 RDS 인스턴스 명을 선택하고 테이블 또는 컬렉션 명을 입력하면 AWS Lambda로 입력한 테이블 또는 컬렉션에 대한 CRUD API가 생성되어 선택한 SWS Project의 API Gateway에 연결되어 바로 CRUD API를 사용할 수 있게하는 것이다.
API Gateway에 바로 Lambda Function을 연결할 수 있는 이유는 SWS Project(VPC Turn Key)를 생성하게되면 API Gateway도 같이 생성되기 때문이다.
우리는 위 아이디어 대로 구현을 진행했고 아래와 같이 입력을 받도록 설계했다.
정말 쉽지 않은가? 위와 같이 생성하면 바로 내가 선택한 데이터베이스의 테이블 CRUD API가 바로 생성된다.
SWS Lambda CRUD API Turn Key 기능 보러가기
이렇게 CRUD API를 만들 수 있게됨으로써 얻을 수 있는 이점은 아래와 같다.
1. CRUD API 서버가 필요없어지게되어 그에 따른 서버 인스턴스 비용도 줄어들게된다. 왜냐하면 AWS Lambda는 요청당 비용이기 때문이다.
2. CRUD API 서버를 개발할 필요가 없어 시간을 벌 수 있게된다.
3. 간단한 마이크로 서비스를 만들 때 비즈니스 로직을 프론트엔드에 넣게 되면 따로 백엔드 개발을 진행할 필요가 없어져 빠른 프로토타이핑이 가능해진다.
자 이제 위와 같이 Lambda CRUD API Turn Key로 생성하였다면 그 엔드포인트와 사용 방법에 대한 스펙은 어떻게 알 수 있을까?
이전에 말했던 SWS Project의 Detail 화면에 들어가게 되면 API 요청 endpoint와 예제 코드를 아래 이미지와 같이 제공해준다.
위 사진의 1번은 test라는 테이블을 타겟으로 Lambda CRUD API를 생성했다는 가정하의 예제이다.
이미지에 Crud RDS Request Code 첫번째 Select Box는 메소드를 선택하며, 두번째는 기술 스택을 선택하여 요청 예제에 대한 코드를 제공한다.
두번째 화살표의 Route Path에 1번에 해당하는 Path를 넣어주면되고, 그 앞의 엔드포인트가 API Gateway 경로이다.
이로서 사용자는 AWS Cloud의 API Gateway, Lambda, CRUD API 설계에 대한 학습 없이도 SteveWebService 툴을 사용해서 API를 만들수 있게되었고 나아가서 서버 구축 및 운영비용, 개발 시간을 아낄 수 있게되었다! 너무 훌륭하지 않은가?
이렇게 우리는 계속 사용자가 AWS Cloud에 대한 학습 없이도 클라우드 아키텍처를 구축할 수 있게 도와주는 툴을 만들어 개발자가 비즈니스에 조금 더 집중할 수 있도록 도와주고 나아가 적은 인원의 개발자로도 최대한의 AWS 리소스들을 사용할 수 있도록 가치를 제공할 것이다.
다음 기사는 다른 문제 해결에 대한 히스토리를 쓰려고 한다. 끝