[파이썬] AWS Lambda와 API Gateway를 통한 서버리스 REST API 구축

서버리스 아키텍처는 최근에 많은 관심을 받고 있는 개념입니다. 이 아키텍처를 통해 개발자는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있습니다. AWS Lambda와 API Gateway는 이러한 서버리스 아키텍처를 쉽게 구현할 수 있는 AWS의 서비스입니다. 이번 포스트에서는 AWS Lambda와 API Gateway를 사용하여 서버리스 REST API를 구축하는 방법에 대해 알아보겠습니다.

AWS Lambda란?

AWS Lambda는 이벤트 기반으로 동작하는 서버리스 컴퓨팅 서비스입니다. 개발자는 Lambda 함수를 작성하고, 이 함수가 특정 이벤트에 대해 실행되도록 구성할 수 있습니다. 함수는 필요할 때만 실행되며, 사용한 만큼만 비용이 청구됩니다. Lambda 함수는 여러 가지 언어로 작성할 수 있으며, 이번 예제에서는 Python을 사용해보겠습니다.

API Gateway란?

API Gateway는 외부로 노출되는 REST API의 진입점 역할을 하는 AWS 서비스입니다. API Gateway는 요청을 처리하고 Lambda 함수와 연결하여 비즈니스 로직을 실행합니다. 또한, 보안, 인증, 모니터링 등 다양한 기능을 제공합니다. API Gateway를 통해 개발자는 유연하고 확장 가능한 REST API를 쉽게 구축할 수 있습니다.

서버리스 REST API 구축 단계

  1. Lambda 함수 작성
  2. API Gateway 설정
  3. Lambda 함수와 API Gateway 연결

1. Lambda 함수 작성

다음은 Python을 사용하여 간단한 Lambda 함수를 작성하는 예제 코드입니다.

import json

def hello(event, context):
    body = {
        "message": "Hello, world!"
    }

    response = {
        "statusCode": 200,
        "body": json.dumps(body)
    }

    return response

이 예제에서는 hello 함수가 Lambda 함수의 핵심입니다. 이 함수는 eventcontext 매개 변수를 받아와서 실행되며, body 변수에 응답 메시지를 작성합니다. 마지막으로 response 변수에 HTTP 응답을 설정하여 반환합니다.

2. API Gateway 설정

AWS 콘솔에 로그인하고 API Gateway 서비스로 이동합니다. 새로운 API를 만들고 리소스와 메서드를 구성합니다. 여기에서는 /hello 엔드포인트를 사용하는 GET 메서드를 만들어보겠습니다. 이 메서드는 방금 작성한 Lambda 함수와 연결될 것입니다.

3. Lambda 함수와 API Gateway 연결

API Gateway에서 GET 메서드를 선택하고, Lambda 함수 연결 설정으로 이동합니다. 여기에서는 방금 작성한 Lambda 함수를 선택하고, 적절한 트리거 설정을 구성합니다. 트리거는 API Gateway로 설정해야합니다.

이제 API Gateway의 /hello 엔드포인트에 대한 GET 요청이 Lambda 함수로 라우팅되고, 응답으로 “Hello, world!” 메시지를 반환할 것입니다.

결론

이렇게 AWS Lambda와 API Gateway를 사용하여 서버리스 REST API를 구축할 수 있습니다. 이를 통해 개발자는 서버 및 인프라 관리에 대한 부담을 줄이고, 더욱 집중할 수 있는 비즈니스 로직에 더욱 집중할 수 있습니다. 서버리스 아키텍처를 통해 애플리케이션의 확장성과 유연성을 크게 향상시킬 수 있습니다.