server - aws lambda layer 추가
lambda에 너무 많은 패키지를 설치하도록 하면 작동이 정상적으로 되지 않습니다.
따라서 레이어 에 따로 설치를 하도록 하겠습니다.
1. 먼저 설치할 패키지를 내 lambda와 동일한 환경을 찾습니다.
- 패키지 다운로드는 pypi 에서 가능하며 반드시 여러분의 환경에 맞도록 합니다.
( aws lambda 는 아마존 리눅스 이기 때문에 같은 환경인 ec2 에서 진행, manylinux_x86으로 다운받습니다. )
2. ec2 에서 python폴더를 생성하고 wget으로 파일을 다운로드합니다.
- 폴더 생성은 mkdir python
- 리눅스이기때문에 주소를 복사하셔서 wget [주소] 로 다운받습니다.
3. 다운받은 파일을 전부 압축을 해제하고 마지막에 다운로드 받았던 파일은 삭제합니다.
- unzip 다운로드받은파일.whl
- rm -rf *.whl (* 대신에 파일명 하나씩 입력도 가능합니다.)
4. 이제 이 폴더를 통채로 압축합니다.
- cd .. 으로 최상위폴더로 갑니다.
- zip 파일명.zip python 으로 압축파일을 만들어줍니다.
5. 이 파일을 내 PC로 옮깁니다. ( 저는 filezilla 를 이용하겠습니다.)
6. 다운로드 받은 이파일을 AWS s3 에 먼저 업로드를 합니다.
버킷을 새로 만듭니다.
만든 버킷에 파일을 추가합니다.
추가할때는 반드시 python3.9 를 선택하셔야합니다.
7. AWS 에 lambda 의 계층으로 들어가 계층을 추가합니다.
여기서 이름,설명, s3에서 업로드를 선택하시고 x86_64를 선택합니다.
그리고 실행시간 항목에 python3.9 런타임을 반드시 설정하셔야 합니다.
( 지금은 python으로 작업중이기 때문입니다. )
8. 계층을 생성하셨으면 내 lambda 서버에 layer 추가를 해줍니다.
사용자 지정 계층을 선택하시고 만들어 둔 레이어를 선택합니다.
9. 비쥬얼 코드에서 credentials.txt 에서 내가 다운로드 받은 패키지를 지우고 다시 배포 합니다.
10. 다시 배포된 서버를 포스트맨으로 테스트합니다.
*** 수업중 메모장
1. pandas 의 부재 (pandas , numpy 설치하기)
2. lambda 의 용량 문제
- 50mb 제한이지만 pandas,numpy가 이미 50mb를 넘는다.
해결방안
1. putty ec2 접속
2. 파이썬이없으면 아나콘다설치
3. 람다의 환경이 파이썬3.9이므로 ec2 도 3.9로 만든다.
conda create -n lambda39 python=3.9
4. 가상환경으로 이동
5. 디렉토리를 1개 생성 이름은 python 으로 !!
mkdir python
6. 생성한 디렉토리로 이동
cd python
7. amazone linux 에 설치할 넘파이와 판다스 파일을 찾는다.
https://pypi.org 에서 찾는다.
8. numpy,pandas,pytz 를 ec2 에 wget으로 파일을 다운로드 받는다
9. unzip 명령어로 압축을 푼다.
10. 필요없는 원본 .whl 파일 제거
rm -rf 파일명(폴더명)
rm -rf *.whl (모든whl 확장자 삭제)
11. 상위 경로로 이동 (python 폴더가 보이는 경로)
12. python 폴더를 압축한다.
zip -r 압축파일명 압축할디렉토리명
13. 압축된 파일을 내 pc로 다운받습니다.
14. 람다 레이어 생성을 위해서 , aws 콘솔에 접속한다.
15. aws s3 에 위 파일을 업로드하기 위한 버킷을 생성한다.
16. 생성한 버킷에 파일을 업로드한다.
17. lambda 에서 계층을 생성하여 , 내 서버에 추가한다.
( s3 url, x86_64 , python 3.9)
18. layer에서 설치해줬기 때문에 비쥬얼 소스코드의 requirements 에서 pandas 와 numpy 를 지워준다.