포트폴리오용으로 올려놓은 aws lightsail 링크가 어느샌가 끊겨있었다.

aws에 들어가서 확인해보니

나 혼자서만 들어갔는데도 cpu사용률이 버스트가능 영역으로 올라갔다.

이거는 높은 요금제를 사용해야 해결 된다고 한다.

기본 timeout은 6초인데 실행시간이 오래걸리는 api면 오류가 날 수 있다.

serverless.yml 파일에 provider에 timeout:원하는 초 를 대입한다.

판다스 레이어 만드는 방법

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

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

3. $ conda create -n lambda python=3.8 가상환경을 파이썬 3.8버전으로 만들어준다.

4. 가상환경으로 이동하고

5. $mkdir python 디렉토리를 하나 만든다.

6. 디렉토리에 이동해서

7. $ pip install -t . pandas 설치한다.

8.필요 없는 파일 삭제 

9. 아마존의 리눅스에서 설치될 판다스와 넘파이 파일을 다운로드한다.

 

pandas

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

pypi.org

 

numpy

NumPy is the fundamental package for array computing with Python.

pypi.org

10. 파이썬 3.8이므로, 38검색한다.

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

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

$ wget 복사한 링크 주소

13.먼저 파일명을 whl => zip으로 변경

$ mv ...numpy...whl ..numpy...zip

$ my ...pandas...whl ...pandas...zip

14. 변경된 파일을 압축 푼다.

$ unzip numpy...zip

$ unzip pandas...zip

15. 필요없는 파일들 삭제한다.

$ rm -rf *.zip *.dist-info

16. 상위 경로로 이동한다.

$ ce..

17. python 폴더를 압축한다.

$ zip -r pandas_layer.zip python

18. aws에 로그인한다.

19. s3를 선택하고 버킷을 만든다.

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

21. 저 파일은, 파일질라로 다운로드 받는다.

22. 아까의 버킷에, 다운로드 받은 pandas_layer.zip파일을 업로드한다.

23. 업로드가 완료되면, 파일명을 눌러서 속성 부분의 객체 url을 링크주소 복사한다.

24. aws 람다로 이동한다.

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

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

27. 람다에서 함수를 클릭 우리가 만든 앱을 선택한다.

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

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

30. 비주얼스튜디오코드의 requirement.txt 파일에서 pandas와 numpy는 빼준다.

 

 

serverless framework를 통해서 다음과 같이 만들 것이다.

먼저 콘솔에서 서버리스 앱 생성한다.

로컬 디렉토리에  코드 붙여넣기

sls deploy로 배포해서 테스트

깃허브닷컴에 레파지토리 새로 생성

로컬 디렉토리랑 레파지토리랑 연결

서버리스 프레임워크에서 ci/cd 설정

소스코드 수정해서, 커밋하고 푸시
자동배포 잘 되었는지 확인

putty로 ec2에 접속후 로그인하고 경로 설정한 뒤 가상환경을 활성화 시킨다.

git pull을 입력하면 git에서 수정된 소스코드를 가져와서 적용한다.

 

--server.port 원하는 포트를 적어주면 된다.

이미 정해진 포트와 겹치지 않도록 주의하자. 이제 AWS에 들어가서 포트 설정을 해줘야 한다.

보안그룹을 클릭하고

인바운드 규칙 편집을 클릭한다. 필요한 포트를 설정해주면 여러 스트림릿 앱을 돌리고, IP와 포트번호로 각 앱에 접속할 수 있다.

 

nohup이란

리눅스, 유닉스에서 쉘스크립트파일 (*.sh)을 데몬형태로 실행시키는 프로그램

터미널 세션이 끊겨도 실행을 멈추지 않고 동작하도록 함

&이란?

프로세스를 실행할 때 백그라운드에서 동작하도록 만드는 명령어

nohup streamlit run app.py & 를 입력하면 터미널 연결이 끊겨도 백그라운드로 계속 돌아간다.

1. visual studio에서 수정하고 저장한다. M 이 나오면 수정되었다는 것이다.

2. 로컬 환경에서 테스트 해본다.

3. commit 한다.

4. push 한다.

5. putty로 ssh연결한다.

6. 클론이 있는 디렉토리로 이동해서 git pull을 입력한다.

 

1번은 명령어만 쳐서 git을 설치하면된다.

2번은 만들 때 https허용을 해줬다. https의 포트번호가 443이다.

3번은 code를 누르고 https 복사해주고 git clone 주소 명령어를 입력해준다.

이러면 클론이 만들어진거다. ls를 입력했을때 클론 파일인 streamlit-car-price-app이 나온다.

https://www.anaconda.com/products/distribution

 

Anaconda | Anaconda Distribution

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

위 링크에 들어가서 아래 리눅스 이미지를 누른다.

맨위 64비트 x86에 마우스 오른쪽 클릭 링크 주소 복사를 한다.

wget 링크주소 명령어를 입력하고

sh 아나콘다파일 을 입력한다. tap을 누르면 자동완성 된다.

conda create -n 가상환경이름 python=3.7 numpy scipy matplotlib ipython scikit-learn pandas pillow jupyter seaborn

으로 설치한다. pip install streamlit으로 설치한다.

conda activate 가상환경이름 을 치면 아래 처럼 나온다.

+ Recent posts