기억 저장소

클라우드 기반 인공지능 개발과 DevOps 실무

백엔드

백엔드 : 판다스 레이어 만드는 방법/배포시 pandas가 안되는 경우

하늘.98 2022. 1. 12. 15:19

만들어 둔 api가 로컬에서는 잘 돌아가지만 배포 한 뒤 테스트를 해볼 경우 안되는 경우가 있다.

pandas / numpy 가 안되기 때문이다.

그럴 때 이 방법을 사용하면 좋다.

(작성자의 경우 비주얼 스튜디오를 사용하였습니다.)

 

1.putty 이용해서 ec2에 접속한다.

 

2. 파이썬이 없으면, 아나콘다를 설치한다.

 


3.람다의 환경이 파이썬 3.8이므로, 가상환경을 파이썬 3.8 버전으로 만들어준다.

 

$ conda create -n lambda python=3.8

     (lambda 라는 가상환경이름과 3.8 버전의 python을 기반으로 한다.)

 

 


4.가상환경으로 이동 - 

conda activate lambda 


5. 디렉토리를 하나 만든다. 이름은 python으로 만든 뒤 이동한다.
    $mkdir python


6. 만든 디렉토리로 이동한다. 
  $cd python


7. 판다스 라이브버리를 이 디렉토리에 설치해준다.
  $ pip install -t . pandas

 


8. 필요없는 파일 삭제
   $ rm -rf *.dist-info __pycache__ pandas numpy

 

 

 


9. 아마존의 리눅스에서 설치될 판다스와 넘파이 파일을 다운로드 한다. 
  판다스 링크주소 :  https://pypi.org/project/pandas/#files  
  넘파이 링크주소 :  https://pypi.org/project/numpy/#files
   를 웹브라우저에서 열여서,

 

10.파이썬 3.8 이므로 , 위의 웹페이지에서 38로 검색한다.


11. 그 중에서, manylinux .. x86_64.whl 파일의 경로를 링크 주소를 복사한다.



12. 복사한 링크 주소를 ,putty 로 가서 ,ec2에 다운로드 받는다.
    $wget 복사한링크 주소


13. 다운로드 받은 파일 2개를 압축을 푼다.
     먼저 파일명을 whl => zip 으로 변경

(이미지에서는 pandas만 사용했다.)


     $ mv ....numpy.....whl    ....numpy....zip
     $ mv ....pandas.....whl    ....pandas....zip
14. 변경된 파일을 압축 푼다.
     $ unzip numpy....zip
     $ unzip pandas....zip

 


15. 필요없는 파일들 삭제한다.
     $ rm-rf *.zip *.dist-info
16. 상위 경로로 이동한다.
     $cd ..
17. python 폴더를 압축한다.
     $ zip pandas_layer.zip .python

18. 내컴퓨터의 웹브라우저에서, AWS 콘솔에 로그인한다.


19. AWS 사이트에서 S3를 선택하고, 자신의 아이디-lambda-layers라는 버킷을 만든다.

 


20. 버킷이 만들어지면, 그 버킷으로 이동해서, 위에서 만든 pandas_layer.zip 파일을 
     업로드한다.


21. 저파일은 내컴퓨터에는 없으므로, 파일질라를 이용해서, 먼저 다운로드 받아준다.


22. 아까의 버킷에, 다운로드 받은 pandas_layer.zip파일을 업로드한다.
23. 업로드가 완료되면, 파일명을 눌러서, 속성 부분의 '객체 URL'을 링크주소 복사한다.

 


24.AWS 콘솔에서 , 이번에는 ,람다로 이동한다.


25. 람다 화면에서, 왼쪽의 계층 메뉴를 선택한다.


26. 이름적고, S3의 링크넣고 , x86_64, python3.8로 생성한다.


27. 람다- 애플리케이션 메뉴로 가서, 우리가 만든 앱 선택후,
    밑으로 스크롤하면, ApiLambdaFunction 이 있다. 이것을 클릭!


28. Layers 를 클릭한 후 , Add a layer 클릭


29. 사용자 지정 레이어를 선택한후, 아래쪽 목록 누르면 , 우리가 만든 레이어가 나온다.

 

 

numpy

NumPy is the fundamental package for array computing with Python.

pypi.org

 

pandas

Powerful data structures for data analysis, time series, and statistics

pypi.org