πŸš‚aws ecs

λ°•μš©λ―ΌΒ·2024λ…„ 4μ›” 4일
0
post-thumbnail

ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ 항상 EC2에 μ„œλ²„λ₯Ό μ˜¬λ Έμ—ˆλ‹€. github에 올리고 ec2μ—μ„œ λ‹€μš΄λ‘œλ“œλ₯Ό λ°›κ³  λΉŒλ“œλ₯Ό ν•˜λ©΄μ„œ ν™˜κ²½λ³€μˆ˜λ₯Ό μ„€μ •ν•˜κ³  μ‹€ν–‰κΉŒμ§€ λ§Œμ•½ μ„œλ²„κ°€ 1λŒ€κ°€ μ•„λ‹ˆλΌ μ—¬λŸ¬λŒ€μ˜€μœΌλ©΄ 같은 μž‘μ—…μ„ λ°˜λ³΅μ„ ν–ˆμ„κ²ƒμ΄λ‹€. 이후 Dockerλ₯Ό μ•Œκ²Œλ˜κ³  λΉŒλ“œλœ 이미지 νŒŒμΌμ„ hub와 같은 μ €μž₯μ†Œμ— μ €μž₯을 ν•˜κ³  ν•΄λ‹€ 이미지λ₯Ό docker μœ„μ—μ„œ κ΅¬μ„±ν•˜λ©΄ μ‰½κ²Œ μ„œλ²„λ₯Ό λ§Œλ“€ 수 μžˆλ‹€. 근데 맀우 μ‰½κ²Œ 배포λ₯Ό ν–ˆμ§€λ§Œ 문제점이 ν•˜λ‚˜κ°€ μžˆμ—ˆλ‹€. ec2κ°€ μ—¬λŸ¬κ°œλ©΄ μ—­μ‹œ λ˜‘κ°™μ€ μž‘μ—…μ„ μˆ˜ν–‰μ„ ν•΄μ•Όν•œλ‹€.

Serverless

ECSλ₯Ό μ†Œκ°œν•˜μ§€ 전에 Serverless κ°œλ…λΆ€ν„° μ•Œμ•„λ³΄μž

μ„œλ²„ 인프라에 λŒ€ν•΄ μ§μ ‘μ μœΌλ‘œ κ΄€μ—¬ν•˜μ§€ μ•Šκ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΉŒλ“œν•˜κ³  μ‹€ν–‰ν•  수 μžˆλŠ” 방법

즉 κ°œλ°œμžκ°€ μ„œλ²„λ₯Ό 직접 관리λ₯Ό ν•  ν•„μš”κ°€ μ—†λ‹€λŠ” 것이닀. λŒ€ν‘œμ μœΌλ‘œ AWS Lambdaκ°€ μžˆλŠ”λ° μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„λ•Œ μ„œλ²„λ₯Ό μž‘λ™μ‹œμΌœν•΄λ‹Ή λ‘œμ§μ„ μˆ˜ν–‰ν•˜λŠ” μ„œλΉ„μŠ€μ΄λ‹€.(개인적으둜 μ’‹μ•„ν•˜λŠ” μ„œλΉ„μŠ€)

Lambda

λŒ€ν‘œμ μΈ νŠΉμ§•μ€

  • 이벀트 기반 μ‹€ν–‰ : μ΄λ²€νŠΈμ— μ˜ν•΄μ„œ 트리게되며 HTTPμš”μ²­, 파일 μ—…λ‘œλ“±μ˜ μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„λ•Œ μ‹€ν–‰
  • μ˜€ν†  μŠ€μΌ€μΌλ§ : μš”μ²­μ— λ”°λΌμ„œ μžλ™μœΌλ‘œ μ˜€ν†  μŠ€μΌ€μΌλ§μ΄ λ˜μ–΄ νŠΈλž˜ν”½ 변동에 μ‹ μ†ν•˜κ²Œ λŒ€μ‘κ°€λŠ₯
  • μ’…λŸ‰ μš”κΈˆμ œ : EC2의 경우 κ³„μ†ν•΄μ„œ μ‹€ν–‰λœ μ‹œκ°„ 만큼 μš”κΈˆμ„ μ§€λΆˆν•œλ‹€λ©΄ Labda의 경우 μš”μ²­ κ±΄μˆ˜λ§ˆλ‹€ μ§€λΆˆν•˜λŠ” 방식이닀.

μ•„λž˜μ—λŠ” Lambdaλ₯Ό μ΄μš©ν•΄μ„œ 이미지 파일이 μ—…λ‘œλ“œ λ˜μ—ˆμ„λ•Œ 이미지λ₯Ό 리사이징 ν•˜μ—¬ μ²˜λ¦¬ν•˜λŠ” 방식을 μ„€λͺ…ν•œλ‹€.(μ‘Έμ—… μž‘ν’ˆμœΌλ‘œ 이미지λ₯Ό λ¦¬μ‚¬μ΄μ§•ν•œ κ²½ν—˜μ΄ μžˆμ–΄ λžŒλ‹€μ˜ νŽΈμ˜μ„± 및 μ‹€μš©μ„±μ„ 잘 μ•Œκ³ μžˆλ‹€.)

https://aws.amazon.com/ko/lambda/

Lambda λ™μž‘ 방식

  1. λ¨Όμ € ν•¨μˆ˜ μ‹€ν–‰ μš”μ²­μ„ λ°›μœΌλ©΄ λ¨Όμ € μ‹€ν–‰ ν™˜κ²½μ„ μ€€λΉ„
  2. λ©”λͺ¨λ¦¬, λŸ°νƒ€μž„ 및 ꡬ성을 μ‚¬μš©ν•˜μ—¬ ν™˜κ²½μ„ 생성
  3. μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜κΈ° 전에 이벀트 ν•Έλ“€λŸ¬ μ™ΈλΆ€μ—μ„œ μ΄ˆκΈ°ν™” μ½”λ“œλ₯Ό μ‹€ν–‰
  4. 이후 μž‘μ„±λœ μ½”λ“œλ₯Ό μ‹€ν–‰

처음 두 단계λ₯Ό μ½œλ“œ μŠ€νƒ€νŠΈλΌκ³  λΆ€λ₯΄λ©° Lambdaκ°€ ν•¨μˆ˜λ₯Ό μ€€λΉ„ν•˜λŠ” 데 κ±Έλ¦¬λŠ” μ‹œκ°„μ— λŒ€ν•΄μ„œλŠ” μš”κΈˆμ΄ λΆ€κ³Όλ˜μ§€ μ•Šμ§€λ§Œ 전체 호좜 기간에 지연 μ‹œκ°„μ΄ μΆ”κ°€λœλ‹€. 이후 싀행이 μ™„λ£Œλ˜λ©΄ μ‹€ν–‰ ν™˜κ²½μ΄ κ³ μ •λ˜λŠ”λ° μž μ‹œ λ™μ•ˆ μ‹€ν–‰ ν™˜κ²½μ„ μœ μ§€ν•œλ‹€. 이 μ‹œκ°„ λ™μ•ˆ λ™μΌν•œ κΈ°λŠ₯에 λŒ€ν•œ λ‹€λ₯Έ μš”μ²­μ΄ λ„μ°©ν•˜λ©΄ μ„œλΉ„μŠ€λŠ” ν™˜κ²½μ„ μž¬μ‚¬μš©ν•  수 μžˆμ–΄ 이미 μ‘΄μž¬ν•˜κ³  μ½”λ“œλ₯Ό λ‹€μš΄λ‘œλ“œν•˜κ³  μ΄ˆκΈ°ν™” μ½”λ“œλ₯Ό μ‹€ν–‰ν•  ν•„μš”κ°€ μ—†κΈ° λ•Œλ¬Έμ— 일반적으둜 이 두 번째 μš”μ²­μ€ 더 빨리 μ™„λ£Œλœλ‹€. 이λ₯Ό μ›œ μŠ€νƒ€νŠΈ 라고 ν•œλ‹€.

0개의 λŒ“κΈ€