운동하는 공대생
Docker Container Image 로 AWS Lambda 함수 구현 본문
728x90
반응형
Intro
Docker container Image 기반으로 AWS Lambda 함수를 구현을 어떻게 하는지 설명을 하겠다.
Process
- EC2
- EC2 생성과 접속
- EC2 환경에서 Docker 설치 및 Docker Image 생성
- ECR 생성 및 이미지 푸시
- AWS Lambda 에 적용
1 .EC2
아마존 일래스틱 컴퓨터 클라우드(Amazon Elastic Compute Cloud, EC2)아마존 클라우드 컴퓨팅 플랫폼에서 제공하는 가상 서버이다.

Amazon Linux 환경으로 인스턴스를 생성하고 인스턴스 유형 그리고 각종 설정을 해서 인스턴스를 생성한다.
2 .EC2 생성과 접속

인스턴스를 환경에따라 접속하는 방식이 다른데 독립 실행형 ssh 클라이언트를 사용하였다.
윈도우의 경우 PuTTy 를 사용하여 연결이 가능하다.
나는 MacOs에서의 터미널을 이용하여 접속하였다.
ssh -i "키 파일 이름" "AMI 지침에 따라 지정된 DNS 주소(ex: user@ec2-12312312-31.compute-1.amazonaws.com)"
이렇게 터미널에서 EC2 인스턴스를 생성할 당시에 다운받는 키 파일이 있는 디렉토리에서 접속을 해야한다. 필요한 경우 다음 명령어로 키가 공개적으로 표시한다.
chmod 400 docker.pem
-초기화면

3. EC2 환경에서 Docker 설치 및 Docker Image 생성
EC2 에 접속한 뒤, Docker를 설치한다.
패키지 업데이트
sudo yum update -y
docker 설치
sudo yum install docker -y
docker 서비스 실행
sudo service docker start
ec2-user를 docker 그룹에 추가
sudo usermod -a -G docker ec2-user
도커파일 생성
vi Dockerfile
-Dockerfile
Docker Image 기반 환경 설정
From amazon/aws-lambda-python:3.7
pip 명령어 업그레이드
RUN /var/lang/bin/python3.7 -m pip install --upgrade pip
가상환경 로컬파일에서 생성해둔 .txt(설치하고자 하는 라이브러리 목록)파일을 도커로 복사
COPY requirements.txt home/ec2-user/docker/lambda_function.py.txt
복사함 파일 실행
RUN pip install -r home/ec2-user/docker/lambda_function.py.txt
가상환경 로컬파일에서 생성해둔 .py(AWS lambda 코드)파일을 도커로 복사
COPY lambda_function.py home/ec2-user/docker/lambda_function.py
파일 실행
RUN cp home/ec2-user/docker/lambda_function.py /var/task/
lambda_function.handler
CMD ["lambda_function.lambda_handler"]
-requirements.txt
scikit-learn==0.23.1
-lambda_function.py
import boto3
import time
from botocore.vendored import requests
import sklearn
import base64
import json
def lambda_handler(event, context):
#TO-DO code
return
4 .ECR 생성 및 이미지 푸시
aws cli 접근 키값을 초기화 (IAM 에 접속하여 따로 사용자를 지정하여 키값을 받는게 가능)
aws configure
ecr 로그인을 위해서 암호화된 비밀번호를 받아온다.
aws ecr get-login --region "리전명"
cli 를 사용하여 인증 토큰을 검색하고 docker 클라이언트를 인증
aws ecr --region "리전명" | docker login -u AWS -p "암호" 123456789.dkr.ecr.us-east-1.amazonaws.com/dockerrepo
docker 이미지 생성
docker build -t "이미지 이름"
생성한 이미지와 ecr을 태그를 지정
docker tag <이미지 이름>:latest "ECR 레포지토리 URI"
push 하여 ecr 에 이미지 푸시
docker push "ECR 레포지토리 URI"
사진 5
5 .AWS Lambda 에 적용
-lambda 생성

-이미지 선택

-test

728x90
반응형
'AWS > Lambda' 카테고리의 다른 글
AWS Lambda 에서 외부 API 호출하기(OCR) (0) | 2022.10.11 |
---|---|
AWS Lambda(layer-계층 생성하기) (0) | 2022.10.07 |
AWS Lambda(layer) (0) | 2022.10.06 |
AWS Gate Way(Lambda) (1) | 2022.09.21 |