Anaconda 를 사용하여 AWS Lambda Layer 특정 패키지 추가 (numpy, pandas)

신동수·2024년 2월 24일
0

AWS

목록 보기
4/26

개요

  • API 호출을 처리하기 위해 Lambda 생성이 필요하였고, Python 버전은 3.8 로 사용을 하겠다고 전달을 받아 구성이 필요하였다. 개발과정 중 pandas 패키지가 필요하다는 전달을 받았다.
  • pandas 패키지에는 dateutil, numpy,pytz 패키지가 함께 설치가 되지만 Lambda 에서는 pandas 와 numpy 패키지 버전의 문제로 특정 버전으로 설치하여 Layer 를 생성하고자 본 포스팅을 작성하게 되었다.

Anaconda 설치 (Mac)


Anaconda
위 링크로 접속하여 설치는 간단히 진행할 수 있다.
Anaconda 설치
설치 과정 구글에 많이 있어 따로 진행하지는 않겠다.

단, 20년 9월 부터는 200명 이상의 직원이 있는 기업이나 조직에서는 Anaconda 는 라이센스를 사야한다고 한다. Anaconda price


위 화면처림 anaconda3 라는 폴더가 생길 것이고, 폴더 안에 관련 프로그램이 보일 것이다.

# 설치 완료 후 CLI 에서 확인한 버전
% conda -V
conda 23.7.4

설치가 완료가 되었다면 터미널 왼쪽에 (base) 라고 보일 것이다.

% conda activate base
% conda config --set auto_activate_base false

위 명령어는 base 를 자동 활성화를 해제하는 명령어이다.

Anaconda 관련

# conda python 버전 리스트 확인
% conda search python
Loading channels: done
# Name                       Version           Build  Channel             
python                        3.8.11      hbdb9e5c_5  pkgs/main           
python                        3.8.13      hbdb9e5c_0  pkgs/main           
python                        3.8.13      hbdb9e5c_1  pkgs/main           
python                        3.8.15      h266c4f5_0  pkgs/main           
python                        3.8.15      hc0d8a6c_2  pkgs/main           
...

# conda 를 통한 특정 버전 생성
% conda create -n lambda python=3.8.18
% conda activate lambda



환경 활성화 후 python 버전 확인 (python3 명령어도 똑같은 버전이 나옴)


비활성화 후 python 버전 확인

# 주요 명령어 

#아나콘다 버전확인
conda --version

#아나콘다 업데이트
conda update conda

#가상환경 리스트 확인
conda info --envs

#현재 activate 환경에 설치된 패키지 조회
conda list

# 해당 환경 삭제
conda remove --name 환경이름 --all

#해당 환경에 패키지 삭제
conda remove -n 환경이름 패키지이름

#해당 환경에 패키지 찾기
conda search -n 환경이름 패키지이름

numpy, pands 다운로드

아래의 링크로 이동하여 자신의 환경에 맞는 파일 다운로드


numpy-1.23.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

pandas-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Lambda 는 x86 아키텍처로 생성할 예정이므로 아키텍처도 잘 확인해야한다!!!

Realse 및 Package 정보 확인 방법



Release history 에서는 릴리즈 정보를 볼 수 있으며, Download files 에서 파일의 주소를 알 수 있다.

# 가상환경 생성
% conda create -n lambda python=3.8.18
% conda actevate lambda

# 디렉토리 생성 후 이동
% mkdir python
% cd python

# 판다스 설치 후 필요없는 파일 삭제
% pip3 install -t . pandas
% rm -rf *.dist-info __pycache__ pandas numpy

# 위에서 확인한 넘파이, 판다스 다운로드
% wget https://files.pythonhosted.org/packages/93/6d/d63d5fb9077d3b29ae2792624b3705b8689023cae0f89f9bf72146c34b59/numpy-1.23.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
% wget https://files.pythonhosted.org/packages/d1/55/18b00a5426ad8a89944ab93b6b29773a556dc06af8b53a29031f861009e3/pandas-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

# 다운로드한 라이브러리 압축파일로 변경
% mv numpy-1.23.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl numpy.zip
% mv pandas-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl pandas.zip

# 라이브러리 압축해제 후 필요없는 파일 삭제, 만약 키 입력 창이 뜨면 A 입력 (모두 덮어쓰기)
% unzip numpy.zip
% unzip pandas.zip
% rm -rf *.zip *.dist-info

# 상위 경로로 이동하여 python 폴더 압축
% cd ..
% zip -r pandas_layer.zip python


판다스 설치 후 .dist-info, pycache 는 삭제 하였지만 위 2개의 경로도 삭제를 하자....

참고
https://luvris2.tistory.com/216

profile
조금씩 성장하는 DevOps 엔지니어가 되겠습니다. 😄

0개의 댓글