[nodejs] AWS Lambda로 GraphQL API 개발하기

서버리스 아키텍처는 많은 기술로 구현할 수 있지만, AWS Lambda는 서버리스 기능을 구현하고 다양한 이벤트 소스와 함께 사용할 수 있는 좋은 옵션입니다. 이제 AWS Lambda를 사용하여 Node.js와 GraphQL로 API를 개발해보겠습니다.

1. AWS Lambda 기본 설정

먼저 AWS Management Console에 로그인하여 AWS Lambda 콘솔로 이동합니다. 새로운 함수를 생성하고 실행하는 역할을 생성합니다. Lambda 콘솔의 “함수 생성” 버튼을 클릭하여 실행할 런타임 언어로 Node.js를 선택합니다. 함수 생성 시에는 적절한 권한을 가진 역할을 선택하고, 함수 코드를 업로드할 수 있습니다.

2. Node.js로 GraphQL 서버 구축

AWS Lambda 함수에 Node.js를 사용하여 GraphQL 서버를 구축할 수 있습니다. 먼저 apollo-server-lambda 패키지를 사용하여 GraphQL 서버를 초기화하고 클라우드에 배포할 수 있습니다.

다음으로 필요한 의존성을 설치합니다.

npm install apollo-server-lambda graphql

다음으로, GraphQL 스키마와 리졸버를 작성합니다.

const { ApolloServer, gql } = require('apollo-server-lambda');

const typeDefs = gql`
  type Query {
    hello: String
  }
`;

const resolvers = {
	Query: {
		hello: () => 'Hello from GraphQL!'
	}
};

const server = new ApolloServer({ typeDefs, resolvers });

exports.handler = server.createHandler();

이제 AWS Lambda에 Node.js 코드를 배포할 수 있습니다. AWS Lambda 콘솔에서 “함수 업로드”를 통해 코드를 업로드하고 해당 함수를 테스트할 수 있습니다.

3. API Gateway와의 통합

마지막으로, AWS API Gateway를 사용하여 Lambda 함수를 외부로 노출시킬 수 있습니다. API Gateway 콘솔에서 “새 API 생성”을 선택하고 적절한 설정을 추가한 후, Lambda 함수와 연결합니다. 이제 API Gateway 엔드포인트를 사용하여 GraphQL API에 접근할 수 있습니다.

이제 AWS Lambda와 Node.js를 사용하여 GraphQL API를 개발하는 방법을 알았습니다. 서버리스 아키텍처에서 GraphQL을 구현하여 더 효율적이고 확장 가능한 애플리케이션을 만들 수 있습니다.

참고 자료