DevOps/AWS

AWS ์„œ๋ฒ„ ์—ฐ๊ฒฐ ์‹œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์šฉ๋Ÿ‰ ์ค„์—ฌ์ฃผ๋Š” Docker(๋„์ปค) ์„ค์น˜ํ•˜๊ธฐ

567Rabbit 2024. 5. 27. 17:07

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