[AWS] ELB(Elastic Load Balancer)
๐ ๋ค์ด๊ฐ๋ฉฐ
์ด๋ฒ ๊ธ์์๋ AWS์ ELB(Elastic Load Balancer)๋ฅผ ์ ๋ฆฌํ๋ค. ์ฌ๋ฌ EC2์ ํธ๋ํฝ์ ๋ถ์ฐํด ๊ฐ์ฉ์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ์ ๋์ด๋ ์๋น์ค๋ก, CLB์ NLB๋ฅผ ๊ฐ๊ฐ ๋ง๋ค์ด HTTPS๊น์ง ์ฐ๊ฒฐํ๋ค.
ELB๋? ์์ ํธ๋ํฝ์ ์ฌ๋ฌ ๊ฐ์ฉ ์์ญ์ ์ฌ๋ฌ ๋์(EC2ยท์ปจํ ์ด๋ยทIP)์ ๋ถ์ฐํ๋ ๋ก๋๋ฐธ๋ฐ์. ํธ๋ํฝ ๋ณํ์ ๋ง์ถฐ ์๋์ผ๋ก ํ์ฅ๋๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณ ๊ฐ์ฉ์ฑ(High Availability)๊ณผ ๋ด๊ฒฐํจ์ฑ(Fault Tolerant)์ ๋์ธ๋ค.
1. ELB ์ข ๋ฅ (๊ณ์ธต๋ณ)
ELB๋ ๋์ํ๋ OSI ๊ณ์ธต์ ๋ฐ๋ผ ๋๋๋ค. HTTP/HTTPS๋ฅผ ๋ค๋ฃจ๋ฉด L7, TCP/UDP๋ฅผ ๋ค๋ฃจ๋ฉด L4๋ค.
| ์ข ๋ฅ | ๊ณ์ธต | ํ๋กํ ์ฝ | ํน์ง |
|---|---|---|---|
| ALB | L7 | HTTP/HTTPS | ๊ฒฝ๋กยทํธ์คํธ ๊ธฐ๋ฐ ๋ผ์ฐํ |
| CLB | L7/L4 | HTTP/HTTPS/TCP | ์ด์ ์ธ๋(Classic) |
| NLB | L4 | TCP/UDP/TLS | ์ด๊ณ ์ฑ๋ฅ, ๊ณ ์ IP |
flowchart TD
User(("๐ ์ฌ์ฉ์"))
R53["๐งญ Route53<br/>(๋ณ์นญ ๋ ์ฝ๋)"]
ELB["โ๏ธ ELB<br/>(CLB / NLB)"]
E1["๐ป EC2 #1"]
E2["๐ป EC2 #2"]
User --> R53 --> ELB
ELB --> E1
ELB --> E2
2. ๋ณด์ ๊ทธ๋ฃน (HTTPS์ฉ)
๋จผ์ EC2 ํญ์์ ELB ์ ์ฉ ๋ณด์ ๊ทธ๋ฃน์ ๋ง๋ ๋ค. HTTPS(443) ์ธ๋ฐ์ด๋ ๊ท์น์ ๋ด์ ๋ณ๋ ๊ทธ๋ฃน์ ๋๊ธฐ ์ํจ์ด๋ค.
3. CLB(Classic Load Balancer) ์์ฑ
๋ก๋๋ฐธ๋ฐ์ ์์ฑ์์ Classic Load Balancer(์ด์ ์ธ๋)๋ฅผ ์ ํํ๋ค. ๋คํธ์ํฌ ๋งคํ์ ๋ด VPC์ 2aยท2c ์๋ธ๋ท, ๋ณด์ ๊ทธ๋ฃน์ ๋ฐฉ๊ธ ๋ง๋ ๊ฒ์ผ๋ก ์ง์ ํ๋ค.
๋ฆฌ์ค๋๋ HTTPS 443 โ ์ธ์คํด์ค HTTP 80์ผ๋ก ๋งคํํ๊ณ , ๋ณด์ ๋ฆฌ์ค๋์๋ ์์ ๋ง๋ ACM ์ธ์ฆ์๋ฅผ ์ ํํ๋ค. ์ํ ๊ฒ์ฌ๋ ๊ธฐ๋ณธ index.html, ๋์ ์ธ์คํด์ค๋ Cloud9 ์ธ์คํด์ค์ ๊ฐ๋ณ ์ธ์คํด์ค 2๊ฐ๋ฅผ ๊ณ ๋ฅธ๋ค.
๐ก 443(HTTPS) โ 80(HTTP) ๋งคํ์ด ํต์ฌ์ด๋ค. ์ฌ์ฉ์~ELB ๊ตฌ๊ฐ์ ACM ์ธ์ฆ์๋ก ์ํธํ(HTTPS)ํ๊ณ , ELB~EC2 ๋ด๋ถ ๊ตฌ๊ฐ์ HTTP๋ก ์ฒ๋ฆฌํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ EC2์ ์ธ์ฆ์๋ฅผ ๊ฐ๋ณ ์ค์นํ ํ์๊ฐ ์๋ค(SSL ์คํ๋ก๋ฉ).
4. Route53 ๋ณ์นญ ๋ ์ฝ๋ ์ฐ๊ฒฐ
์์ฑ๋ ๋ก๋๋ฐธ๋ฐ์์ DNS ์๋ํฌ์ธํธ๋ฅผ ๋ณต์ฌํ๋ค. ์์ง HTTPS ์ ์์ด ์ ๋๋๋ฐ, Route53์์ ๋ ์ฝ๋๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
์ด๋ฒ์๋ ๊ฐ์ IP๋ฅผ ๋ฃ๋ ๋์ โ๋ณ์นญ(Alias)โ ์ต์ ์ ์ฒดํฌํ๊ณ , ํธ๋ํฝ ๋ผ์ฐํ ๋์์ผ๋ก Application/Classic Load Balancer๋ฅผ ๊ณจ๋ผ ๋ณต์ฌํ DNS๋ฅผ ๋ถ์ฌ๋ฃ๋๋ค.
์ด์ HTTPS ์ ์์ด ๋๊ณ , ์๋ก๊ณ ์นจํ ๋๋ง๋ค ๋ ์ธ์คํด์ค๊ฐ ๋ฒ๊ฐ์(Round Robin) ์๋ตํ๋ค!
โ ๏ธ ELB๋ IP๊ฐ ๊ณ ์ ๋์ง ์๊ณ ๋ฐ๋ ์ ์์ด, A ๋ ์ฝ๋์ IP๋ฅผ ์ง์ ๋ฃ์ผ๋ฉด ์ ๋๋ค. ๋ฐ๋์ ๋ณ์นญ(Alias) ๋ ์ฝ๋๋ก ELB์ DNS๋ฅผ ๊ฐ๋ฆฌ์ผ์ผ ํ๋ค.
5. ๋์ ๊ทธ๋ฃน(Target Group) ์์ฑ
NLB์ ์์, EC2 ํญ์์ ๋์ ๊ทธ๋ฃน์ ๋ง๋ ๋ค. ๋์ ์ ํ์ ์ธ์คํด์ค, ํ๋กํ ์ฝ/ํฌํธ๋ TCP 80, VPC๋ ๋ด VPC, ์ํ ๊ฒ์ฌ๋ /๋ก ํ๋ค.
6. NLB(Network Load Balancer) ์์ฑ
๋ก๋๋ฐธ๋ฐ์ ์์ฑ์์ NLB๋ฅผ ์ ํํ๊ณ , ์ฒด๊ณ๋ ์ธํฐ๋ท ๊ฒฝ๊ณ(Internet-facing)๋ก ํ๋ค. NLB๋ L4๋ผ์ ๋ฆฌ์ค๋ ํ๋กํ ์ฝ์ด HTTP/HTTPS๊ฐ ์๋๋ผ TCP(80)ยทTLS(443)๋ค. ๋์ ๊ทธ๋ฃน์ ์์ ๋ง๋ ๊ฒ์ ์ฐ๊ฒฐํ๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก Route53์์ ๋ณ์นญ ๋ ์ฝ๋๋ฅผ ๋ง๋ค๋ฉด ์ ์ ์ ์๋๋ค.
๐ก
Internet-facing= ์ธํฐ๋ท ๊ฒฝ๊ณ. ์ฝ์ ๋ฒ์ญ์ด ์ค๋ฝ๊ฐ๋ฝํ๋ ์์ด ๋จ์ด๋ฅผ ๊ธฐ์ตํด๋์. ๋ CLB๋ Round Robin์ด๋ผ ์๋ก๊ณ ์นจ๋ง๋ค ์๋ฒ๊ฐ ๋ฐ๋์ง๋ง, NLB๋ IP Hash ๋ฐฉ์์ด๋ผ ๊ฐ์ ํด๋ผ์ด์ธํธ๋ ๊ฐ์ ์๋ฒ๋ก ๊ณ ์ ๋๋ค.
๐ ์ ๋ฆฌ
1
2
3
4
5
ELB
โโ ์ข
๋ฅ ALB(L7) / CLB(๊ตฌ์ธ๋) / NLB(L4)
โโ HTTPS 443 โ 80 ๋งคํ + ACM ์ธ์ฆ์(SSL ์คํ๋ก๋ฉ)
โโ ์ฐ๊ฒฐ Route53 ๋ณ์นญ(Alias) ๋ ์ฝ๋ โ ELB DNS
โโ ๋ถ์ฐ CLB=Round Robin / NLB=IP Hash
| ๊ฐ๋ | ํ ์ค ์ ์ |
|---|---|
| ELB | ์ฌ๋ฌ ๋์์ ํธ๋ํฝ ๋ถ์ฐ |
| ๋ณ์นญ ๋ ์ฝ๋ | ELB DNS๋ฅผ ๊ฐ๋ฆฌํค๋ Route53 ๋ ์ฝ๋ |
| L7 vs L4 | ALB(HTTP) vs NLB(TCP) |
ELB์ ํต์ฌ์ ํธ๋ํฝ ๋ถ์ฐ์ผ๋ก ๊ณ ๊ฐ์ฉ์ฑ ํ๋ณด + ACM์ผ๋ก HTTPS ์ฒ๋ฆฌ๋ค. ๊ณ์ธต(L7/L4)์ ๋ฐ๋ผ ํ๋กํ ์ฝ๊ณผ ๋ถ์ฐ ์๊ณ ๋ฆฌ์ฆ์ด ๋ค๋ฅด๋ฉฐ, ์ฐ๊ฒฐ์ ๋ฐ๋์ Route53 ๋ณ์นญ ๋ ์ฝ๋๋ก ํ๋ค๋ ์ ์ ๊ธฐ์ตํ์.
















Comments powered by Disqus.