๋ก๋๋ฐธ๋ฐ์ฑ(Load balancing)์ด๋?
- ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์๋ฒ๋ค์๊ฒ ๋คํธ์ํฌ ํธ๋ํฝ์ ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐํ๋ ๊ฒ์ ๋๋ค.
- ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ํํ๋ ์ฅ์น๋ ์ํํธ์จ์ด๋ฅผ ๋ก๋๋ฐธ๋ฐ์(Load balancer)๋ผ๊ณ ํฉ๋๋ค.
- ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํตํด ๋ถํ๋ฅผ ๋ถ์ฐํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฉ์ฑ๊ณผ ํ์ฅ์ฑ ๋ฐ ์ฑ๋ฅ์ ํฅ์์ํฌ์ ์์ต๋๋ค.
- ๋ก๋ ๋ฐธ๋ฐ์์ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐํ์ฌ ์ํ์ ํ์ฅํ ์ ์์ต๋๋ค.
- AWS๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๋น์ค๋ก ELB(Elastic Load Balancing)๋ฅผ ์ ๊ณตํฉ๋๋ค.
ELB(Elastic Load Balancing)๋?
ELB๋ ํด๋ผ์ด์ธํธ์๊ฒ ํธ๋ํฝ์ ๋ฐ์ ๋ฑ๋ก๋ ๋์(target)์ผ๋ก ์ ๋ฌํฉ๋๋ค.
ELB๋ ํด๋ผ์ด์ธํธ์ ๋ํ ๋จ์ผ ์ ์ (single point of contact) ์ญํ ์ ํฉ๋๋ค.
ELB๋ ๋ฆฌ์ค๋์ ํ๊ฒ ๊ทธ๋ฃน์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๋ฆฌ์ค๋(Listeners)๋ ํ๋กํ ์ฝ๊ณผ ํฌํธ ๋ฒํธ๋ก ๊ตฌ์ฑ๋ ํ๋ก์ธ์ค๋ก ELB๋ก ๋ค์ด์ค๋ ์์ฒญ์ LISTENํ๊ณ ์์ต๋๋ค.
ํ๊ฒ ๊ทธ๋ฃน(target group)์ ๋ถํ ๋ถ์ฐ ๋์์ ์ ์ํ ๊ฒ์ผ๋ก ๋ฆฌ์ค๋์ ์ํด ํธ๋ํฝ์ด ์ ๋ฌ๋๋ ๋์์ ๋๋ค.
ELB๋ ํฌ์ค์ฒดํฌ๋ฅผ ํตํด target์ ๋ชจ๋ํฐ๋งํ๊ณ target์ ์ํ๊ฐ ๋น์ ์์ด๋ผ๋ฉด ํธ๋ํฝ์ ์ ๋ฌํ์ง ์๊ณ ์ํ๊ฐ ์ ์์ธ target์ผ๋ก๋ง ํธ๋ํฝ์ ์ ๋ฌํฉ๋๋ค.
target์ด ๋ค์ ์ ์์ผ๋ก ๊ฐ์ง๋๋ฉด ํธ๋ํฝ์ ๋ค์ ์ ๋ฌํฉ๋๋ค.ํฌ์ค ์ฒดํฌ๋ target group์ ๋จ์๋ก ์ด๋ฃจ์ด์ง๋๋ค.
ELB๋ public IP๋ฅผ ๊ฐ์ง๋ internet-facing ๋๋ private IP๋ง ๊ฐ์ง๋ internal๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
internet-facing ๋ก๋ ๋ฐธ๋ฐ์์ internal ๋ก๋ ๋ฐธ๋ฐ์๋ ๋ชจ๋ private IP๋ฅผ ์ฌ์ฉํ์ฌ target์ผ๋ก ์์ฒญ์ ์ ๋ฌํฉ๋๋ค.๋ก๋ ๋ฐธ๋ฐ์๋ amazonaws.com ๋๋ฉ์ธ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ๋ ELB์ ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ํด์ Amazon DNS ์๋ฒ๋ฅผ ์ด์ฉํ์ฌ ELB์ IP๋ฅผ ํ์ธํด์ผ ํฉ๋๋ค.
Elastic Load Balancing(ELB)์ 4๊ฐ์ง ์ ํ์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ง์ํฉ๋๋ค.
CLB๋ ELB v1์ด๋ผ๊ณ ํ๋ฉฐ ALB, NLB, GWLB๋ ELB v2๋ผ๊ณ ํฉ๋๋ค.
CLB(Classic Load Balancer)
- EC2-Classic ๋คํธ์ํฌ์์ ์คํ ์ค์ธ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ ๊ฒฝ์ฐ CLB๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- CLB๋ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅํ์ง ์์ต๋๋ค.
ALB(Application Load Balancer)
- ALB๋ HTTP ๋ฐ HTTPS ํธ๋ํฝ์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํฉ๋๋ค.
- ALB๋ L7 ๋ก๋ ๋ฐธ๋ฐ์๋ก request ์์ค์์ ๋์ํฉ๋๋ค.
- ALB๋ ๋ง์ดํฌ๋ก ์๋น์ค์ ์ปจํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ๋ฅผ ๋์์ผ๋ก ๊ณ ๊ธ ๋ผ์ฐํ ๊ธฐ๋ฅ๊ณผ ๊ฐ์์ฑ์ ์ ๊ณตํฉ๋๋ค.
- ALB์ IP๋ ๊ณ ์ ๋์ง ์๊ณ ๋ณํํฉ๋๋ค.
- ALB์ ๋ฆฌ์ค๋๋ ๋ค์ํ routing rule์ ์ ๊ณตํฉ๋๋ค.
- Host header ๋ผ์ฐํ ์ ํธ์คํธ ์ด๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก ๋ผ์ฐํ ํฉ๋๋ค.
- Path based ๋ผ์ฐํ ์ URL์ ๊ฒฝ๋ก(Path)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ผ์ฐํ ํฉ๋๋ค.
- HTTP method์ request์ HTTP method(GET, POST ๋ฑ)์ ๊ธฐ๋ฐ์ผ๋ก ๋ผ์ฐํ ํฉ๋๋ค.
- Source IP๋ request์ IP์ฃผ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ผ์ฐํ ํฉ๋๋ค.
- Query string์ ์ฟผ๋ฆฌ ๋ฌธ์์ด์ ํค/๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋ผ์ฐํ ํฉ๋๋ค.
NLB(Network Load Balancer)
- NLB๋ ๊ณ ์ฑ๋ฅ์ ๋ก๋๋ฐธ๋ฐ์ฑ, ๋๊ท๋ชจ TLS offloading, UDP ์ง์, Static IP ์ฃผ์๊ฐ ํ์ํ ๋ ์ฌ์ฉํฉ๋๋ค.
- NLB๋ L4 ๋ก๋ ๋ฐธ๋ฐ์๋ก connection ์์ค์์ ๋์ํฉ๋๋ค.
- NLB๋ ultra-lowํ ์ง์ฐ ์๊ฐ์ ์ ์งํ๋ฉด์ ์ด๋น ์๋ฐฑ๋ง๊ฐ์ ์์ฒญ์ ์์ ํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- NLB๋ ๊ณ ์ IP๋ฅผ ์ ๊ณตํ๋ฏ๋ก ALB์ ๊ณ ์ IP๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
- NLB์ ๋ฆฌ์ค๋๋ ์์ ํ ์์ฒญ์ ์ ๋ฌํ target group์ ์ง์ ํฉ๋๋ค.
GWLB(Gateway Load Balancer)
- GWLB๋ GENEVE๋ฅผ ์ง์ํ๋ third-party virtual appliance๋ฅผ ๋ฐฐํฌํด์ผํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํฉ๋๋ค.
- GWLB๋ L3 ๋ก๋ ๋ฐธ๋ฐ์๋ก ๋ชจ๋ ํฌํธ์์ ๋ชจ๋ IP ํจํท์ ์์ ํ๊ณ target์ผ๋ก ํธ๋ํฝ์ ์ ๋ฌํฉ๋๋ค.
- GWLB์ virtual appliance๋ 6081 GENEVE ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ํธ๋ํฝ์ ๊ตํํฉ๋๋ค.
- third-party appliance๋ ๋ณด์๊ณผ ์ปดํ๋ผ์ด์ธ์ค(๋ด๋ถํต์ )๋ฅผ ๊ฐํํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.
๊ต์ฐจ ์์ญ ๋ก๋ ๋ฐธ๋ฐ์ฑ(Cross-zone load balancing)
- ๊ต์ฐจ ์์ญ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํ์ฑํํ๋ฉด ๋ชจ๋ target์ ๋์ผํ๊ฒ ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค.
- ๊ต์ฐจ ์์ญ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๋นํ์ฑํํ๋ฉด AZ ์์ค์์ ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค.
- ALB๋ ๋ก๋ ๋ฐธ๋ฐ์ ์์ค์์ ๊ต์ฐจ ์์ญ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ํญ์ ์ฌ์ฉ๋ฉ๋๋ค. target group์์ ๊ต์ฐจ ์์ญ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
- NLB์ GWLB๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ต์ฐจ ์์ญ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ๋นํ์ฑํ๋์ด ์์ต๋๋ค.
SSL/TLS
- SSL์ CLB, ALB, NLB์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- CLB๋ 1๊ฐ์ SSL ์ธ์ฆ์๋ง์ ์ ์ฉ ๊ฐ๋ฅํ๊ณ ALB์ NLB๋ ์ฌ๋ฌ๊ฐ์ SSL ์ธ์ฆ์๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค.
Sticky session
- Sticky session(๊ณ ์ ์ธ์ )์ ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์ฌ์ฉ์์ ๋ชจ๋ ์์ฒญ์ ๋์ผํ target์ผ๋ก ์ ์กํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- Sticky session์ ํต์ฌ์ ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์ผ๋ง๋ ๋์ ์ฌ์ฉ์์ ์์ฒญ์ ๋์ผํ ๋์์ผ๋ก ์ ๋ฌํ๋๋ก ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ ๋๋ค.
- Sticky session์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ํด๋ผ์ด์ธํธ๊ฐ cookie๋ฅผ ์ง์ํด์ผ ํฉ๋๋ค.
- Sticky session์ target group ์์ค์์ ํ์ฑํ๋ฉ๋๋ค.
- Sticky session์ ํด๋ผ์ด์ธํธ์๊ฒ ์ง์์ ์ธ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด state๋ฅผ ์ ์งํฉ๋๋ค.
- Sticky session์ Session affinity๋ผ๊ณ ๋ ํฉ๋๋ค.
'๐ AWS > AWS Developer - Associate' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] Developer Associate #6 S3 (0) | 2024.07.26 |
---|---|
[AWS] Developer Associate #5 ElastiCache (0) | 2024.05.24 |
[AWS] Developer Associate #4 ์ปจํ ์ด๋(ECR, ECS, EKS) (0) | 2024.05.12 |
[AWS] Developer Associate #2 Relational DB(RDS, Aurora) (0) | 2024.04.01 |
[AWS] Developer Associate #1 Elastic Beanstalk (0) | 2024.03.06 |