반응형 AWS5 AWS Lambda Scikit-Learn Layer생성하기 AWS Lambda에서 모델링을 진행하면서 scikit learn을 사용하고싶었다. 그런데,,, 로컬에 설치하고 Layer로 더해줬는데 계속 모듈이 없다는 에러가 발생했다ㅠ 그래서 구글링을 해본결과 AWS Linux환경에 맞는 모듈을 설치해야하는 것을 알았다. 그래서 AWS Linux를 도커로 띄우고 컨테이너안에서 모듈을 설치해준후 zip파일로 만들어주기로하였다! 우선 도커를 설치해야한다. 도커 설치 및 실행은 도커 홈페이지에서 다운받고 설치 후 실행시켜주면 된다. 그 후 AWS Linux 컨테이너 실행 및 접속한다. 아래 명령어로 로컬 파이썬 모듈을 설치해줄 python 디렉토리와 도커컨테이너의 볼륨을 연결하여 컨테이너 실행 및 접속한다. Lambda에서 파이썬 Layer는 python 디렉토리에 저장.. 2021. 8. 20. AWS AccessDeniedException: not authorized to perform: lambda:InvokeFunction AWS Lambda로 SageMaker endpoint를 호출하기 위해 invoke_endpoint함수를 사용했는데 아래와 같은 오류가 발생했다. AccessDeniedException: not authorized to perform: sais not authorized to perform: sagemaker:InvokeEndpoint on resourcegemaker:InvokeEndpoint on resource 알고보니 Lambda에서 AWS내의 서비스들을 사용하고 싶다면 따로 권한을 부여해줘야했다. Lambda 함수 내 구성>권한 에서 실행역할을 클릭하여 IAM 콘솔창에서 정책을 추가해준다. IAM 콘솔창 화면에서 정책연결을 통해 AWS에서 제공하는 정책을 연결하던가 인라인 정책연결 추가를 통해 .. 2021. 8. 11. Lambda에서 Pandas, Numpy Layer로 사용하기 Lambda에 대해 잘 모르고 무작정 코드를 작성했는데 pandas,numpy 등의 모듈이 없다는 오류만 계속 떠서 매우 당황했다. 알고보니 Lambda는 용량때문에 제공하지않는 모듈들이 있었고 이는 1)Layer로 더해주던가 2)코드를 업로드할때 도커와 같은 방법으로 환경을 구성하고 업로드를 해주어야했다! 나는 간편하게 Layer를 추가하는 방법을 선택했으나 이도 호락호락하지는 않았다.. 우선 임포트한 모듈에 대해 람다에서 아래와 같은 에러가 발생할 것 이다. Unable to import module 'lambda_function': No module named 'pandas' 나는 pandas와 psycopg2, sqlalchemy, numpy 모듈을 임포트하고싶었다. Numpy와 Scipy는 AW.. 2021. 8. 11. AWS Lambda에서 Sagemaker Endpoint 호출 주기적인 모델 호출을 위해서 Sagemaker 에서 생성한 Endpoint 를 호출하는 Lambda함수를 만들어보려한다. 처음에 무식하게 해보니 오류의 연속이어서 차근차근 알아낸 방법을 정리해보겠다. AWS Lambda는 AWS 서비스를 사용하고싶다면 따로 해당 서비스에 대한 권한을 줘야 사용이 가능하다. 권한없이 함수에서 해당 서비스를 호출하면 AccessDeniedException 오류가 발생한다ㅜㅜ 자세한 관련글은 이전 포스팅에 작성해두었다. 우선 Lambda 함수를 생성한다. Lambda 함수에 코드를 올리는 방법은 1) 직접 코드를 작성하거나 2) 코드와 패키지를 zip파일로 업로드 3) S3에서 업로드 하는 방법 3가지가있다. 단 코드를 업로드시 50MB의 제한이 있으니 50MB가 넘는다면 z.. 2021. 8. 7. AWS Tensorflow 모델 배포 및 endpoint 생성하기 AWS sagemaker에서 모델개발을 진행 중인데 AWS에서 제공하는 autopilot 이외에 개인이 개발한 모델의 엔드포인트를 생성해 사용하고싶어졌다. 열심히 찾아본 결과를 정리해보겠다! 우선 Tensorflow 모델을 배포하는 방법! Sagemaker - 노트북환경에서 진행하도록 한다. 1) 모델 훈련 후 해당 모델을 저장한다. # 모델 생성 model = tf.keras.Sequential([ tf.keras.layers.Dense(units=256, activation='relu', input_shape=(89,)), tf.keras.layers.Dense(units=128, activation='relu'), tf.keras.layers.Dense(units=64, activation='rel.. 2021. 8. 5. 이전 1 다음 반응형