Development knowledge/IT Term

[IT Term] μ„œλ²„λ¦¬μŠ€(Serverless)λž€ 무엇인가? (μ •μ˜, νŠΉμ§•, μž₯단점 비ꡐ)

yuri lee 2023. 4. 12. 23:19
λ°˜μ‘ν˜•

Intro

μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” μ„œλ²„λ¦¬μŠ€(serverless)의 μ˜λ―Έμ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 

 

What's Serverless?

μ„œλ²„λ¦¬μŠ€ (Serverless)의 λ‹¨μ–΄λ§Œ 보면, μ„œλ²„(Sever) + 리슀(Less)의 ν•©μ„±μ–΄λ‘œ μ„œλ²„κ°€ μ—†λ‹€λŠ” 뜻처럼 λ³΄μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ„œλ²„λ¦¬μŠ€λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발과 배포λ₯Ό μœ„ν•΄ μ„œλ²„ 인프라λ₯Ό μ„€μ •ν•˜κ³  관리할 ν•„μš”κ°€ μ—†λŠ” ν΄λΌμš°λ“œ μ»΄ν“¨νŒ… λͺ¨λΈμ„ μ˜λ―Έν•©λ‹ˆλ‹€. 

 

Characteristics of Serverless

μ„œλ²„λ¦¬μŠ€λŠ” ν΄λΌμš°λ“œ 곡급 업체가 인프라λ₯Ό κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œμ— 집쀑할 수 μžˆμŠ΅λ‹ˆλ‹€. μ„œλ²„λ¦¬μŠ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ ν•„μš”ν•œ κ²½μš°μ—λ§Œ μ‹€ν–‰λ˜λ©°, μ‹€ν–‰λ˜λŠ” 각 ν•¨μˆ˜μ— λŒ€ν•΄ ν΄λΌμš°λ“œ 곡급 μ—…μ²΄μ—μ„œ μžλ™μœΌλ‘œ μŠ€μΌ€μΌλ§μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

 

μ΄λŸ¬ν•œ 이유둜 μ„œλ²„λ¦¬μŠ€λŠ” λΉ„μš© 효율적이고 λΉ λ₯΄κ²Œ κ°œλ°œν•  수 있으며, μŠ€μΌ€μΌλ§ 및 μ‚¬μš©μž μš”κ΅¬μ— λŒ€ν•œ λŒ€μ‘μ΄ λΉ λ¦…λ‹ˆλ‹€. λŒ€ν‘œμ μœΌλ‘œ AWS Lambda, Azure Functions, Google Cloud Functions 이 μžˆμŠ΅λ‹ˆλ‹€. 

 

Advantages of serverless

  1. λΉ„μš© 효율적: μ„œλ²„λ¦¬μŠ€λŠ” μ‚¬μš©ν•œ 만큼만 λΉ„μš©μ„ μ§€λΆˆν•©λ‹ˆλ‹€. μ‚¬μš©λŸ‰μ΄ 적은 κ²½μš°μ—λŠ” 적은 λΉ„μš©μ„ μ§€λΆˆν•˜κ³ , λ§Žμ€ μ‚¬μš©λŸ‰μ΄ μžˆμ„ λ•ŒλŠ” μžλ™μœΌλ‘œ μŠ€μΌ€μΌλ§λ˜μ–΄ μΆ”κ°€ λΉ„μš©μ΄ λ°œμƒν•©λ‹ˆλ‹€. 효율적인 λΉ„μš© 관리에 μš©μ΄ν•©λ‹ˆλ‹€. 
  2. λΉ λ₯Έ 개발: μ„œλ²„λ¦¬μŠ€λŠ” 인프라 μ„€μ •κ³Ό 관리 뢀담이 μ—†μœΌλ―€λ‘œ, κ°œλ°œμžλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œμ— 집쀑할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ”μš± λΉ λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 및 μΆœμ‹œλ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.
  3. μŠ€μΌ€μΌλ§ μš©μ΄μ„±: μ„œλ²„λ¦¬μŠ€λŠ” μžλ™μœΌλ‘œ μŠ€μΌ€μΌλ§λ˜λ―€λ‘œ, λŒ€κ·œλͺ¨ νŠΈλž˜ν”½ μ²˜λ¦¬μ— μœ μ—°ν•˜κ²Œ λŒ€μ‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  4. 높은 κ°€μš©μ„±: μ„œλ²„λ¦¬μŠ€λŠ” 닀쀑 κ°€μš© μ˜μ—­(Multi-AZ)μ—μ„œ 싀행될 수 μžˆμœΌλ―€λ‘œ, μ‹œμŠ€ν…œ μž₯μ•  λ°œμƒ μ‹œμ—λ„ μ„œλΉ„μŠ€μ˜ κ°€μš©μ„±μ„ 보μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€

+) 닀쀑 κ°€μš© μ˜μ—­(Multi-AZ)

닀쀑 κ°€μš© μ˜μ—­(Multi-AZ, Multiple Availability Zones)은 ν΄λΌμš°λ“œ μ„œλΉ„μŠ€ 제곡 업체가 μ œκ³΅ν•˜λŠ” κΈ°λŠ₯ 쀑 ν•˜λ‚˜λ‘œ, μ§€λ¦¬μ μœΌλ‘œ λΆ„μ‚°λœ μ—¬λŸ¬ 개의 데이터 센터에 μ„œλ²„λ₯Ό λ°°μΉ˜ν•˜μ—¬ μ„œλΉ„μŠ€μ˜ κ°€μš©μ„±κ³Ό 내ꡬ성을 보μž₯ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, AWSμ—μ„œλŠ” 닀쀑 κ°€μš© μ˜μ—­μ„ μ œκ³΅ν•©λ‹ˆλ‹€. 닀쀑 κ°€μš© μ˜μ—­μ€ λ™μΌν•œ 지역 λ‚΄μ—μ„œ μœ„μΉ˜ν•œ μ„œλ‘œ λ‹€λ₯Έ 물리적인 데이터 μ„Όν„°λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 닀쀑 κ°€μš© μ˜μ—­μ€ μ„œλ²„κ°€ μœ„μΉ˜ν•œ 데이터 센터에 μž₯μ• κ°€ λ°œμƒν•˜λ”λΌλ„ λ‹€λ₯Έ 데이터 μ„Όν„°μ—μ„œ μ„œλΉ„μŠ€λ₯Ό 계속할 수 μžˆμœΌλ―€λ‘œ, μ„œλΉ„μŠ€μ˜ κ°€μš©μ„±κ³Ό 내ꡬ성을 보μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

Disadvantages of serverless

  1. μ œν•œλœ μ‹€ν–‰ μ‹œκ°„: μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜λŠ” νŠΉμ • μ‹œκ°„ 이내에 μ‹€ν–‰λ˜μ–΄μ•Ό ν•˜λ©°, 일반적으둜 15λΆ„ μ΄λ‚΄λ‘œ μ œν•œλ©λ‹ˆλ‹€. λ”°λΌμ„œ κΈ΄ μ‹€ν–‰ μ‹œκ°„μ΄ ν•„μš”ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 경우 μ„œλ²„λ¦¬μŠ€λ₯Ό μ‚¬μš©ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€.
  2. 느린 μ‹€ν–‰ 속도: μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜λŠ” 처음 싀행될 λ•Œ μ΄ˆκΈ°ν™”κ°€ ν•„μš”ν•˜λ―€λ‘œ, 지연 μ‹œκ°„μ΄ λ°œμƒν•©λ‹ˆλ‹€.
  3. μ œν•œλœ 지원 μ–Έμ–΄: μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜λŠ” μ œν•œλœ μ–Έμ–΄ 및 ν”„λ ˆμž„μ›Œν¬λ§Œ μ§€μ›λ©λ‹ˆλ‹€. λ”°λΌμ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 μ‹œ 선택할 수 μžˆλŠ” 언어와 ν”„λ ˆμž„μ›Œν¬κ°€ μ œν•œλ©λ‹ˆλ‹€.
  4. 둜컬 개발 어렀움: μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜λŠ” ν΄λΌμš°λ“œ ν™˜κ²½μ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€. λ”°λΌμ„œ 둜컬 개발 및 디버깅이 μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό λ³΄μ™„ν•˜κΈ° μœ„ν•΄μ„œλŠ” 둜컬 ν™˜κ²½μ—μ„œ μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜λŠ” 도ꡬλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

Serverless is a good use

  1. 단기간 짧은 μž‘μ—…: μ„œλ²„λ¦¬μŠ€λŠ” 단기간 짧은 μž‘μ—…μ— μ ν•©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 이메일 λ°œμ†‘, 이미지 리사이징, 데이터 처리 λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 데 μ ν•©ν•©λ‹ˆλ‹€.
  2. 변동성이 큰 μ›Œν¬λ‘œλ“œ: μ„œλ²„λ¦¬μŠ€λŠ” μžλ™μœΌλ‘œ μŠ€μΌ€μΌλ§λ˜λ―€λ‘œ, 변동성이 큰 μ›Œν¬λ‘œλ“œμ— μ ν•©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ›Ή μ‚¬μ΄νŠΈμ˜ νŠΈλž˜ν”½μ΄ μ‹œκ°„μ— 따라 크게 λ‹¬λΌμ§€λŠ” 경우 μ„œλ²„λ¦¬μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ μžλ™μœΌλ‘œ μŠ€μΌ€μΌλ§ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. 짧은 개발 μ£ΌκΈ°: μ„œλ²„λ¦¬μŠ€λŠ” 인프라 μ„€μ •κ³Ό 관리 뢀담이 μ—†μœΌλ―€λ‘œ, κ°œλ°œμžλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œμ— 집쀑할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ”μš± λΉ λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 및 μΆœμ‹œλ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.
  4. κ°•λ ₯ν•œ 이벀트 기반 μ•„ν‚€ν…μ²˜: μ„œλ²„λ¦¬μŠ€λŠ” 이벀트 기반 μ•„ν‚€ν…μ²˜(Event-Driven Architecture)λ₯Ό κ΅¬ν˜„ν•˜λŠ” 데 μ ν•©ν•©λ‹ˆλ‹€. 이벀트 기반 μ•„ν‚€ν…μ²˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λͺ¨λ“  뢀뢄이 이벀트λ₯Ό μˆ˜μ‹ ν•˜κ³  이λ₯Ό μ²˜λ¦¬ν•˜λŠ” λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜λ©°, μ„œλ²„λ¦¬μŠ€λŠ” μ΄λŸ¬ν•œ 이벀트 기반 μ•„ν‚€ν…μ²˜λ₯Ό κ΅¬ν˜„ν•˜λŠ” 데 μ ν•©ν•œ κΈ°μˆ μž…λ‹ˆλ‹€.
  5. λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 집쀑: μ„œλ²„λ¦¬μŠ€λŠ” 인프라 μ„€μ •κ³Ό 관리 뢀담이 μ—†μœΌλ―€λ‘œ, κ°œλ°œμžλŠ” λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ— 집쀑할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 μ‹œκ°„μ„ λ‹¨μΆ•ν•˜κ³ , 생산성을 λ†’μ΄λŠ” 데 도움이 λ©λ‹ˆλ‹€.
  6. μ €λΉ„μš© 운영: μ„œλ²„λ¦¬μŠ€λŠ” μ‚¬μš©ν•œ 만큼만 λΉ„μš©μ„ μ§€λΆˆν•˜λ―€λ‘œ, 운영 λΉ„μš©μ΄ μƒλŒ€μ μœΌλ‘œ μ €λ ΄ν•©λ‹ˆλ‹€. μ΄λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ λΉ„μš©μ„ μ€„μ΄λŠ” 데 도움이 λ©λ‹ˆλ‹€.

 

Serverless is a bad use

  1. μž₯κΈ°κ°„ μ§€μ†λ˜λŠ” μž‘μ—…: μ„œλ²„λ¦¬μŠ€λŠ” 단기간 짧은 μž‘μ—…μ— μ ν•©ν•˜μ§€λ§Œ, μž₯κΈ°κ°„ μ§€μ†λ˜λŠ” μž‘μ—…μ—λŠ” μ ν•©ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜λŠ” μ‹œκ°„μ΄ μ œν•œλ˜μ–΄ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.
  2. λŒ€κ·œλͺ¨ 데이터 처리: λŒ€κ·œλͺ¨ 데이터 μ²˜λ¦¬λŠ” μ„œλ²„λ¦¬μŠ€μ—μ„œλŠ” λΉ„νš¨μœ¨μ μΌ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜κ°€ 각각의 μž‘μ—…μ„ μˆ˜ν–‰ν•  λ•Œλ§ˆλ‹€ 인프라λ₯Ό μ„€μ •ν•˜κ³  μ œκ±°ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
  3. κ³ μ„±λŠ₯ ν•„μš”: μ„œλ²„λ¦¬μŠ€λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ‹€ν–‰ μ‹œκ°„μ΄ μ œν•œλ˜μ–΄ 있기 λ•Œλ¬Έμ—, κ³ μ„±λŠ₯이 ν•„μš”ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—λŠ” μ ν•©ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  4. νŠΉμ • μš”κ΅¬μ‚¬ν•­ μΆ©μ‘± λΆˆκ°€λŠ₯: μ„œλ²„λ¦¬μŠ€λŠ” ν΄λΌμš°λ“œ 제곡 업체가 μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€μ— 따라 μ œν•œλ˜λŠ” κΈ°λŠ₯이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ νŠΉμ • μš”κ΅¬μ‚¬ν•­μ„ μΆ©μ‘±ν•  수 없을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
  5. 전체 μ œμ–΄ ν•„μš”: μ„œλ²„λ¦¬μŠ€λŠ” 인프라 관리 뢀담이 μ μ§€λ§Œ, 전체적인 μ œμ–΄κ°€ ν•„μš”ν•œ κ²½μš°μ—λŠ” μ ν•©ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ³΄μ•ˆ μš”κ΅¬μ‚¬ν•­μ΄ μ—„κ²©ν•œ κ²½μš°μ—λŠ” 전체적인 μ œμ–΄κ°€ ν•„μš”ν•˜λ―€λ‘œ μ„œλ²„λ¦¬μŠ€λ₯Ό μ‚¬μš©ν•˜κΈ° μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

λ°˜μ‘ν˜•