드레:
코딩 뿌시기
드레:
전체 방문자
오늘
어제
  • 분류 전체보기 (268)
    • Python (74)
      • Python 기초 (42)
      • Numpy (8)
      • Pandas (22)
    • Machine Learning (31)
      • Machine Learning (1)
      • Deep Learning (27)
    • AWS (22)
      • RDS (3)
      • EC2 (9)
      • Lambda (8)
      • S3 (2)
    • MySQL (24)
    • Git (8)
    • Streamlit (12)
    • REST API (22)
    • Java (24)
    • Android (36)
    • Debugging (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • volley
  • fine tuning
  • 액션바
  • EC2
  • AWS
  • 서버리스
  • pandas
  • Streamlit
  • Retrofit2
  • serverless
  • Ann
  • JWT
  • Lambda
  • GET
  • Transfer Learning
  • Java
  • CNN
  • Python
  • 깃이그노어
  • 딥러닝
  • flask
  • github
  • AWS Lambda
  • tensorflow
  • 안드로이드 스튜디오
  • API
  • aws s3
  • rest api
  • Callback
  • 네이버 API

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
드레:

코딩 뿌시기

AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (1)
AWS/Lambda

AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (1)

2023. 1. 11. 19:12

1. AWS Lambda Layer

 

 serverless를 이용하여 배포시 requirements.txt 파일에 패키지를 적어주면 자동으로 AWS에서 설치한다.

참고: https://donghyeok90.tistory.com/197

 

하지만 람다에는 할당량이 있어서 함수의 용량은 50MB를 초과할 수 없다.

이런 제약을 해소하기 위해 계층(Layer)을 이용한다.

Layer에 패키지들을 미리 설치해놓으면 aws는 람다가 실행될 때 Layer를 붙여준다.

Layer를 이용하면, 공통된 패키지를 사용하는 다른 애플리케이션을 배포할 때도 유용하게 사용할 수 있다.

 

Lambda의 할당량 참고: https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/gettingstarted-limits.html

 

 

 

2. 사용자 지정 Layer 만드는 방법

 

Numpy와 Pandas는 용량이 큰 라이브러리라서 requirements.txt 파일에 등록하고 설치하면,

람다의 할당량을 초과해 에러가 발생할 확률이 높다.

따라서 Numpy와 Pandas를 설치한 Layer를 만들어 보도록 하겠다.

 

 

1) PuTTY를 사용해 EC2에 SSH 접속한다.

  • 아마존 리눅스를 쓰는 Lambda와 같은 OS에 라이브러리를 설치해야 한다.
  • 따라서 먼저 EC2에서 라이브러리를 설치하고 나중에 그 파일을 가져오도록 하겠다.
  • EC2 접속 참고: https://donghyeok90.tistory.com/119

 

 

 

2) EC2에 파이썬이 없으면 먼저 아나콘다를 설치한다.

 

아나콘다 설치 참고: https://donghyeok90.tistory.com/120

 

 

3) Python 3.9 가상환경을 만든다.(사용할 Lambda의 환경이 Python 3.9이므로)

conda create -n lambda39 python=3.9

 

 

4) 가상환경으로 이동한다.

conda activate lambda39

 

 

5) 디렉토리를 하나 만든다. 이름은 꼭 python으로!!!

mkdir python

 

 

6) python 디렉토리로 이동한다.

cd python

 

 

7) pypi.org에서 아마존 리눅스에 설치할 파일을 찾는다.

  • numpy와 pandas 그리고 의존성이 있는 pytz 까지 필요하다.
  • python 3.9버전 리눅스용 x86_64 설치파일을 찾는다.
  • 찾은 설치파일을 좌클릭하지 말고, 우클릭해서 링크주소복사 한다.

넘파이
판다스
pytz

 

 

8) 링크주소복사한 파일을 EC2에 다운로드한다.

wget 파일url

넘파이
판다스
pytz

 

 

 

9) unzip 명령을 이용해서, 위의 3개 파일을 각각 압축 푼다.

다운로드 받은 상황. 이제 압축을 풀어준다.

unzip 파일명

압축을 다 풀었을 때 디렉토리

 

 

 

10) 필요없는 원본 파일(.whl)은 삭제한다.

rm -rf *.whl

 

 

 

11) 상위 경로로 이동한다. (python 폴더가 보이는 경로)

cd ..

 

 

 

12) python 폴더를 압축한다.

zip -r 압축파일명 압축할디렉토리명
zip -r numpy_pandas_layer.zip python

 

 

13) FileZilla를 이용해서, 압축한 파일을 내 컴퓨터로 다운로드 한다.

 

파일질라 참고: https://donghyeok90.tistory.com/133

 

로컬사이트에 다운 받을 경로를 선택한 뒤 다운 받을 파일을 더블클릭하면 된다.

 

 

이제 파일은 준비됐으니 AWS 콘솔에 접속해 Layer를 생성해야 한다.

글이 길어져 다음 포스트에 이어서 하도록 하겠다.

https://donghyeok90.tistory.com/202

 

AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (2)

AWS Lambda - 사용자 지정 Layer 생성, 설정하기(1) 1. AWS Lambda Layer serverless를 이용하여 배포시 requirements.txt 파일에 패키지를 적어주면 자동으로 AWS에서 설치한다. 참고: https://donghyeok90.tistory.com/197 하

donghyeok90.tistory.com

 

'AWS > Lambda' 카테고리의 다른 글

AWS Lambda - Github Actions를 이용한 Serverless CI/CD  (0) 2023.01.12
AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (2)  (0) 2023.01.12
AWS Lambda - serverless 배포 region 변경하기  (0) 2023.01.11
AWS Lambda - App에 필요한 패키지 설치하기. requirements.txt 사용  (0) 2023.01.11
AWS Lambda - Serverless 프레임워크로 테스트 배포하기  (0) 2023.01.11
    'AWS/Lambda' 카테고리의 다른 글
    • AWS Lambda - Github Actions를 이용한 Serverless CI/CD
    • AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (2)
    • AWS Lambda - serverless 배포 region 변경하기
    • AWS Lambda - App에 필요한 패키지 설치하기. requirements.txt 사용
    드레:
    드레:

    티스토리툴바