[Python] Pipenv 부터 AWS Lambda 배포까지 (2)

date
slug
pipenv-lambda-2
status
Published
tags
Python
summary
Pipenv 및 람다 튜토리얼 - 2
type
Post
앞선 글에서는 Pipenv를 설치하고, 이를 활용하는 법에 대해 간단히 알아보았다.
 
이번 글에서는 AWS Lambda 함수의 배포 방법에 대해 간단히 소개하고자 한다.
(※ 함수 코드 작성 방법은 생략하며, 배포 절차에만 집중한다.)
 
람다 함수를 한 번도 작성해보지 않은 사람이라면, 아래의 링크를 참고하자.
 
가상환경(Pipenv 등)을 활용해 로컬에서 개발을 완료했다면, 이제 작성한 함수를 Lambda에 배포할 차례다.

Lambda 배포 전 Zip 파일 준비하기

Lambda에서는 zip 파일을 이용한 배포를 지원한다. 물론 CLI에서 제공하는 코드에디터에 직접 코드를 작성하여도 되지만, 다소 불편함이 있기 때문에 나는 zip 파일을 이용한 배포 방식을 이용했다. 이 외에도 S3를 이용하거나, Github Actions 같은 도구를 활용해 자동 배포 파이프라인을 구축할 수도 있겠지만, 간단한 프로젝트에 자동배포 파이프라인까지 구축하는 것은 배보다 배꼽이 큰 느낌이라 하지 않았다.
돌아와서, 다시 배포를 진행해보자.

의존성 복사하기

먼저, pipenv requirements 명령어를 이용해 requiremnets.txt에 프로젝트의 의존성을 복사한다.

패키지 설치하기

다음으로는 package(다른 이름도 가능하다)라는 의존성 패키지용 폴더를 하나 만든 후, 해당 폴더 안에 requirements.txt에 저장된 모든 패키지를 설치한다. 나는 내가 사용하는 ARM 기반 Lambda 환경에 맞춰 manylinux2014_aarch64 옵션을 사용하였다. 여기서는 본인의 환경에 맞는 옵션을 넣어주면 된다. 만약 aarch64가 뭔지 모르겠다면, x86_64와 aarch64를 검색해 CPU 아키텍쳐에 대해 알아보기를 권장한다.

파일 압축 및 소스코드 추가

다음으로는 해당 패키지로 이동해, 패키지 압축을 진행한다. 추후 이 zip 파일을 Lambda에 업로드하게 된다.
마지막으로, 압축된 파일에 실제 소스코드를 추가한다. 나는 1개의 파일만 추가했지만, 프로젝트 과정에서 여러 개의 소스코드를 작성했다면 함께 추가하도록 하자.
이로써 람다에 올리기 위한 준비가 모두 끝났다. 이제 람다로 이동하자.

AWS Lambda에 배포하기

notion image
Lambda를 처음 열면 다음과 같은 대시보드를 마주할 수 있다. 만약 본인이 이미 람다를 생성해 놓았다면 이 단계는 건너뛰고, 생성하지 않았다면 우측 상단의 함수 생성 버튼을 클릭해 함수를 생성하자.
notion image
함수생성 버튼을 누른 후 본인이 원하는 함수 이름을 입력하고, 런타임을 선택한다. 나는 파이썬 3.9 버전을 사용하였으므로 Python 3.9를 선택하였다. 또한, 앞서 말한 아키텍쳐를 골라준다. 간단히 말하자면 x86_64는 인텔, AMD가 주로 사용하는 아키텍쳐이고, arm64는 모바일 프로세서나 애플(m칩셋)에서 주로 사용하는 아키텍쳐라고 할 수 있다. AWS에 따르면 일반적으로 arm64 기반의 람다가 성능적으로, 비용적으로 모두 우수하다고 한다.
더 궁굼하면 이걸 읽어보자.
notion image
Lambda 함수까지 생성이 끝났다면, 다음과 같은 화면을 마주할 것이다. 여기서 우측의 업로드 버튼을 클릭한 뒤, “.zip 파일”버튼을 눌러 앞서 만들었던 zip 파일을 업로드한다.
notion image
 
업로드가 모두 끝나면, 화면이 새로고침되며 본인의 파일을 "소스" 메뉴에서 확인 할 수 있을 것이다.
notion image
추가로, 함수가 제대로 실행되려면 하단의 런타임 설정을 편집해줘야 한다. 여기서 핸들러 함수를 <핸들러 함수가 있는 파일명>.<함수 이름> 으로 수정해줘야 람다가 제대로 동작할 수 있다.
이제 모든 준비과정이 끝났다. 이제는 테스트 기능이나, 함수 URL(잘 찾아보면 활성화 할 수 있다), 또는 API Gateway 같은 것들을 이용해 함수를 실행하면 된다.
마지막으로, 람다는 최대 15분까지만 실행이 가능하니 크롤링과 같이 시간이 오래 걸리는 작업을 할 때는 이 점을 주의하자.
 

© Daehwi Kim 2025