본문 바로가기

백엔드/Serverless

서버리스 GraphQL 백앤드 구성

GraphQL이 무엇인지는 구글에서 쉽게 찾을 수 있으니 생략하겠습니다.

추천: 나의 첫번째 GraphQL서버 만들기

 

이번 포스트에서는 AWS 람다를 사용해서 GraphQL 백앤드를 구축하는 방법에 대해 알아보겠습니다.

노마드 코더님의 인스타그램 클론코딩 강의에서는 GraphQL 서버를 만들기 위해서 graphql-yoga 모듈을 사용했습니다.

graphql-yoga는 Node.js에서 GraphQL 서버를 쉽게 설정할 수 있도록 도와주는 Node.js 모듈입니다. 하지만 graphql-yoga 모듈은 항상 동작하고 있는 서버에서만 사용할 수 있습니다.

 

평소에는 유휴(Cold) 상태로 있다가 사용자 요청이 입력되면 활성화(Warm)되는 AWS 람다 서버에서는 작동하지 않습니다. 

AWS 람다 서버에서 GraphQP API를 처리하려면 apollo-server-lambda 모듈을 사용해야 합니다.

AWS 람다 함수는 Serverless 프레임워크를 통해 배포할 것입니다.

참조: 서버리스 프레임워크 초기화 및 AWS에 연결

 

그리고 AWS 람다 함수에서 prisma2 모듈을 사용하여 GraphQL resolvers를 구현할 것입니다.

서버리스 GraphQL 백앤드 구성

사실 graphql-yoga는 express 모듈에 apollo-server 모듈을 미들웨어로 추가한 모듈입니다. 실질적인 GraphQL API 처리는 apollo-server가 담당하고 있습니다. apollo-server 모듈을 AWS 람다에서 사용가능하게 만든 모듈이 apollo-server-lambda 모듈입니다.