Intro
μλ νμΈμ. μ΄λ² μκ°μλ μλ²λ¦¬μ€(serverless)μ μλ―Έμ λν΄ μμλ³΄κ² μ΅λλ€.
What's Serverless?
μλ²λ¦¬μ€ (Serverless)μ λ¨μ΄λ§ 보면, μλ²(Sever) + 리μ€(Less)μ ν©μ±μ΄λ‘ μλ²κ° μλ€λ λ»μ²λΌ 보μ λλ€. νμ§λ§ μλ²λ¦¬μ€λ μ ν리μΌμ΄μ κ°λ°κ³Ό λ°°ν¬λ₯Ό μν΄ μλ² μΈνλΌλ₯Ό μ€μ νκ³ κ΄λ¦¬ν νμκ° μλ ν΄λΌμ°λ μ»΄ν¨ν λͺ¨λΈμ μλ―Έν©λλ€.
Characteristics of Serverless
μλ²λ¦¬μ€λ ν΄λΌμ°λ κ³΅κΈ μ μ²΄κ° μΈνλΌλ₯Ό κ΄λ¦¬νκΈ° λλ¬Έμ μ ν리μΌμ΄μ μ½λμ μ§μ€ν μ μμ΅λλ€. μλ²λ¦¬μ€ μ ν리μΌμ΄μ μ νμν κ²½μ°μλ§ μ€νλλ©°, μ€νλλ κ° ν¨μμ λν΄ ν΄λΌμ°λ κ³΅κΈ μ 체μμ μλμΌλ‘ μ€μΌμΌλ§μ μ²λ¦¬ν©λλ€.
μ΄λ¬ν μ΄μ λ‘ μλ²λ¦¬μ€λ λΉμ© ν¨μ¨μ μ΄κ³ λΉ λ₯΄κ² κ°λ°ν μ μμΌλ©°, μ€μΌμΌλ§ λ° μ¬μ©μ μꡬμ λν λμμ΄ λΉ λ¦ λλ€. λνμ μΌλ‘ AWS Lambda, Azure Functions, Google Cloud Functions μ΄ μμ΅λλ€.
Advantages of serverless
- λΉμ© ν¨μ¨μ : μλ²λ¦¬μ€λ μ¬μ©ν λ§νΌλ§ λΉμ©μ μ§λΆν©λλ€. μ¬μ©λμ΄ μ μ κ²½μ°μλ μ μ λΉμ©μ μ§λΆνκ³ , λ§μ μ¬μ©λμ΄ μμ λλ μλμΌλ‘ μ€μΌμΌλ§λμ΄ μΆκ° λΉμ©μ΄ λ°μν©λλ€. ν¨μ¨μ μΈ λΉμ© κ΄λ¦¬μ μ©μ΄ν©λλ€.
- λΉ λ₯Έ κ°λ°: μλ²λ¦¬μ€λ μΈνλΌ μ€μ κ³Ό κ΄λ¦¬ λΆλ΄μ΄ μμΌλ―λ‘, κ°λ°μλ μ ν리μΌμ΄μ μ½λμ μ§μ€ν μ μμ΅λλ€. μ΄λ λμ± λΉ λ₯Έ μ ν리μΌμ΄μ κ°λ° λ° μΆμλ₯Ό κ°λ₯νκ² ν©λλ€.
- μ€μΌμΌλ§ μ©μ΄μ±: μλ²λ¦¬μ€λ μλμΌλ‘ μ€μΌμΌλ§λλ―λ‘, λκ·λͺ¨ νΈλν½ μ²λ¦¬μ μ μ°νκ² λμν μ μμ΅λλ€.
- λμ κ°μ©μ±: μλ²λ¦¬μ€λ λ€μ€ κ°μ© μμ(Multi-AZ)μμ μ€νλ μ μμΌλ―λ‘, μμ€ν μ₯μ λ°μ μμλ μλΉμ€μ κ°μ©μ±μ 보μ₯ν μ μμ΅λλ€.
+) λ€μ€ κ°μ© μμ(Multi-AZ)
λ€μ€ κ°μ© μμ(Multi-AZ, Multiple Availability Zones)μ ν΄λΌμ°λ μλΉμ€ μ 곡 μ μ²΄κ° μ 곡νλ κΈ°λ₯ μ€ νλλ‘, μ§λ¦¬μ μΌλ‘ λΆμ°λ μ¬λ¬ κ°μ λ°μ΄ν° μΌν°μ μλ²λ₯Ό λ°°μΉνμ¬ μλΉμ€μ κ°μ©μ±κ³Ό λ΄κ΅¬μ±μ 보μ₯νλ κ²μ λλ€.
μλ₯Ό λ€μ΄, AWSμμλ λ€μ€ κ°μ© μμμ μ 곡ν©λλ€. λ€μ€ κ°μ© μμμ λμΌν μ§μ λ΄μμ μμΉν μλ‘ λ€λ₯Έ 물리μ μΈ λ°μ΄ν° μΌν°λ₯Ό μλ―Έν©λλ€. μ΄λ¬ν λ€μ€ κ°μ© μμμ μλ²κ° μμΉν λ°μ΄ν° μΌν°μ μ₯μ κ° λ°μνλλΌλ λ€λ₯Έ λ°μ΄ν° μΌν°μμ μλΉμ€λ₯Ό κ³μν μ μμΌλ―λ‘, μλΉμ€μ κ°μ©μ±κ³Ό λ΄κ΅¬μ±μ 보μ₯ν μ μμ΅λλ€.
Disadvantages of serverless
- μ νλ μ€ν μκ°: μλ²λ¦¬μ€ ν¨μλ νΉμ μκ° μ΄λ΄μ μ€νλμ΄μΌ νλ©°, μΌλ°μ μΌλ‘ 15λΆ μ΄λ΄λ‘ μ νλ©λλ€. λ°λΌμ κΈ΄ μ€ν μκ°μ΄ νμν μ ν리μΌμ΄μ μ κ²½μ° μλ²λ¦¬μ€λ₯Ό μ¬μ©νκΈ° μ΄λ ΅μ΅λλ€.
- λλ¦° μ€ν μλ: μλ²λ¦¬μ€ ν¨μλ μ²μ μ€νλ λ μ΄κΈ°νκ° νμνλ―λ‘, μ§μ° μκ°μ΄ λ°μν©λλ€.
- μ νλ μ§μ μΈμ΄: μλ²λ¦¬μ€ ν¨μλ μ νλ μΈμ΄ λ° νλ μμν¬λ§ μ§μλ©λλ€. λ°λΌμ μ ν리μΌμ΄μ κ°λ° μ μ νν μ μλ μΈμ΄μ νλ μμν¬κ° μ νλ©λλ€.
- λ‘컬 κ°λ° μ΄λ €μ: μλ²λ¦¬μ€ ν¨μλ ν΄λΌμ°λ νκ²½μμ μ€νλ©λλ€. λ°λΌμ λ‘컬 κ°λ° λ° λλ²κΉ μ΄ μ΄λ €μΈ μ μμ΅λλ€. μ΄λ₯Ό 보μνκΈ° μν΄μλ λ‘컬 νκ²½μμ μλ²λ¦¬μ€ ν¨μλ₯Ό μ€ννλ λꡬλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
Serverless is a good use
- λ¨κΈ°κ° 짧μ μμ : μλ²λ¦¬μ€λ λ¨κΈ°κ° 짧μ μμ μ μ ν©ν©λλ€. μλ₯Ό λ€μ΄, μ΄λ©μΌ λ°μ‘, μ΄λ―Έμ§ 리μ¬μ΄μ§, λ°μ΄ν° μ²λ¦¬ λ±μ μμ μ μννλ λ° μ ν©ν©λλ€.
- λ³λμ±μ΄ ν° μν¬λ‘λ: μλ²λ¦¬μ€λ μλμΌλ‘ μ€μΌμΌλ§λλ―λ‘, λ³λμ±μ΄ ν° μν¬λ‘λμ μ ν©ν©λλ€. μλ₯Ό λ€μ΄, μΉ μ¬μ΄νΈμ νΈλν½μ΄ μκ°μ λ°λΌ ν¬κ² λ¬λΌμ§λ κ²½μ° μλ²λ¦¬μ€λ₯Ό μ¬μ©νμ¬ μλμΌλ‘ μ€μΌμΌλ§ν μ μμ΅λλ€.
- 짧μ κ°λ° μ£ΌκΈ°: μλ²λ¦¬μ€λ μΈνλΌ μ€μ κ³Ό κ΄λ¦¬ λΆλ΄μ΄ μμΌλ―λ‘, κ°λ°μλ μ ν리μΌμ΄μ μ½λμ μ§μ€ν μ μμ΅λλ€. μ΄λ λμ± λΉ λ₯Έ μ ν리μΌμ΄μ κ°λ° λ° μΆμλ₯Ό κ°λ₯νκ² ν©λλ€.
- κ°λ ₯ν μ΄λ²€νΈ κΈ°λ° μν€ν μ²: μλ²λ¦¬μ€λ μ΄λ²€νΈ κΈ°λ° μν€ν μ²(Event-Driven Architecture)λ₯Ό ꡬννλ λ° μ ν©ν©λλ€. μ΄λ²€νΈ κΈ°λ° μν€ν μ²λ μ ν리μΌμ΄μ μ λͺ¨λ λΆλΆμ΄ μ΄λ²€νΈλ₯Ό μμ νκ³ μ΄λ₯Ό μ²λ¦¬νλ λ°©μμΌλ‘ λμνλ©°, μλ²λ¦¬μ€λ μ΄λ¬ν μ΄λ²€νΈ κΈ°λ° μν€ν μ²λ₯Ό ꡬννλ λ° μ ν©ν κΈ°μ μ λλ€.
- λΉμ¦λμ€ λ‘μ§ μ§μ€: μλ²λ¦¬μ€λ μΈνλΌ μ€μ κ³Ό κ΄λ¦¬ λΆλ΄μ΄ μμΌλ―λ‘, κ°λ°μλ λΉμ¦λμ€ λ‘μ§μ μ§μ€ν μ μμ΅λλ€. μ΄λ μ ν리μΌμ΄μ κ°λ° μκ°μ λ¨μΆνκ³ , μμ°μ±μ λμ΄λ λ° λμμ΄ λ©λλ€.
- μ λΉμ© μ΄μ: μλ²λ¦¬μ€λ μ¬μ©ν λ§νΌλ§ λΉμ©μ μ§λΆνλ―λ‘, μ΄μ λΉμ©μ΄ μλμ μΌλ‘ μ λ ΄ν©λλ€. μ΄λ λΉμ¦λμ€ λΉμ©μ μ€μ΄λ λ° λμμ΄ λ©λλ€.
Serverless is a bad use
- μ₯κΈ°κ° μ§μλλ μμ : μλ²λ¦¬μ€λ λ¨κΈ°κ° 짧μ μμ μ μ ν©νμ§λ§, μ₯κΈ°κ° μ§μλλ μμ μλ μ ν©νμ§ μμ μ μμ΅λλ€. μ΄λ μλ²λ¦¬μ€ ν¨μκ° μ€νλλ μκ°μ΄ μ νλμ΄ μκΈ° λλ¬Έμ λλ€.
- λκ·λͺ¨ λ°μ΄ν° μ²λ¦¬: λκ·λͺ¨ λ°μ΄ν° μ²λ¦¬λ μλ²λ¦¬μ€μμλ λΉν¨μ¨μ μΌ μ μμ΅λλ€. μ΄λ μλ²λ¦¬μ€ ν¨μκ° κ°κ°μ μμ μ μνν λλ§λ€ μΈνλΌλ₯Ό μ€μ νκ³ μ κ±°νκΈ° λλ¬Έμ λλ€.
- κ³ μ±λ₯ νμ: μλ²λ¦¬μ€λ μ ν리μΌμ΄μ μ μ€ν μκ°μ΄ μ νλμ΄ μκΈ° λλ¬Έμ, κ³ μ±λ₯μ΄ νμν μ ν리μΌμ΄μ μλ μ ν©νμ§ μμ μ μμ΅λλ€.
- νΉμ μꡬμ¬ν μΆ©μ‘± λΆκ°λ₯: μλ²λ¦¬μ€λ ν΄λΌμ°λ μ 곡 μ μ²΄κ° μ 곡νλ μλΉμ€μ λ°λΌ μ νλλ κΈ°λ₯μ΄ μμ μ μμ΅λλ€. λ°λΌμ νΉμ μꡬμ¬νμ μΆ©μ‘±ν μ μμ μλ μμ΅λλ€.
- μ 체 μ μ΄ νμ: μλ²λ¦¬μ€λ μΈνλΌ κ΄λ¦¬ λΆλ΄μ΄ μ μ§λ§, μ 체μ μΈ μ μ΄κ° νμν κ²½μ°μλ μ ν©νμ§ μμ μ μμ΅λλ€. μλ₯Ό λ€μ΄, 보μ μꡬμ¬νμ΄ μ격ν κ²½μ°μλ μ 체μ μΈ μ μ΄κ° νμνλ―λ‘ μλ²λ¦¬μ€λ₯Ό μ¬μ©νκΈ° μ΄λ €μΈ μ μμ΅λλ€.