https://www.docker.com/products/docker-desktop/
Docker Desktop: The #1 Containerization Tool for Developers | Docker
Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.
www.docker.com
๋์ปค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ container์ ๋ด์ ์ฉ๋์ ์ค์ฌ์ฃผ๋ ์ญํ ์ ํ๋ค.
๋์ปค๋ฅผ ์ค์น๊ฐ ๋๋๊ณ ์ปดํจํฐ๋ฅผ ์ฌ๋ถํ ํ์ง ์์ผ๋ฉด, ๋์ค์ ๊ฒฝ๊ณ ์ฐฝ์ด ๋จ๊ธฐ ๋๋ฌธ์ ๊ผญ ์ปดํจํฐ๋ฅผ ์ฌ๋ถํ ํ๊ธฐ ๋ฐ๋๋ค.
๋์ปค๋ฅผ ์ค์นํ๊ณ , sign up ํ๋ค.
Docker์ ๋ก๊ทธ์ธํ๋ค.
AWS
aws์ iam์ผ๋ก ์ด๋
https://codebunny99.tistory.com/104
AWS IAM ์ฌ์ฉ์ ์ถ๊ฐํ๊ณ ์ธ์ฆํค ์ป๋ ๋ฐฉ๋ฒ
IAM ์ฌ์ฉ์ ์ถ๊ฐ ์ ์ฑ ์๋ 8๊ฐ ์ฒดํฌ ์์ฑํ ์ฌ์ฉ์๋ก ๋ค์ด๊ฐ์ ์ก์ธ์ค ํค(์ธ์ฆ ํค) ๋ง๋ค๊ธฐ ์ฌ์ฉํ๊ธฐ์ ์ ํฉํ ์ก์ธ์ค ํค๋ฅผ ๊ณจ๋ผ์ค๋ค .csv ํ์ผ ๋ฐ์์ฃผ๊ธฐ -> ์๋ฃ ์ฌ
codebunny99.tistory.com
์ฌ์ฉ์๋ก ์ด๋ํ๊ธฐ
๊ถํ ์ถ๊ฐํ๊ธฐ -> ๊ถํ ์ถ๊ฐ ํด๋ฆญ
๊ถํ ์ถ๊ฐํ๊ธฐ
ECR๋ก ์ด๋
์ง์ญ ์ค์ ๋ค์ ํ์ธํด๋ณด๊ธฐ
ํ๋ผ์ด๋น์ผ๋ก ํ๋ฉด ๊ณผ๊ธ๋ ์ ์๋ค. (freetier๋ ํผ๋ธ๋ฆญ์ผ๋ก ์ ํํ๋๋ก ํ์)
serverless ๋ง๋ค ๋ ๋ง๋ค์ด์ง ํด๋๋ช ์ -dev๋ฅผ ๋ถ์ฌ์ค๋ค
ex) aws-movie-server-dev
<serverless ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ>
https://codebunny99.tistory.com/105
RestFul API๋ฅผ Serverless Framework๋ก ์ฐ๊ฒฐํ๊ธฐ
*** ์๋์ฝ๋ค ํ๋กฌํํธ์์ ๊ฐ์ํ๊ฒฝ ๋ง๋ค๋ฉด์ flask์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ด ๋ฐ์์ค๋ค *** conda create -n lambda_310 python=3.10pip install flask flask-restful mysql-connector-python psycopg2-binary passlib flask-jwt-exte
codebunny99.tistory.com
ECR์์ Public registry -> Repository๋ก ์ด๋ํด์, ์์ ->๊ถํ์ผ๋ก ์ด๋ํ๊ธฐ
์ ๋ถ ์ถ๊ฐํ๊ณ , ์ ์ฅ ๋๋ฅด๊ธฐ
์ ์ฑ JSON ํธ์ง ํด๋ฆญ
"Action" ๋ถ๋ถ์
, "ecr-public:GetAuthorizationToken" ์ถ๊ฐํ๊ธฐ
VSCode
์ํ์ผ ๋ง๋ค์ด์ ์ด๋ฆ์ Dockerfile ๋ผ๊ณ ๋ง๋ค๊ณ ,
ํ๋ฉด์ ๋ํ๋๋ extend ์ค์นํด์ฃผ๊ธฐ
ํ์ ์ด ๋ํ๋์ง ์์ผ๋ฉด ํ์ฅ ํญ์์ ๊ฒ์ํ์ฌ ๋ค์ด๋ก๋ ๋ฐ์์ค๋ค.
gitignore ํ์ผ์ ๋ค๋ฅธ github๊ฐ ์ฐ๋๋ ์์ ์ ํ์ผ์์ ๋ณต์ฌํด์จ๋ค. ๊ทธ๋ฆฌ๊ณ node_modules/ ๋ฅผ ์ฝ์ ํ๋ค.
Dockerfile ์์ฑํ๊ธฐ (ํ์ด์ฌ ๋ฒ์ ์๋ง๊ฒ ํ๋ค)
FROM public.ecr.aws/lambda/python:3.10
COPY . ${LAMBDA_TASK_ROOT}
COPY requirements.txt .
RUN yum -y install gcc
RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"
CMD [ "app.handler" ]
.dockerignore ํ์ผ ์์ฑํ์ฌ ์์ฑํ๊ธฐ
__pycache__/
.git/
.serverless/
.gitignore
.dockerignore
serverless.yml
serverless.yml ์์ ํ๊ธฐ
provider ๋ถ๋ถ ์์ ํ๊ธฐ
functions ๋ถ๋ถ ์์ ํ๊ธฐ
serverless.yml์ plugins ๋ถ๋ถ์ ์ ๋ถ ์ญ์ ํด์ค๋ค.
( ์ค๋ช )
requirements.txt๋ ๋ค์๊ณผ ๊ฐ์ด ์ค์นํ๊ณ ์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ด๋๋ ์ฅ์์ด๋ค.
serverless-wsgi๋ ์ถ๊ฐํด์ค๋ค.
(์๋ฒ์ ์ด๋ฆ์ด ํด๋ ๋ช ๊ณผ ์ผ์นํ๋์ง ๊ผญ ํ์ธํ๋ค !!!!!!!!!)
service: aws-movie-server
frameworkVersion: '3'
custom:
wsgi:
app: app.app
provider:
name: aws
# ๋ฐํ์ ์ด์ ํ์์์ด์ ์ญ์ , ๋์ปคํ์ผ์ ์์ฑํจ
region : ap-northeast-2
# ์ปจํ
์ด๋ ์ฌ์ฉ์ํ ์ถ๊ฐ ๋ฌธ๊ตฌ
ecr:
images:
appimage:
path: ./
functions:
api:
# ํธ๋ค๋ฌ๋ ์ญ์ ํ๊ณ iamge, timeout ์ถ๊ฐ, events ๋ ๊ทธ๋ฅ ๋
๋๋ค
image:
name: appimage
timeout: 120
events:
- httpApi: '*'
app.py ํ์ผ
vscode ํฐ๋ฏธ๋ cmd์์ ์ค์นํ๊ณ ,
pip install serverless-wsgi
app.py ํ์ผ์ ์ํฌํธํ๊ธฐ
def ํจ์๋ถ๋ถ ์ถ๊ฐํ๊ธฐ
๊ฒฐ๊ณผ
pandas๋ numpy์ ๊ฐ์ ์ฉ๋์ด ํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ serverless ํ ์ ์๊ฒ ๋๋ค.
sls deploy