Classic Load Balancers (v1)
CLB ํ์ฌ๋ ์ ์ฌ์ฉ๋์ง ์๋ ๋ก๋๋ฐธ๋ฐ์๋ก 2022๋ 8์ 15์ผ์ ์๋น์ค ์ข ๋ฃ์์ ์ด๋ค.
์ด ๋ก๋๋ฐธ๋ฐ์๋ TCP๋ ํธ๋ํฝ ์๋๋ฉด HTTP์ HTTPS๋ฅผ ์ง์ํฉ๋๋ค.
TCP๋ 4๊ณ์ธต, HTTP/HTTPS ๋ 7๊ณ์ธต์ด๋ฉฐ,
์ํ ํ์ธ(health check)์ TCP ๋๋ HTTP ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค.
๋ก๋ ๋ฐธ๋ฐ์, ์ฆ ํด๋์ ๋ก๋ ๋ฐธ๋ฐ์๋ก๋ถํฐ ๊ณ ์ ํธ์คํธ ์ด๋ฆ์ ๋ถ์ฌ๋ฐ์ต๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ HTTP ๋ฆฌ์ค๋๋ฅผ ํตํด ํด๋์ ๋ก๋ ๋ฐธ๋ฐ์์ ์ฐ๊ฒฐ๋๋ค.
๋ด๋ถ์์๋ CLB๊ฐ ํธ๋ํฝ์ EC2 ์ธ์คํด์ค๋ก ๋ค์ ์ ์กํ๊ฒ ๋๋ค.
- ํด๋ผ์ด์ธํธ(์ฌ์ฉ์)๊ฐ ์ง์ EC2 ์ ๋ฐ๋ก ์ ๊ทผํ๋๊ฒ๋ณด๋ค ELB ๋ฅผ ํตํด ์ ๊ทผํ๋๋ก ๋ณด์๊ทธ๋ฃน์ ์ค์ ํด์ผํ๋ค.
- EC2 ์ ๋ณด์๊ทธ๋ฃน์ source ELB๋ณด์๊ทธ๋ฃน์ผ๋ก๋ถํฐ ์ค๋ ํธ๋ํฝ๋ง ํ์ฉํ๋๋ก ์ค์ ํ๋ค.
- CLB ์ ์ฌ๋ฌ ๋์ EC2 ์ธ์คํด์ค๋ฅผ ๋ฑ๋กํ๊ฒ๋๋ฉด CLB ๋ก ์์ฒญ๋ณด๋ผ ๋ ๊ฐ๊ฐ์ EC2 ๋ค๋ก ํธ๋ํฝ์ ๋ถ์ฐ
Application Load Balancer (v2)
ALB ๋ ๋ง์ดํฌ๋ก ์๋น์ค(MSA) ๋๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ (ECS, EKS) ์ ๊ฐ์ฅ ์ข์ ๋ก๋๋ฐธ๋ฐ์์ด๋ค.
์ดํ ๋ค๋ฃจ๊ฒ ๋ ๋์ปค์ Amazon ECS ์ ๊ฒฝ์ฐ ALB ๊ฐ ๊ฐ์ฅ ์ ํฉํ ๋ก๋ ๋ฐธ๋ฐ์
์๋ํ๋ฉด ํฌํธ ๋งคํ ๊ธฐ๋ฅ์ด ์์ด ECS ์ธ์คํด์ค์ ๋์ ํฌํธ๋ก์ ๋ฆฌ๋ค์ด๋ ์ ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๊ธฐ ๋๋ฌธ
- ALB ๋ 7๊ณ์ธต, ์ฆ HTTP ์ ์ฉ ๋ก๋ ๋ฐธ๋ฐ์
- ๋จธ์ ๊ฐ ๋ค์ HTTP ์ ํ๋ฆฌ์ผ์ด์
์ ๋ผ์ฐํ
์ ์ฌ์ฉ์ด ๋๋ค.
- ์ด๋ฌํ ๋จธ์ ๋ค์ Target Group(๋์ ๊ทธ๋ฃน) ์ด๋ผ๋ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด๊ฒ ๋๋ค.
- ๋์ผ EC2 ์ธ์คํด์ค ์์ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ถํ๋ฅผ ๋ถ์ฐํ๋ค.
- ์ปจํ ์ด๋์ ECS ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค.
- HTTP/2 ์ WebSocket ์ ์ง์
- ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ ์ง์ํ๋ค. (HTTP => HTTPS ํ ๊ฒฝ์ฐ ๋ก๋ ๋ฐธ๋ฐ์ ๋ ๋ฒจ์์ ๊ฐ๋ฅํ๋ค๋ ์๋ฏธ)
- ๊ฒฝ๋ก ๋ผ์ฐํ
๋ ์ง์ํ๋ค.
- ๋์ ๊ทธ๋ฃน(Target Group)์ ๋ฐ๋ฅธ ๋ผ์ฐํ
- URL path์ ๊ธฐ๋ฐํ ๋ผ์ฐํ
์ ๊ฐ๋ฅ
- example.com/users & exampe.com/posts
- ์๋ก ๋ค๋ฅธ๊ฒฝ๋ก ์ด๋ฏ๋ก, ์๋ก๋ค๋ฅธ Target Group์ Redirect ํ ์ ์๊ฒ ํ๋ค.
- URL ํธ์คํธ ์ด๋ฆ์ ๊ธฐ๋ฐํ ๋ผ์ฐํ
๋ ๊ฐ๋ฅ
- one.example.com & other.example.com
- ๋ก๋๋ฐธ๋ฐ์๊ฐ ์ 2๊ฐ ์ฃผ์์ ์ ๊ทผ๊ฐ๋ฅํ๋ค๊ณ ํ๋ฉด ๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋์ ๊ทธ๋ฃน์ ๋ผ์ฐํ ๊ฐ๋ฅ
- ์ฟผ๋ฆฌ ๋ฌธ์์ด๊ณผ ํค๋์ ๊ธฐ๋ฐํ ๋ผ์ฐํ
๋ ๊ฐ๋ฅ
- example.com/users?id=123&order=false
- example.com ๊ณผ example.com/users?id=123&order=false
- ์์ ๋ ์ฃผ์๊ฐ ์๋ก ๋ค๋ฅธ ๋์ ๊ทธ๋ฃน์ ๋ผ์ฐํ ์ด ๋ ์์์์ ์๋ฏธํ๋ค.
- ALB ๋ ์ฌ๋ฌ Target Group ์ผ๋ก ๋ผ์ฐํ ํ ์ ์์ผ๋ฉฐ, Health Check๋ Target Group ๋ ๋ฒจ์์ ์ด๋ค์ง๋ค.
Target Group (๋์ ๊ทธ๋ฃน)
- EC2 ์ธ์คํด์ค๊ฐ ๋์ ๊ทธ๋ฃน์ด ๋ ์ ์๋ค.
- ์ดํ์ ๋ค๋ฃจ๊ฒ ๋ ASG (์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน)์ ์ํด ๊ด๋ฆฌ๋ ์ ์๋ค.
- ECS ์ ์์ ๋ ๋ ์๊ฐ ์๋ค. (ECS ๋ ๋ค๋ฃฐ ์์ )
- ๋๋ค ํจ์๋ ๋ ์๋ ์์ง๋ง, ์ ์๋ ค์ง ๋ด์ฉ์ด ์๋๋ค.
- ๋๋ค(Lambda) ํจ์ ์์๋ ALB ๊ฐ ์์ ์ ์๋ค.
- IP Addresses (muse be private IPs)
ALB - Good to Know
ALB ์ ๋ํด ์์๋๋ฉด ์ข์ ๋ด์ฉ
- ๊ณ ์ ๋ ํธ์คํธ ์ด๋ฆ์ด ๋ถ์ฌ๋๋ค. (CLB ์ ๋์ผ)
- ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ๋ ํด๋ผ์ด์ธํธ์ IP๋ฅผ ์ง์ ๋ณด์ง ๋ชปํ๋ฉฐ, client์ ์ค์ ip๋
X-Forwarded-For
ํค๋์ ์๋ค. - ํด๋ผ๋ฆฌ์ธํธ์ IP์ธ 12.34.56.78๊ฐ ๋ก๋ ๋ฐธ๋ฐ์์ ์ง์ ํต์ ํด ์ฐ๊ฒฐ ์ข ๋ฃ๋ผ๋ ๊ธฐ๋ฅ์ ์ํํ๋ค.
- ๋ก๋ ๋ฐธ๋ฐ์๊ฐ EC2 ์ธ์คํด์ค์ ํต์ ํ ๋๋ ์ฌ์คIP ์ธ ๋ก๋๋ฐธ๋ฐ์ IP๋ฅผ ์ฌ์ฉํด EC2 ์ธ์คํด์ค๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ค.
- EC2 ์ธ์คํด์ค๊ฐ ํด๋ผ๋ฆฌ์ธํธIP๋ฅผ ์๊ธฐ ์ํด์๋ HTTP์์ฒญ ํค๋์ ์๋
X-Forwarded-Port
์X-Forwarded-Proto
๋ฅผ ํ์ธํด์ผ ํ๋ค.
์ค์ต
- internet-facing : ์ธํฐ๋ท ๊ฒฝ๊ณ ์ฒด๊ณ (์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณต๊ณต์ผ๋ก ์ก์ธ์คํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ)
- internal : ๊ฐ์ธ ํธ๋ํฝ์ฉ
- ๋คํธ์ํฌ ๋งคํ์์๋ ์คํํ VPC ๋ฅผ ์ง์
- ์๋ธ๋ท ๊ฐ์์ ์คํํ AZ ๋ ์ง์
- 4๊ฐ์ ์๋ธ๋ท์ ๋ชจ๋ ์ ํ
ap-northest-2a ~ ap-northest-2d
- ์๋์ผ๋ก ์ฌ๋ฐ๋ฅธ ์๋ธ๋ท์ ํ ๋น๋๋ค.
-
๋ณด์๊ทธ๋ฃน๋ ์ค์ ํด์ผ ํ๋ค.
-
๋ฆฌ์ค๋์ ๋ผ์ฐํ ์ ์ง์ ํด์ผ ํ๋ค.
- ํ๊ฒ ๊ทธ๋ฃน์ด ์์ด์ผ ํ๋ค. (์์ผ๋ฉด ์์ฑ)
- ๋ผ์ฐํ
๊ท์น์ ์ง์ ํด์ผ ํ๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ