๐ ELB - ALB : Application Load Balancer (v2)

Application Load Balancer
- 7๊ณ์ธต, HTTP ์ ์ฉ ๋ก๋ ๋ฐธ๋ฐ์
- ๋จธ์ ๊ฐ ๋ค์ HTTP ์ ํ๋ฆฌ์ผ์ด์
์ ๋ผ์ฐํ
์ ์ฌ์ฉ๋๋ค. ๋จธ์ ๋ค์ ๋์ ๊ทธ๋ฃน(Target group)์ด ๋ผ๋ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด๊ฒ ๋๋ค.
- ๋์ผ EC2 ์ธ์คํด์ค ์์ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ถํ๋ฅผ ๋ถ์ฐํ๋ค. ex) ์ปจํ
์ด๋, ECS
- HTTP/2์ WebSocket์ ์ง์ํ๋ค.
- ๋ฆฌ๋ค์ด๋ ํธ๋ ์ง์ํ๋ค. (HTTP์์ HTTPS๋ก ํธ๋ํฝ์ ์๋ ๋ฆฌ๋ค์ด๋ ํธํ๋ ๊ฒฝ์ฐ)
- ๊ฒฝ๋ก ๋ผ์ฐํ
์ ์ง์ํ๋ค.
- URL ๋์ ๊ฒฝ๋ก(path)์ ๊ธฐ๋ฐํ ๋ผ์ฐํ
(example.com/users & example.com/posts)
- URL ํธ์คํธ ์ด๋ฆ(hostname)์ ๊ธฐ๋ฐํ ๋ผ์ฐํ
(one.example.com & two.example.com)
- ์ฟผ๋ฆฌ ๋ฌธ์์ด๊ณผ ํค๋์ ๊ธฐ๋ฐํ ๋ผ์ฐํ
(example.com/users?id=1234&order=false)
- ๋ง์ดํฌ๋ก์๋น์ค(MSA)๋ ์ปจํ
์ด๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ์ฅ ์ข์ ๋ก๋ ๋ฐธ๋ฐ์ (Docker & Amazon ECS)
- ํฌํธ ๋งคํ ๊ธฐ๋ฅ์ด ์์ด ECS ์ธ์คํด์ค์ ๋์ ํฌํธ๋ก์ ๋ฆฌ๋ค์ด๋ ์
์ ๊ฐ๋ฅํ๊ฒ ํด์ค๋ค.
- CLS(Classic Load Balancer)์ ๋น๊ต๋ฅผ ํ์ ๋, CLS ๋ค์์ ๋ค์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ค์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ์๋งํผ ์ฌ๋ฌ ๊ฐ์ CLS๊ฐ ํ์ํ์ง๋ง ALB๋ ํ๋๋ง์ผ๋ก๋ ๋ค์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฒ๋ฆฌํ ์ ์๋ค.
๋์ ๊ทธ๋ฃน (Target Groups)
- EC2 ์ธ์คํด์ค(Auto Scaling ๊ทธ๋ฃน์ ์ํด ๊ด๋ฆฌ๋ ์ ์๋ค.)๊ฐ ๋์ ๊ทธ๋ฃน์ด ๋ ์ ์๋ค. - HTTP
- ECS tasks (ECS์ ์ํด ๊ด๋ฆฌ) - HTTP
- Lambda function - HTTP
- IP Addresses - ์ฌ์ค IP ์ฃผ์์ฌ์ผ๋ง ํ๋ค.
- ALB๋ ์ฌ๋ฌ ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ผ์ฐํ
ํ ์ ์๋ค.
- ์ํ ํ์ธ์ ๋์ ๊ทธ๋ฃน ๋ ๋ฒจ์์ ์ด๋ค์ง๋ค.
ALB ์์๋๋ฉด ์ข์ ์
- ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๊ณ ์ ํธ์คํธ ์ด๋ฆ์ด ๋ถ์ฌ๋๋ค.(XXX.region.elb.amazonaws.com)
- ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ๋ ํด๋ผ์ด์ธํธ์ IP๋ฅผ ์ง์ ๋ณด์ง ๋ชปํ๋ฉฐ ํด๋ผ์ด์ธํธ์ ์ง์ง IP๋ X-Forwarded-For๋ผ๊ณ ๋ถ๋ฆฌ๋ ํค๋์ ์ฝ์
๋๋ค. X-Forwarded-Port๋ฅผ ์ฌ์ฉํ๋ ํฌํธ์ X-Forwarded_proto์ ์ํด ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ๋ ์ป๊ฒ ๋๋ค.