군침이 싹 도는 코딩

Lambda layer 만들기 (1) numpy, pandas 라이브러리를 만드는 법 본문

AWS/Lambda

Lambda layer 만들기 (1) numpy, pandas 라이브러리를 만드는 법

mugoori 2023. 1. 11. 16:10

# AWS lambda serverless 를 만들어서 api를 실행시키면 이러한 오류가 뜰때가 있다

이 오류는 람다의 할당량을 초과했을때 나는 에러이다 이것을 해결하기 위해서는

레이어를 따로 만들어줘서 그 안에 용량이 큰 라이브러리를 설치해주어야 한다

 

 

 

# 레이어는 여기서 확인할 수 있다

 

 

 

$conda create -n lambda39 python=3.9

# 바로 람다에 깔수 없기때문에 SSH를 이용해 EC2 서버에 접속해준다

그 뒤 파이썬이 없다면 아나콘다부터 설치하고 가상환경을 파이썬 3.9버전으로 세팅한다

 

 

 

$conda activate lambda39 # 가상환경 변경
$mkdir python # python 폴더 만들기
$cd python  # python 디렉토리로 이동

# 그 다음 가상 환경을 이동하고 디렉토리를 하나 만든다 이름은 python으로 한다

이후에 새롭게 추가할 레이어를 담을 디렉토리를 만들때에도 이름은 반드시 python으로 한다

그 후 python 디렉토리로 이동

 

 

 

넘파이 : $wget https://files.pythonhosted.org/packages/43/55/fea3342371187dea4044521c0ba82b90fb5a42fb92446be019b316dd3320/numpy-1.24.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
판다스 : $wget https://files.pythonhosted.org/packages/5e/ed/5c9cdaa5d48c7194bef4335eab3cdc2f8afa868a5546027e018ea9deb4c3/pandas-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pytz : $wget https://files.pythonhosted.org/packages/3d/19/4de17f0d5cf5a0d87aa67532d4c2fa75e6e7d8df13c27635ff40fa6f4b76/pytz-2022.7-py2.py3-none-any.whl

# 아마존 리눅스에 설치 할 넘파이 판다스 pytz를 pypi에서 찾아 다운로드한다 설치 명령어는 wget 이다

해당 코드를 달러사인을 빼고 붙여넣기해도 된다 잘 들어갔는지 확인도 해준다

 

 

 

 

# 이후에 다른 라이브러리도 계층으로 추가하고싶다면 pypi에서 다운로드 받으면 된다

이때 그 라이브러리를 쓰기 위해 필요한 라이브러리는 따로 알려주지 않기때문에 

pip install 해당라이브러리를 인스톨해서 확인하면 된다

예시에서는 email_validator를 설치하자 3개의 라이브러리가 설치된것이보인다

이것을 모두 설치해주지 않으면 에러가나기때문에 꼭 확인해서 전부 설치해준다

 

 

 

넘파이 : $unzip numpy-1.24.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
판다스 : $unzip pandas-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 
pytz : $unzip pytz-2022.7-py2.py3-none-any.whl

# 다운로드 받은 파일을 압축을 풀어준다 압축을 푸는 명령어는 unzip 이다

 

 

 

 

$rm -rf 파일명(폴더명) # 하나씩 삭제하고싶을때
$rm -rf *.whl # .whl을 전부 삭제하고싶을때

# 필요없는 원본파일(.whl) 을 삭제한다 명령어는 rm -rf 파일명이나 디렉토리명인데

rm -rf *.whl로 whl 확장자가 붙은것을 한번에 삭제할 수 있다

 

 

 

 

 

$cd ..

# 이제 python 폴더가 보이는 상위 폴더로 이동한다 명령어는 cd .. 이다

 

 

 

 

$zip -r 압축파일명 압축할디렉토리명 # 명령어
$zip -r numpy_pandas_layer_39.zip python # 해당 예시에서 사용한 코드

# 이제 파이썬 폴더를 압축해야한다 압축 명령어는 zip -r 압축파일명 압축할디렉토리명

 

 

 

# 이제 파일질라를 통해 EC2서버로 연결한 다음 압축했던 python 디렉토리를 로컬 컴퓨터에 다운로드한다