AWS Lambda를 이용한 AI 모듈 구현: AWS Lambda 실습

NNIJGNUS·2024년 12월 23일

이전 게시물에서는 AWS Lambda를 이용한 Serverless의 특징을 알아봤다.

이번에는 AWS Lambda를 이용해 간단한 API를 만들어보고 동작을 확인해보도록 하자.

함수 생성하기


AWS Lambda 서비스의 대시보드에서 위와 같은 화면을 만날 수 있다.
오른쪽 위의 함수 생성 버튼을 클릭!

이런 화면이 우리를 반겨준다.

함수의 이름을 정해주고, 런타임 환경을 지정해준다.
Node.js, Java, Python, Go 등 다양한 언어를 이용해 런타임 환경을 구성할 수 있으며, 나는 파이썬을 이용하기로 했다.

기본 실행 역할 변경 이라는 탭을 볼 수 있는데, 해당 Lambda 함수에 접근할 수 있는 역할을 생성하거나, 기존의 역할을 부여할 수 있다.

새 역할 생성을 선택했지만, 기존 역할이 있다면 선택해도 무방하다.

이후 함수 생성을 클릭해주자.

코드 작성

람다 함수가 생성됐다면, 아래와 같은 인터페이스를 확인할 수 있다.

업데이트 이전에는 수정하기 힘든 에디터를 지원해줬는데, vscode 인터페이스를 제공하도록 바뀌었다.

이 람다 함수를 호출한다면 lambda_hander() 함수가 실행된다.

Request Body에 담긴 값을 그대로 리턴할 수 있도록 코드를 약간 수정하자.

def lambda_handler(event, context):
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps(event["key"])	# Body의 "key"를 읽어와 반환
    }

Deploy 버튼을 클릭해 수정사항을 배포해줄 수 있다.

그리고 아래의 Test 버튼을 눌러준다면, 새로운 테스트 이벤트를 생성하거나 기존 테스트 이벤트를 사용할 수 있다.
간단한 테스트 이벤트를 만들어보자.

테스트 작성


테스트 이름을 정해주고, 요청 값의 Body가 될 Event JSON을 작성해준다.
테스트가 성공적이라면, 반환값이 내가 작성한 Hello from Lambda! 가 반환될 것이다.

Save 를 클릭해 작성한 테스트 이벤트를 저장해주고, 이 테스트 이벤트를 실행해보자.

성공적으로 수행됨을 확인할 수 있었다.

배포

이제 API Gateway를 통해 Lambda 함수를 배포해보자.
API Gateway 를 이용한다면 배포할 API의 경로, HTTP Method 등을 설정하고
서비스의 API들을 통합적으로 관리할 수 있기 때문에 편리하다.

API Gateway 서비스에 들어가면 해당 대시보드를 확인할 수 있는데, 오른쪽 위 API 생성 버튼을 클릭하자.

다양한 API들을 생성할 수 있지만, 오늘 실습에서는 REST API를 생성해보자. 구축을 클릭해 API를 생성해준다.


식별하기 편리한 API 이름을 설정해주고 API 생성 버튼 클릭


그렇다면 해당 대시보드를 확인할 수 있다. Lambda 함수와 연결하기 전에 경로를 설정해주도록 하자.
왼쪽 상단의 리소스 생성을 클릭


이런 화면을 확인할 수 있을텐데, 리소스 이름 을 입력해 경로를 설정할 수 있다.
내가 설정한 경로는 /hello 임을 알 수 있다.


경로가 성공적으로 생성된 것을 확인할 수 있다.
이제는 Lambda 함수와 연결해주기 위해 오른쪽 중앙의 메서드 생성을 클릭


메서드 유형을 통해 HTTP Method를 명시한다.
통합 유형Lambda, 그 아래에 연결하고자 하는 람다 함수를 선택해준다.


다시 이 대시보드로 돌아왔다. Lambda 함수가 연결된 것을 확인할 수 있다.
이제 배포를 위해 오른쪽 상단의 API 배포 를 클릭


이러한 창을 확인할 수 있다. 생성된 스테이지가 없기 때문에 새로운 스테이지를 생성해준다.
이 스테이지의 이름은 API 경로의 최상단 경로가 된다. 즉, 오늘 실습에서 API 경로는 /prod/hello가 되겠다.


왼쪽 탭에서 스테이지를 클릭한다면 해당 대시보드를 확인할 수 있다.
URL 확인하고, 포스트맨을 통해 테스트해보자.


성공적으로 실행됨을 확인할 수 있다.

오늘은 Lambda 서비스를 통해 서버리스 API를 작성하고, API Gateway를 통해 이를 배포해보았다.
다음 게시글에는 LangChain 프레임워크를 통해 뉴스 요약 API를 만들어보도록 하겠다.

0개의 댓글