[AWS] Lambda에서 RDS 접근할 때 pymysql Layer 추가하기 (원클릭 스크립트)

Yuchan Han·2026년 3월 31일

AWS

목록 보기
2/7

Lambda에서 RDS 접근할 때 pymysql Layer 추가하기

AWS Lambda에서 RDS MySQL이나 Proxy에 연결하려면 pymysql 모듈이 필요합니다.
Lambda 기본 런타임에는 pymysql이 포함되어 있지 않습니다.
그래서 import pymysql을 실행하면 No module named 'pymysql' 오류가 발생합니다.
이번 글에서는 CloudShell에서 스크립트 한 번으로 pymysql Layer를 자동 생성하고 연결하는 방법을 다룹니다.


pymysql Layer가 필요한 이유

Lambda 실행 환경은 최소 구성만 제공합니다.
외부 Python 패키지는 기본적으로 들어있지 않습니다.
RDS MySQL 연결 코드를 작성하면 import 오류가 바로 발생합니다.
Layer로 pymysql을 미리 패키징하면 이 문제를 해결할 수 있습니다.

Layer의 역할
함수 코드와 의존성을 분리합니다. 여러 Lambda 함수에서 재사용할 수 있습니다.


pymysql Layer 생성 방법

수동으로 Layer를 만들려면 폴더를 만들고 pip install을 하고 zip으로 압축한 뒤 발행해야 합니다.
CloudShell 스크립트를 쓰면 Region만 입력하면 끝납니다.

CloudShell에서 아래 명령어를 순서대로 실행합니다.

curl -fsSL "https://gist.githubusercontent.com/h053698/5dc38ce7497a7bc2a33f3cbce0e63540/raw/a8bc2f39c6d16917ab07e75f23188fd96777843a/build-pymysql-layer.sh" -o build-pymysql-layer.sh
chmod +x build-pymysql-layer.sh
./build-pymysql-layer.sh

스크립트가 자동으로 pymysql-layer를 생성하고 최신 버전을 발행합니다.

원본 스크립트
https://gist.github.com/h053698/5dc38ce7497a7bc2a33f3cbce0e63540

CloudShell 실행 로그는 다음과 같습니다.


Lambda 함수에 Layer 연결 방법

Layer가 발행되면 Lambda 콘솔에서 함수에 연결합니다.

  1. 대상 Lambda 함수를 선택합니다.
  2. 계층 탭으로 이동합니다.
  3. 계층 추가를 클릭합니다.
  4. 사용자 지정 계층을 선택합니다.
  5. 자동 생성된 pymysql-layer를 선택합니다.
  6. 추가를 클릭합니다.

Layer 추가 화면은 아래와 같습니다.

이후 함수를 배포하고 테스트하면 pymysql import 오류가 사라집니다.

profile
맛있는거먹고싶어요

0개의 댓글