λͺ©μ°¨
- μλ² ν λλ‘ λͺ¨λ νΈλν½μ κ°λΉνλ©΄ μκΈ°λ λ¬Έμ
- λ‘λ λ°Έλ°μλ 무μμΈκ°?
- λ‘λ λ°Έλ°μ± μκ³ λ¦¬μ¦μ μ’ λ₯
- L4 λ‘λ λ°Έλ°μ vs L7 λ‘λ λ°Έλ°μ
- AWSμμ λ‘λ λ°Έλ°μ μ¬μ©νκΈ° (ALB)
- λ‘λ λ°Έλ°μμ κ³ κ°μ©μ±
- μ 리 λ° λ€μ λ¨κ³
1. μλ² ν λλ‘ λͺ¨λ νΈλν½μ κ°λΉνλ©΄ μκΈ°λ λ¬Έμ
μλΉμ€κ° μ±μ₯νλ©΄ ν λμ μλ²λ‘ λͺ¨λ μμ²μ μ²λ¦¬νλ λ° νκ³κ° μ΅λλ€. νΈλν½μ΄ κΈμ¦νλ©΄ μλ²κ° κ³ΌλΆνλ‘ μλ΅μ΄ λλ €μ§κ±°λ λ€μ΄λ©λλ€. μλ² ν λκ° λͺ¨λ κ²μ λ΄λΉνλ©΄ κ·Έ μλ²κ° μ£½μΌλ©΄ μ 체 μλΉμ€λ λ©μΆ₯λλ€.
ν΄κ²°μ± μ λ κ°μ§μ λλ€. νλλ μλ²λ₯Ό λ μ’μ κ²μΌλ‘ λ°κΎΈλ μμ§ νμ₯(Scale Up), λ€λ₯Έ νλλ μλ²λ₯Ό μ¬λ¬ λλ‘ λ리λ **μν νμ₯(Scale Out)**μ λλ€.
μν νμ₯μ μ ννλ€λ©΄ μ¬λ¬ μλ²μ νΈλν½μ κ· λ±νκ² λΆλ°°ν΄μ£Όλ λ‘λ λ°Έλ°μκ° νμν©λλ€.
2. λ‘λ λ°Έλ°μλ 무μμΈκ°?
**λ‘λ λ°Έλ°μ(Load Balancer)**λ ν΄λΌμ΄μΈνΈμ μμ²μ μ¬λ¬ μλ²μ λΆμ°μμΌμ£Όλ μ₯μΉ λλ μννΈμ¨μ΄μ λλ€.
μΉ΄ν κ³μ°λ λΉμ λ‘ μ΄ν΄νλ©΄ μ½μ΅λλ€. μλμ΄ λͺ°λ¦΄ λ ν λͺ μ λ°λ¦¬μ€νμκ²λ§ μ£Όλ¬Έμ΄ κ°λ©΄ μ€μ΄ κΈΈμ΄μ§λλ€. λμ μ¬λ¬ κ³μ°λλ‘ μλμ κ· λ±νκ² μλ΄νλ μλ΄ μ§μμ΄ λ‘λ λ°Έλ°μ μν μ ν©λλ€.
λ‘λ λ°Έλ°μμ νΉμ§μ μ 리νλ©΄ λ€μκ³Ό κ°μ΅λλ€. λ¨μΌ μ§μ μ (Single Entry Point)μ μ κ³΅ν΄ μ¬μ©μλ μλ² μ¬λ¬ λκ° μλμ§ λͺ¨λ¦ λλ€. νΈλν½μ λΆμ°ν΄ κ° μλ²μ λΆνλ₯Ό μ€μ λλ€. ν μλ²μ λ¬Έμ κ° μκΈ°λ©΄ ν΄λΉ μλ²λ‘μ μμ²μ μ€λ¨ν©λλ€. μλ²λ₯Ό μΆκ°νκ±°λ μ κ±°ν΄λ μλΉμ€ μ€λ¨ μμ΄ νμ₯ν μ μμ΅λλ€.
3. λ‘λ λ°Έλ°μ± μκ³ λ¦¬μ¦μ μ’ λ₯
λ‘λ λ°Έλ°μκ° μ΄λ€ μλ²μ μμ²μ 보λΌμ§ κ²°μ νλ λ°©μμ λλ€.
λΌμ΄λ λ‘λΉ(Round Robin) μλ² λͺ©λ‘μ μμλλ‘ λμκ°λ©° μμ²μ λ°°λΆν©λλ€. κ°μ₯ λ¨μνκ³ μΌλ°μ μΈ λ°©μμ λλ€. μλ² μ¬μμ΄ λΉμ·ν λ μ ν©ν©λλ€.
κ°μ€ λΌμ΄λ λ‘λΉ(Weighted Round Robin) μλ²λ§λ€ κ°μ€μΉλ₯Ό λΆμ¬ν΄ μ±λ₯μ΄ μ’μ μλ²μ λ λ§μ μμ²μ 보λ λλ€. μλ² μ¬μμ΄ λ€λ₯Ό λ μ¬μ©ν©λλ€.
μ΅μ μ°κ²°(Least Connections) νμ¬ μ°κ²° μκ° κ°μ₯ μ μ μλ²λ‘ μμ²μ 보λ λλ€. μ²λ¦¬ μκ°μ΄ λ€μν μμ²μ κ· λ±νκ² λΆμ°ν λ ν¨κ³Όμ μ λλ€.
IP ν΄μ(IP Hash) ν΄λΌμ΄μΈνΈ IPλ₯Ό ν΄μν΄ νμ κ°μ μλ²λ‘ μ°κ²°ν©λλ€. μΈμ μ μλ²μ μ μ₯νλ ꡬ쑰μμ κ°μ μ¬μ©μκ° νμ κ°μ μλ²μ μ°κ²°λμ΄μΌ ν λ μ¬μ©ν©λλ€.
4. L4 λ‘λ λ°Έλ°μ vs L7 λ‘λ λ°Έλ°μ
λ‘λ λ°Έλ°μλ OSI 7κ³μΈ΅ λͺ¨λΈμ μ΄λ λ μ΄μ΄μμ λμνλμ§μ λ°λΌ ꡬλΆλ©λλ€.
L4 λ‘λ λ°Έλ°μ (μ μ‘ κ³μΈ΅) TCP/UDP μμ€μμ IP μ£Όμμ ν¬νΈλ₯Ό κΈ°λ°μΌλ‘ νΈλν½μ λΆμ°ν©λλ€. λΉ λ₯΄κ³ λ¨μνμ§λ§ URL, μΏ ν€ κ°μ HTTP λ΄μ©μ λ³΄μ§ μμ΅λλ€.
L7 λ‘λ λ°Έλ°μ (μμ© κ³μΈ΅) HTTP λ΄μ©(URL κ²½λ‘, ν€λ, μΏ ν€ λ±)μ λ³΄κ³ λΌμ°ν ν©λλ€. URLμ λ°λΌ λ€λ₯Έ μλ²λ‘ 보λ΄κ±°λ, μ΄λ―Έμ§ μμ²λ§ νΉμ μλ²λ‘ 보λ΄λ λ± μΈλ°ν μ μ΄κ° κ°λ₯ν©λλ€. AWSμ ALB(Application Load Balancer)κ° L7 λ‘λ λ°Έλ°μμ λλ€.
5. AWSμμ λ‘λ λ°Έλ°μ μ¬μ©νκΈ° (ALB)
AWSμμλ **ALB(Application Load Balancer)**λ₯Ό κ°μ₯ λ§μ΄ μ¬μ©ν©λλ€.
ALB μ€μ λ°©λ²μ κ°λ΅ν μ 리ν©λλ€. EC2 μ½μμμ λ‘λ λ°Έλ°μ > λ‘λ λ°Έλ°μ μμ±μ ν΄λ¦ν©λλ€. Application Load Balancerλ₯Ό μ νν©λλ€. 리μ€λλ₯Ό μ€μ ν©λλ€(80λ² HTTP, 443λ² HTTPS). λμ κ·Έλ£Ή(Target Group)μ λ§λ€κ³ λ‘λ λ°Έλ°μ±ν EC2 μΈμ€ν΄μ€λ₯Ό λ±λ‘ν©λλ€. μν νμΈ(Health Check) κ²½λ‘λ₯Ό μ€μ ν©λλ€. μμ± ν DNS μ΄λ¦μ λλ©μΈμ μ°κ²°ν©λλ€.
ALBλ λ±λ‘λ μΈμ€ν΄μ€λ₯Ό μ£ΌκΈ°μ μΌλ‘ μν νμΈν©λλ€. μΈμ€ν΄μ€κ° μλ΅νμ§ μμΌλ©΄ μλμΌλ‘ ν΄λΉ μΈμ€ν΄μ€λ‘μ νΈλν½μ μ€λ¨ν©λλ€.
6. λ‘λ λ°Έλ°μμ κ³ κ°μ©μ±
λ‘λ λ°Έλ°μλ **κ³ κ°μ©μ±(High Availability)**μ ꡬννλ ν΅μ¬ μ»΄ν¬λνΈμ λλ€.
μλ² ν λκ° λ€μ΄λμ΄λ λ‘λ λ°Έλ°μκ° μλμΌλ‘ λ€λ₯Έ μλ²λ‘ νΈλν½μ μ νν΄ μλΉμ€κ° μ€λ¨λμ§ μμ΅λλ€. μ΄λ₯Ό **μ₯μ μ‘°μΉ(Failover)**λΌκ³ ν©λλ€.
λ λμκ° μ¬λ¬ κ°μ© μμ(AZ)μ μλ²λ₯Ό λΆμ° λ°°μΉνκ³ λ‘λ λ°Έλ°μλ‘ μ°κ²°νλ©΄ ν λ°μ΄ν°μΌν°μ λ¬Έμ κ° μ겨λ λ€λ₯Έ λ°μ΄ν°μΌν°μ μλ²κ° μλΉμ€λ₯Ό μ΄μ΄λ°μ μ μμ΅λλ€.
7. μ 리 λ° λ€μ λ¨κ³
μ€λ λ°°μ΄ ν΅μ¬μ μ 리ν©λλ€.
- λ‘λ λ°Έλ°μλ μ¬λ¬ μλ²μ νΈλν½μ λΆμ°ν΄ μ±λ₯κ³Ό κ°μ©μ±μ λμ΄λ μ₯μΉμ λλ€.
- λΌμ΄λ λ‘λΉ, μ΅μ μ°κ²° λ± λ€μν μκ³ λ¦¬μ¦μΌλ‘ μλ²λ₯Ό μ νν©λλ€.
- L4λ IP/ν¬νΈ κΈ°λ°, L7μ HTTP λ΄μ© κΈ°λ°μΌλ‘ λ μΈλ°ν λΌμ°ν μ΄ κ°λ₯ν©λλ€.
- AWS ALBλ μν νμΈμΌλ‘ λ¬Έμ μλ²λ₯Ό μλμΌλ‘ μ μΈν΄ κ³ κ°μ©μ±μ ꡬνν©λλ€.
λ€μ κΈμμλ λλ©μΈ μ΄λ©μΌμ λ§λλ λ°©λ², λ΄ λλ©μΈμΌλ‘ μ΄λ©μΌμ μ΄μνλ λ²μ μμλ³΄κ² μ΅λλ€.