[241216] AWS λ‘λ λ°Έλ°μ(Load Balancer)
νμ₯μ±(Scalability) vs κ³ κ°μ©μ±(Availability)
1. νμ₯μ±(Scalability)
- μμ€ν μ¬μ©μ μ, λ°μ΄ν° μ , μ²λ¦¬μ μ¦κ°μ λμνμ¬ μ±λ₯μ μ μ§νκ±°λ ν₯μμν€λ λ₯λ ₯
- μνμ νμ₯(Horizontal Scaling): μ¬λ¬ λμ μλ²λ₯Ό μΆκ°νμ¬ λΆν λΆμ°
- μμ§μ νμ₯(Vertical Scaling): κΈ°μ‘΄ μλ²μ μ±λ₯μ μ κ·Έλ μ΄λ(μ: CPU, RAM μΆκ°)
- μ: νΈλν½ μ¦κ°μ λ°λΌ EC2 μΈμ€ν΄μ€λ₯Ό μΆκ°νλ μ€ν μ€μΌμΌλ§(Auto Scaling)
2. κ³ κ°μ©μ±(Availability)
- μμ€ν μ΄ μ§μμ μΌλ‘ μ μ λμνκ³ μ¬μ©μμκ² μλΉμ€λ₯Ό μ 곡ν μ μλ λ₯λ ₯
- μ₯μ λ°μ μμλ μλΉμ€ μ€λ¨ μμ΄ μ΄μ κ°λ₯νλλ‘ μ€κ³
- μ: λ‘λ λ°Έλ°μλ₯Ό νμ©ν μ₯μ λμ
λ‘λ λ°Έλ°μ(Load Balancer)λ?
- νΈλν½μ μ¬λ¬ μΈμ€ν΄μ€λ‘ λΆμ°νμ¬ μμ€ν λΆνλ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλ μν

λ‘λ λ°Έλ¬μλ₯Ό μ¬μ©νλ μ΄μ
| μ£Όμ κΈ°λ₯ | μ€λͺ |
| μμ² λΆμ° | μ¬λ¬ EC2 μΈμ€ν΄μ€μ νΈλν½μ κ· λ±νκ² λΆλ°° |
| λ¨μΌ μ‘μΈμ€ ν¬μΈνΈ μ 곡 | Route 53κ³Ό μ°λνμ¬ μ¬μ©μκ° ν κ°μ μ£Όμλ‘ μ κ·Ό κ°λ₯ |
| μΈμ€ν΄μ€ ν¬μ€ μ²΄ν¬ | μ₯μ κ°μ§ ν μλμΌλ‘ μμ²μ μ μ μΈμ€ν΄μ€λ‘ λΌμ°ν |
| HTTPS μ 곡 | AWS Certificate Manager(ACM)κ³Ό μ°λνμ¬ SSL/TLS μ§μ |
| κ³ κ°μ©μ± 보μ₯ | λ€μ€ AZ λ°°ν¬λ₯Ό ν΅ν΄ μ₯μ λ°μ μμλ μλΉμ€ μ§μ κ°λ₯ |
| νΈλν½ λΆλ¦¬ | κ³΅κ° νΈλν½(users)κ³Ό λ΄λΆ νΈλν½(EC2 κ° ν΅μ ) λΆλ¦¬ |
AWS Elastic Load Balancer(ELB) μ΄ν΄λ³΄κΈ°
- AWSμμλ ELBλ₯Ό ν΅ν΄ λ‘λ λ°Έλ°μ± μ 곡
- ELBλ νΈλν½μ μλμΌλ‘ μ¬λ¬ EC2 μΈμ€ν΄μ€λ‘ λΆλ°°νμ¬ νμ₯μ±κ³Ό κ³ κ°μ©μ± ν₯μ
ELB μ ν λ° νΉμ§
| λ‘λ λ°Έλ°μ μ ν | OSI κ³μΈ΅ | νΉμ§ | λμ |
| Application Load Balancer (ALB) |
7κ³μΈ΅ (Application Layer) |
- HTTP/HTTPS νΈλν½ μ²λ¦¬ - λ§μ΄ν¬λ‘μλΉμ€ λ° μ»¨ν μ΄λ κΈ°λ° μ ν리μΌμ΄μ μ μ ν© - κ³ κΈ λΌμ°ν κΈ°λ₯ μ 곡 (URL κΈ°λ°, νΈμ€νΈ κΈ°λ° λΌμ°ν κ°λ₯) |
μΉ μ ν리μΌμ΄μ , RESTful API, 컨ν μ΄λ κΈ°λ° μλΉμ€ μ΄μ μ μ ν© |
| Network Load Balancer (NLB) |
4κ³μΈ΅ (Transport Layer) |
- TCP, UDP, TLS νΈλν½μ μ²λ¦¬ - κ³ μ±λ₯, μ΄μ μ§μ° μ²λ¦¬ (μλ°±λ§ κ°μ μμ²μ λΉ λ₯΄κ² λΆμ°) - κ³ μ IP μ 곡 (νΉμ IP μ£Όμκ° νμν μλΉμ€μ μ μ©) - μ€μ μ§μ€ν TLS μ€νλ‘λ κΈ°λ₯ μ§μ |
κ³ μ±λ₯, μ μ§μ°, λκ·λͺ¨ μ°κ²° μ²λ¦¬κ° νμν μ ν리μΌμ΄μ μ΄μ μ μ ν© |
| Gateway Load Balancer (GWLB) |
λ€νΈμν¬ κ³μΈ΅ | - μλνν° κ°μ μ΄νλΌμ΄μΈμ€ (λ°©νλ²½, IDS/IPS, 보μ μλΉμ€) λ°°ν¬ λ° κ΄λ¦¬ κ°λ₯ - GNVVE νλ‘ν μ½ μ§μ - 보μ, κ·μ μ€μ, μ μ± μ μ΄ κΈ°λ₯ κ°ν - λ€νΈμν¬ νΈλν½μ νΉμ 보μ μ₯λΉλ‘ λΌμ°ν κ°λ₯ |
보μ, κ·μ μ€μ, μ μ± κΈ°λ° μ μ΄κ° νμν νκ²½μμ μ¬μ© |
ALB μ¬μ©ν΄λ³΄κΈ°
1. ALB μ£Όμ κΈ°λ₯
- HTTP μμ²μ μ¬λ¬ νκΉ κ·Έλ£Ήμ λΆμ° κ°λ₯
- ν λ¨Έμ λ΄μμλ μ¬λ¬ μ ν리μΌμ΄μ (컨ν μ΄λ)μΌλ‘ νΈλμΉ λΌμ°ν κ°λ₯
- HTTP/2 λ° μΉμμΌ μ§μ
- HTTPS 리λ€μ΄λ νΈ μ§μ
- URL, hostname, qurery string, headerμ κΈ°λ°μΌλ‘ νκΉ κ·Έλ£ΉμΌλ‘ μμ² μ λ¬ κ°λ₯
2. EC2 μΈμ€ν΄μ€ μλ μ€ν μ€ν¬λ¦½νΈ
- EC2 μΈμ€ν΄μ€κ° μ€νλ λ μλμΌλ‘ μΉ μλ²(Nginx)λ₯Ό μ€μ νκ³ μ€ννλ μ€ν¬λ¦½νΈ
- κ²½λ‘: EC2 > Advanced details > User data - optional
#!/bin/bash
apt-get update
apt-get install -y nginx
cat <<EOF > /var/www/html/index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Nginx</title>
</head>
<body>
<h1>Hello World!</h1>
<p>AWS deployed by Me!</p>
<p>private ip is $(hostname -f)</p>
</body>
</html>
EOF
sudo systemctl start nginx
ELBλ₯Ό νμ©ν νμ₯μ±κ³Ό κ³ κ°μ©μ± ꡬν
| κΈ°λ₯ | νμ₯μ±(Scalability) | κ³ κ°μ©μ±(Availability) |
| νΈλν½ λΆν λΆμ° | μ¦κ°νλ μμ²μ μ¬λ¬ μΈμ€ν΄μ€λ‘ λΆλ°° | νΉμ μΈμ€ν΄μ€ μ₯μ μ λ€λ₯Έ μΈμ€ν΄μ€λ‘ λΌμ°ν |
| μ€ν μ€μΌμΌλ§ μ°λ | μΈμ€ν΄μ€ μλ μΆκ°/μ κ±°λ‘ μ μ°ν νμ₯ | μΈμ€ν΄μ€ μ₯μ λ°μ μ μλ λ체 |
| λ©ν° AZ μ§μ | μ¬λ¬ κ°μ© μμ(AZ)μμ μΈμ€ν΄μ€ νμ₯ κ°λ₯ | νΉμ AZ μ₯μ λ°μ μ λ€λ₯Έ AZλ‘ νΈλν½ μ ν |
| ν¬μ€ μ²΄ν¬ | λΉμ μ μΈμ€ν΄μ€λ₯Ό κ°μ§νμ¬ νΈλν½ μ μ‘ λ°©μ§ | μ₯μ κ°μ§ ν μλμΌλ‘ μμ²μ μ μ μΈμ€ν΄μ€λ‘ μ μ‘ |
SSL μΈμ¦ μ μ© λ° HTTPS μ€μ
1. SSLκ³Ό HTTPSλ?
- SSL (Secure Sockets Layer): μΈν°λ·μμ μ 보λ₯Ό μμ νκ² μ μ‘νκΈ° μν νλ‘ν μ½
- TLS (Transport Layer Security): SSLμ 보μλ κΈ°μ , νμ¬ λλΆλΆ TLSκ° μ¬μ©λμ§λ§, μ¬μ ν 'SSL'μ΄λΌλ μ©μ΄λ₯Ό μ¬μ©
- SSL/TLSλ ν΄λΌμ΄μΈνΈμ μλ² κ° λ°μ΄ν°λ₯Ό μνΈννμ¬ μμ ν ν΅μ μ μ 곡
2. AWSμμ SSL μΈμ¦ μ μ©νλ λ°©λ²
1) AWS Certificate Manager (ACM)μμ SSL μΈμ¦μ λ°κΈ
2) λ‘λ λ°Έλ°μ(ALB/NLB)μμ HTTPS 리μ€λ μΆκ°
3) HTTPS νΈλν½μ SSL μΈμ¦μμ μ°κ²°
4) EC2 μΈμ€ν΄μ€μμ HTTP → HTTPS 리λ€μ΄λ νΈ μ€μ