โ ์์ด ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ํ๊ธฐ ๋ณด๋ค ์ฝ๋ค. โ
- Larry Wall
Perl ์ธ์ด์ ์ฐฝ์์

ELB (Elastic Load Balancer) ์ด๋
ELB(Elastic Load Balancer)๋ ์ ํ๋ฆฌ์ผ์ด์ ํธ๋ํฝ์ ์ฌ๋ฌ ๋์์ ์๋์ผ๋ก ๋ถ์ฐ์์ผ ์์ ์ ์ธ AWS์๋ฒ ํ๊ฒฝ์ ์ด์ฉํ๋๋ฐ์ ๋์์ ์ฃผ๋ ์๋น์ค๋ค. EC2๋ฟ๋ง ์๋๋ผ ์ปจํ ์ด๋(ECS), AWS Lambda ๋ฑ์ผ๋ก ๋ค์ํ ์๋น์ค์ ์ฐ๊ณํ์ฌ ๋ถํ๋ฅผ ๋ถ๋ฐฐํ ์ ์๋ค.

ELB๋ ์๋ก ๋ค๋ฅธ EC2 ์ธ์คํด์ค์ ๋ํ ํ๋์ ์๋ํฌ์ธํธ๋ฅผ ์ ๊ณตํ๋ค. ๊ทธ๋์ ์ฌ์ฉ์๋ ์ค์ ์์ฒญ์ด ์ฒ๋ฆฌ๋๋ ๋ฐฑ์๋ ์ธ์คํด์ค์ ๋ํ ๊ณ ๋ ค ์์ด, ๋์ผํ ์๋ํฌ์ธํธ๋ก ์์ฒญ์ ์ ์กํ ์ ์๋ค. ๊ฑฐ๊ธฐ๋ค ๋ถํ๋ถ์ฐ๋ฟ๋ง ์๋๋ผ ๋ถํ ๋ถ์ฐ ๋์์ ๋ํ ํฌ์ค ์ฒดํฌ(Health Check), ๊ณ ์ ์ธ์ (Sticky), SSL Offload(SSL ์๋ณตํธํ), ํฌ์ค ์ฒดํฌ๋ฅผ ํตํ ๋ค์ด ์๋ฒ ์ ์ธ ๋ฑ์ด ๊ฐ๋ฅํ๋ค.
Load Balancing ๊ธฐ๋ฅ
์คํ ์ค์ผ์ผ๋ง์ ์ดํดํ๊ธฐ์ํด ์ค์ผ์ผ๋ง์ด ๋ฌด์์ธ์ง ์์๋ดค์๋ ๊ฒ ์ฒ๋ผ, ELB๋ฅผ ์ดํดํ๊ธฐ์ํด ์ฐ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ๋ฌด์จ ์ญํ ์ ํ๋์ง ๋ถํฐ ์์๋ณด์.
1. ๋ถํ ๋ถ์ฐ ์ฒ๋ฆฌ
Load(๋ถํ) Balancing(๋ถ์ฐ)์ด๋ ์ปดํจํฐ ๋คํธ์ํฌ ๊ธฐ์ ์ ์ผ์ข ์ผ๋ก ๋ ํน์ ์ ์ด์์ ์ค์์ฒ๋ฆฌ์ฅ์น ํน์ ์ ์ฅ์ฅ์น์ ๊ฐ์ ์ปดํจํฐ ์์๋ค์๊ฒ ์์ ์ ๋๋๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋ง๊ทธ๋๋ก ๋ถํ๋ฅผ ๋ถ์ฐํด ํธ๋ํฝ์ด ๊ณผ๋ํ๊ฒ ๋ชฐ๋ ค ์๋น์ค๊ฐ ์ค๋จ๋๋ ํ์์ ๋ง๊ธฐ ์ํ ๊ธฐ์ ์ด๋ค. ๊ทธ๋์ผ ์ง์ฐ ์์ด ์์ ์ ์ฒ๋ฆฌํ๊ณ ์๋๋ฅผ ๋ผ ์ ์๋ค. ํ์ฌ์์ ํ์ฅ์ด ์ธ๋ถ๋ก๋ถํฐ ๋ฐ์ ์ฒ๋ฆฌํด์ผ ํ ์ ๋ฌด๋ฅผ ํ์๋ค์๊ฒ ๋๋์ด ์ฃผ์ด ๊ธฐ๊ฐ์์ ์ผ์ ์ฒ๋ฆฌํ๋ ํ์ ๋ํ ๋ถํ ๋ถ์ฐ์ผ๋ก ๋ณผ ์ ์๋ค.

2. ์๋ํฌ์ธํธ ์ญํ ์ ๊ณต
๋ก๋ ๋ฐธ๋ฐ์๋ ์ด๋ฐ ๋ถํ๋ฅผ ๋ถ์ฐํ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ, ์ค์ผ์ผ ์์์ ๋ํ ํ๋์ ์๋ํฌ์ธํธ๋ฅผ ์ ๊ณตํ๊ธฐ๋ ํ๋ค.
์ฐ๋ฆฌ๋ ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์ ํตํด ๋ค์์ ์ธ์คํด์ค๋ฅผ ์์ฑ(์ค์ผ์ผ ์์)ํ๊ณ ๊ด๋ฆฌํจ์ผ๋ก์จ ๊ณ ๊ฐ์ฉ์ฑ์ ํ๋ณดํ ์์๊ณ ์์ ์ ์ธ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๊ฒ ๋์๋ค.


๊ทธ๋ ์ง๋ง ์ด๊ฒ์ ์ฌ์ฉํ๋ ์ ์ ์ ์ฅ์์๋ ์ฆ์ค๋ ๊ฐ๊ฐ์ ์ธ์คํด์ค๋ ๋ชจ๋ ๋ค ์ผ์ข ์ ์ปดํจํฐ์ด๋ IP ์ฃผ์๋ฅผ ๊ฐ๊ณ ์์ํ ๊ณ , ์ด๋ค์ ๊ด๋ฆฌํ๊ธฐ ์ํด์ ์ผ์ผํ ์ฃผ์๋ฅผ ๋ฐฑ์ ํด ํ๋ํ๋ ์ ์ํ๋ฉด์ ๊ด๋ฆฌํด์ผ ๋๋ค. ๋ฟ๋ง ์๋๋ผ, ๋ง์ฝ ์ธ์คํด์ค ํ๋๊ฐ ๋จ์ด์ง๊ณ ๋ค์ ์๋ก ์ธ์คํด์ค๊ฐ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ค๋ฉด, IP์ฃผ์๊ฐ ๋ฐ๋๊ฒ ๋๊ณ ์ด์ ๋ํด ๋ณ๋์ ์กฐ์น๋ฅผ ์ทจํด์ผํ๋ค. ๋๊ตฐ๋ค๋ ๋ง์ฝ์ ์ธ์คํด์ค๊ฐ 8๊ฐ๊ฐ ์๋๋ผ ์์ฒญ ๋ง์ ๋๋ ๊ด๋ฆฌ๋น์ฉ์ด ์์ฒญ ์ฆ๊ฐ ํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน ์์ฒด๋ ํ์ ์ ์ธ ๋ฐฉ๋ฒ์ด์ง๋ง ๋ณ๋์ ๋ก๋ ๋ฐธ๋ฐ์ฑ, ๋ถํ๋ฅผ ๋ถ์ฐํด์ฃผ๋ ์๋น์ค ์์ด๋ ํ์ฉ ๋ถ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋์ ๋์จ ์๋น์ค๊ฐ Elastic Load Balancing ์ธ ๊ฒ์ด๋ค.
ELB(Elastic Load Balancing)๋ AWS์์ ์ด์ฉํ๋ ๋ก๋ ๋ฐธ๋ฐ์(Load Balancer)๋ฅผ ์ง์นญ ํ๋ ๊ฒ์ผ๋ก ๋ณด๋ฉด ๋๋ค.

๋ก๋ ๋ฐธ๋ฐ์(Load Balancer)์์ ํธ๋ํฝ์ ํ๋์ ๊ฒฝ๋ก๋ก ๋ฐ์์ ๋ค์์ ์ธ์คํด์ค์ ๋ถ์ฐํ๊ฒ ๋์ด, ์ ์ ์ ์ฅ์์๋ ๊ฐ๊ฐ์ ์ธ์คํด์ค์ ์ผ์ผํ ์ ๊ทผํด์ ๊ด๋ฆฌํ๋๊ฒ ์๋ ํ๋์ ์ฃผ์๋ก ์ ์ํด์ ๊ด๋ฆฌํ ์ ์๊ฒ ๋๋ค. ์ธ์คํด์ค๊ฐ ๋จ์ด์ ธ๋๊ฐ๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋์ ํธ๋ํฝ์ ์์ ํ์ง ๋ชปํ ๋์๋ ๋ก๋๋ฐธ๋ฐ์๊ฐ ์ค๋งํธํ๊ฒ(health check / monitoring) ์์์ ํธ๋ํฝ์ ์ ์กํ์ง ์๊ฒ ํ๊ณ , ์๋ก์ด ์ธ์คํด์ค๊ฐ ๋ฑ๋ก์ด ๋๋ฉด ์๋์ผ๋ก ๋ถ์ฐ์ ์์ผ์ค๋ค.
์คํ ์ค์ผ์ผ๋ง๊ณผ ์กฐํฉ
์คํ ์ค์ผ์ผ๋ง์ ํธ๋ํฝ์ ๋ชฐ๋ฆด๋ ์ธ์คํด์ค(์ปดํจํฐ) ์๋ฅผ ์๋์ผ๋ก ๋๋ฆผ์ผ๋ก์ ์๋ฒ ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํด ์๋น์ค๊ฐ ์ํ ํ ์ ์ง๋๊ฒ ํ๋ฉฐ, ๋ํ ํธ๋ํฝ์ด ์ ์๊ฒฝ์ฐ ์ธ์คํด์ค๋ฅผ ๊ฐ์์์ผ ๋น์ฉ ๋ญ๋น๋ฅผ ๋ง์์ฃผ๋ ์๋น์ค์ด๋ฉฐ, ELB(Elastic ๋ก๋ ๋ฐธ๋ฐ์)๋ ํธ๋ํฝ์ ์คํ ์ค์ผ์ผ๋ง์ ํตํด ๋๋ฆฐ ์๋ง๊ฐ์ ์ธ์คํด์ค๋ค์๊ฒ ๋ถํ(ํธ๋ํฝ)๋ฅผ ๋ถ์ฐํ๋ ์๋น์ค ์ด๋ค.
์ฆ, ์ด ๋์ ํ์ ์๋งค ์ฒ๋ผ ๋๋ ์ผ ๋์์ผ ์๋ ๊ด๊ณ์ด๋ฉฐ, ๊ฐ์ด ์ ๊ธฐ์ ์ผ๋ก ์ฐ๋๋์ด EC2๋ฅผ ๋ณด๋ค ํจ๊ณผ์ ์ด๊ฒ ์ด์ฉ ํ ์ ์๊ฒ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ์ด๋์ AWS ๋งค๋์ ์์ ๊ฐ์ด ์ค์ ํ๋ ํธ์ด๋ค.

ELB ๋ด๋ถ ๊ตฌ์ฑ ์์
ELB๋ Virtual Private Network(VPC)์ ํ์ฌ๋๋ฉฐ, ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๊ณ ์ด๋ฅผ VPC ๋ด์ ๋ฆฌ์์ค(EC2 ๋ฑ)์ ์ ์ ํ ๋ถํ ๋ถ์ฐํ๋ค. ELB๋ ์ธ๋ถ์ ์์ฒญ์ ๋ฐ์๋ค์ด๋ ๋ฆฌ์ค๋(Listener)์ ์์ฒญ์ ๋ถ์ฐ/์ ๋ฌํ ๋ฆฌ์์ค์ ์งํฉ์ธ ๋์ ๊ทธ๋ฃน(Target Group)์ผ๋ก ๊ตฌ์ฑ๋, ELB๋ ๋ค์์ ๋ฆฌ์ค๋์ ๋์ ๊ทธ๋ฃน์ ๊ฑฐ๋๋ฆด ์ ์๋ค.

๋ฆฌ์ค๋(Listener)
๋ฆฌ์ค๋๋ ํ๋กํ ์ฝ๊ณผ ํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฒญ์ ๋ฐ์ ๊ฒ์ฌํ๊ณ ์ด๋ฅผ ์ ์ ํ ํ๊ฒ์ผ๋ก ์ ๋ฌํ๋ ๊ธฐ๋ฅ์ ์ํํ๋ค. ๊ทธ๋์ ์ด๋ฆ์ 'Listen' ์ด ๋ถ๋ ๊ฒ์ด๋ค.
๋ฆฌ์ค๋๋ ์ธ๋ถ์ ์์ฒญ์ ๋ฐ์๋ค์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ก๋ ๋ฐธ๋ฐ์๋ ์ต์ 1๊ฐ ์ด์์ ๋ฆฌ์ค๋๋ฅผ ํ์๋ก ํ๋ฉฐ, ์ต๋ 10๊ฐ๊น์ง ์ค์ ํ ์ ์๋ค. ๋ฟ๋ง ์๋๋ผ SSL ์ธ์ฆ์๋ฅผ ๊ฒ์ํ์ฌ SSL Offload๋ฅผ ์ค์ํ ์๋ ์๋ค.

๊ท์น(Rule)
๋ฆฌ์ค๋ ๋ฃฐ(rule)์ ๋ฆฌ์ค๋์ ํ๊ฒ ๊ทธ๋ฃน ์ฌ์ด์ ํธ๋ํฝ ๋ถ๋ฐฐ๋ฅผ ์ํ ๋ผ์ฐํ ๊ท์น์ ํด๋นํ๋ค. ๋ฃฐ์ ์ฐ์ ์์, ์ก์ , ์กฐ๊ฑด ๋ฑ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ผ๋ฉฐ, path, host, HTTP header, source IP, query parameter ๋ฑ์ ๋ค์ํ ์กฐ๊ฑด์ด ๋ง์กฑ๋์์ ๋, ์ง์ ๋ ์ก์ ์ ์ํํ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ค.


๋์ ๊ทธ๋ฃน (Target Group)
๋์๊ทธ๋ฃน์ ๋ฆฌ์ค๋๊ฐ ์ ๋ฌํ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ถํ๋ถ์ฐ ๋์๋ค์ ๋ชจ์์ด๋ค. ์ฆ, ELB๊ฐ ๋ถ์ฐ์ ํ ๋ ์ด๋๋ก ๋ถ์ฐํ ๊ฒ์ด๋๋ฅผ ๋ชจ์ ๊ทธ๋ฃน๋ค์ด ๋์๊ทธ๋ฃน ์ด๋ค. ๊ทธ๋ ๊ธฐ์ ๋์ ๊ทธ๋ฃน์ ๋ฑ๋ก๋ EC2์ ๊ฐ์ข ์ ๋ณด(์ธ์คํด์ค ID, Port, AZ)๊ฐ ์ ํ์๊ณ , ์ด EC2๊ฐ ์ ๋ฌ๋ฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋์ง๋ฅผ ์ฒดํฌํ๋ 'ํฌ์ค ์ฒดํฌ(Health Check)' ๊ธฐ๋ฅ๊ณผ, ์ด ๋์ ๊ทธ๋ฃน์ ์์ฒญ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ EC2๊ฐ ๋ช ๊ฐ์ธ์ง, ๋ถ๊ฐ๋ฅํ EC2๋ ๋ช ๊ฐ์ธ์ง๋ฅผ ํ์ธํ๋ ์์ฒญ ์ฒ๋ฆฌ์ ๊ด๋ จ๋ '๋ชจ๋ํฐ๋ง(Monitoring)' ๊ธฐ๋ฅ์ด ๋ค์ด์๋ค.

์ฝ๊ฒ ๋งํ์๋ฉด, ์คํ ์ค์ผ์ผ๋ง์ ํ๊ธฐ์ํด์ ์ธ์คํด์ค๋ค์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์ผ๋ก ๋ง๋ ๊ฒ์ฒ๋ผ, ๋ก๋ ๋ฐธ๋ฐ์ฑ ํ๊ธฐ์ ํด์ ๋์ ์ธ์คํด์ค๋ค์ ๋ฌถ์ด ๋์ ๊ทธ๋ฃน์ด๋ผ๊ณ ์ดํด ํ๋ฉด๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ์ด ๋์ ๊ทธ๋ฃน์ ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์ผ๋ก๋ ๋ง๋ค ์ ์๋ค. (ELB + Auto Scaling ์กฐํฉ)

์ ํด ์ ํ ์๊ฐ(Connection Time Out)
์ฌ์ฉ์๊ฐ ELB๋ฅผ ๊ฑฐ์ณ EC2์ ์ ๊ทผํ์ฌ ์๋น์ค๋ฅผ ์ ์ํ๋ฉด Connection์ด ์์ฑ ๋๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ปค๋ฅ์ ์ ํตํด ์ฌ์ฉ์์ EC2๊ฐ ํต์ ์ ํ๋ ๊ฒ์ด๋ค. ๋ง์ผ ๋ ์ด์์ ํต์ ์ด ์์ ๋, ์ ํด ์ ํ ์๊ฐ์ด ์๋ํ๊ฒ ๋๊ณ , ๊ทธ ์๊ฐ(60์ด)์ด ์ง๋๋ฉด ์ปค๋ฅ์ ์ด ์ฌ๋ผ์ง๋ค. ์ฆ, ์ ํด ์ ํ ์๊ฐ์ด๋, ์ผ์ ์๊ฐ๋์ ํต์ ์ด ์์ ๋ ์ปค๋ฅ์ ์ ์ญ์ ํ ๊ฒ์ธ๊ฐ๋ฅผ ๋ปํ๋ ๊ฒ์ด๋ค.

ELB ๊ธฐ๋ฅ ๋ฐ ์ฅ์
๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ํ๋ ฅ์ฑ (์๋ ํ์ฅ/์ถ์)
ELB๋ ์ ์ ๋ถํ์ ๋ง๊ฒ ์๋์ ์ผ๋ก ๋ฆฌ์์ค์ ํ์ฅ/์ถ์๋ฅผ ์ํํ๋ค. ๋ฐ๋ผ์ ๋๋์ ์์ฒญ์ด ๋ฐ์ํด๋ ELB๋ก ์ธํด ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํ๋ ์ํฉ์ ๊ฑฐ์ ์ผ์ด๋์ง ์๋๋ค. ํ์ง๋ง ์๊ฐ์ ์ผ๋ก ์ ๊ทผ์ด ์ฆ๊ฐํ๋ฉด ๋ฆฌ์์ค ์๋ ํ์ฅ๊น์ง ์ผ์ ํ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฏ๋ก, ์ผ์์ ์ผ๋ก ๋ณ๋ชฉ ํ์์ด ๊ฑธ๋ฆด ์ ์๋ค.
๋ง์ฝ ์บ ํ์ธ, ์ด๋ฒคํธ, TV ๋ฐฉ์ ๋ฑ์ผ๋ก ์ธํด ์๊ฐ์ ์ธ ์์ฒญ ์ฆ๊ฐ๊ฐ ์์๋๋ค๋ฉด, AWS ์ํฌํธ์ ๋ฏธ๋ฆฌ ์ ์ฒญํด์ ELB ๋ฆฌ์์ค๋ฅผ ํ์ฅํ๋ ๊ฒ์ด ์ข๋ค. ๋ํ ์์ ๋๋ ํธ๋ํฝ์ ๋จ์ผ ๊ฐ์ฉ ์์ญ ๋๋ ์ฌ๋ฌ ๊ฐ์ฉ ์์ญ์ Amazon EC2 ์ธ์คํด์ค ์ ์ฒด์ ๊ฑธ์ณ ๋ฐฐํฌํ ์ ์๋ค.
ELB์ ํ์ฅ/์ถ์๋ ์ค์ผ์ผ์ /์ค์ผ์ผ๋ค์ด๊ณผ ์ค์ผ์ผ์์/์ค์ผ์ผ์ธ์ด๋ผ๋ 2๊ฐ์ง ๋ฐฉ์์ด ์ํฉ์ ๋ง๊ฒ ์ด๋ฃจ์ด์ง๋ค.
๋๋ฉ์ธ ๊ธฐ๋ฐ ์ ๊ทผ
ELB๋ ์ง์์ ์ผ๋ก IP์ฃผ์๊ฐ ๋ฐ๋๋ฉฐ IP ๊ณ ์ ๋ถ๊ฐ๋ฅํ์ฌ ๋ฐ๋ผ์ ํญ์ ๋๋ฉ์ธ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ค ์๋ ํ์ฅ/์ถ์ ํจ์ ๋ฐ๋ผ ELB ์ ๊ทผ IP๊ฐ ๋ณ๊ฒฝ๋๋ฏ๋ก, ELB์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ ELB๋ฅผ ์์ฑํ ๋์ ์์ฑ๋๋ ๋๋ฉ์ธ ์ด๋ฆ์ ์ฌ์ฉํด ์ ๊ทผํ๋๋ก ๊ตฌ์ฑํด์ผ ํ๋ค. ์ฆ, DNS ์ด๋ฆ์ ํตํด ์ ์ํ๋ฉด ELB๋ ์์ฒญ์ ๋์ ๊ทธ๋ฃน์ ์ ๋ฌํ ๊ฒ์ด๊ณ ๋์ ๊ทธ๋ฃน์ EC2๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด๋ค.
๋จ, ๋ค์์ ์๊ฐํ ๋คํธ์ํฌ ๋ก๋๋ฐธ๋ฐ์(NLB)๋ ํ๋ ฅ์ IP๋ก ๊ณ ์ ๊ฐ๋ฅํ๋ค.

ELB์ ์์ฒญ ์ฒ๋ฆฌ ๊ณผ์

- ์ฌ์ฉ์๊ฐ ๋ก๋๋ฐธ๋ฐ์์ ์ ๊ทผํ๊ธฐ ์ํด Amazon์ DNS ์๋ฒ์ ๋ก๋๋ฐธ๋ฐ์์ ๋๋ฉ์ธ ํด์์ ์์ฒญ
- Amazon์ DNS ์๋ฒ๊ฐ ๋ก๋๋ฐธ๋ฐ์ ๋ ธ๋ IP ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
- ์ฌ์ฉ์๋ ์ ๋ฌ๋ฐ์ IP ์ค ํ๋๋ฅผ ์ ํํ์ฌ ๋ก๋๋ฐธ๋ฐ์์ ์ ๊ทผ(+ Port ์ ๋ ฅ)
- ์ฌ์ฉ์๋ ๋ก๋๋ฐธ๋ฐ์์ (Port๊ฐ ์ผ์นํ๋) ๋ฆฌ์ค๋์ ์ ๊ทผํ๊ฒ ๋๋ฉฐ ๋ฆฌ์ค๋๋ ์ด ์์ฒญ์ ๋ฐ์๋ค์ฌ ์ ์ ํ ๋์๊ทธ๋ฃน์ผ๋ก ์ ๋ฌ
- ๋ฆฌ์ค๋๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ์์ฒญ์ EC2๊ฐ ์ฒ๋ฆฌํ ํ ๋ค์ ์ฌ์ฉ์์๊ฒ ๋ฐํ
Cross-Zone Load Balancing
์๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ๋๊ฐ์ AZ ์์ญ์ด ์๊ณ ๊ฐ ์์ญ์ ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์์นํ์ฌ ์์ญ ๋ด์ ELB ์ธ์คํด์ค๋ฅผ ๋ถํ ๋ถ์ฐํ๊ณ ์๋ ํํ์ด๋ค.

์ธ๋ป ๋ณด๋ฉด ๋ฌธ์ ์์ด ๊ฐ ์ธ์คํด์ค์ ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ๋ถ์ด์์ด ์ ๋ถํ ๋ถ์ฐ์ ์์ผ์ค ๊ฒ ๊ฐ์ง๋ง ํ์ค์ ๊ทธ๋ฆฌ ๋ น๋ก์ง ์๋ค. ๊ตฌ์ฑ๋๋ฅผ ๋ณด๊ฑด๋ฐ ๊ฐ AZ ์์ญ๋ง๋ค ์์นํ๊ณ ์๋ ์ธ์คํด์ค ๊ฐฏ์๊ฐ ๋ค๋ฅด๋ค. A ์์ญ์๋ ์ธ์คํด์ค๊ฐ 2๊ฐ ๋ฟ์ด๊ณ , B ์์ญ์๋ ์ธ์คํด์ค๊ฐ 8๊ฐ ์ด๋ค. ๋ง์ผ 100๊ฐ์ ํธ๋ํฝ์ด ์จ๋ค๊ณ ํ๋ฉด ์ด๋ฅผ ๋จ์ ์์์ผ๋ก ๋ถ์ฐํ์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ๋ ๊ฒ์ด๋ค.

์ ์ด์ ๋ถํ ๋ถ์ฐ์ด๋ ํธ๋ํฝ์ ๋์๋ค์๊ฒ ๊ณ ๋ฅด๊ฒ ํธ๋ํฝ์ ์ ๋ฌํ๋ ๊ฒ์ ๋งํ๋ค. ํ์ง๋ง ์์ ๊ตฌ์ฑ์ ๋ฐ๋ฅด๋ฉด AZ์๋ฐ๋ผ ๋ถํ๊ฐ ๊ณ ๋ฅด๊ฒ ์์ฒญ์ด ์ ๋ฌ๋์ง ์๊ณ ์๋ค. ๋ง์ผ AZ A์์ญ์ ํธ๋ํฝ์ด ๋ชฐ๋ฆฌ๋ฉด A ์์ญ ๋ด์ EC2๋ค์๊ฒ ๋ถํ๊ฐ ์ฌํ๊ฒ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค.
๋ฐ๋ผ์ ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํ ๊ธฐ๋ฅ์ด ๋ฐ๋ก ๊ต์ฐจ ์์ญ ๋ก๋๋ฐธ๋ฐ์ฑ(Cross Zone Load Balancing)์ด๋ค. ๊ต์ฐจ ์์ญ ๋ก๋๋ฐธ๋ฐ์ฑ์ ํ์ฑํํ๋ฉด ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด AZ๋ฅผ ๊ฐ๋ฆฌ์ง ์๊ณ ๊ณ ๋ฅด๊ฒ ๋ถํ๋ฅผ ๋ถ์ฐํ๋ค.

๋ค์์ ๋ฐฐ์ธ ELB ์ข ๋ฅ์ค์ ํ๋์ธ Application Load Balancer์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ต์ฐจ ์์ญ ๋ก๋๋ฐธ๋ฐ์ฑ์ด ํ์ฑํ๋์ด์์ผ๋ฉฐ, Network Load Balancer๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ ๋์ด์๋ค.
์ ๋ฆฌํ์๋ฉด, ๊ต์ฐจ ์์ญ ๋ก๋๋ฐธ๋ฐ์ฑ์ Availability Zone๋ณ๋ก ์ฌ์ฉํ๋ EC2 ๊ฐ์์ ์ฐจ์ด๊ฐ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ฉด ์ข์ ๊ธฐ๋ฅ์ด๋ค.
Health Check (์ํ ๊ฒ์ฌ)
ELB์ ์ฐ๊ฒฐ๋ ์ธ์คํด์ค์ ์ง์ ํธ๋ํฝ์ ๋ฐ์์์ผ ์ธ์คํด์ค๊ฐ ์ด์์๋์ง ์ฒดํฌํ๋ ๊ธฐ๋ฅ์ด๋ค. ํ๊ฒ ๊ทธ๋ฃน์ ๋ํ ํฌ์ค ์ฒดํฌ๋ฅผ ํตํด ํ์ฌ ์ ์์ ์ผ๋ก ์๋ํ๋ ์ธ์คํด์ค๋ก๋ง ํธ๋ํฝ์ ๋ถ๋ฐฐํ๋ค.
์ธ์คํด์ค์ ์ํ๋ฅผ ์๋์ผ๋ก ๊ฐ์งํด์ ์ค๋ฅ๊ฐ ์๋ ์์คํ ์ ๋ฐฐ์ ํ๊ณ , ๋ง์ผ ์ธ์คํด์ค๊ฐ ํ๋ณต๋๋ฉด LB๊ฐ ์๋์ผ๋ก ๊ฐ์งํ์ฌ ์ธ์คํด์ค์ ํธ๋ํฝ์ ๋ณด๋ด์ค๋ค.
์ด๋ฅผ ํตํด ์ฅ์ ๊ฐ ์ ํ๋๋๊ฒ์ ๋ฐฉ์งํ์ฌ ๊ณ ๊ฐ์ฉ์ฑ์ ํ๋ณดํ ์ ์์ผ๋ฉฐ, ์ํ ํ์ธ ๊ฐ์ ์ ํตํด ์์ธํ ์ค๋ฅ ์ฝ๋๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค. ๋ํ ์๋ก์ด ์งํ๋ก EC2 ์ธ์คํด์ค์์ ์คํ๋๋ ๊ฐ ์๋น์ค์ ํธ๋ํฝ์ ํ์ ํ ์ ์๋ค.
ํฌ์ค ์ฒดํฌ๋ ๋๊ฐ์ง ์ํ๋ก ๋๋์ด์ง๋ค
- InService(์๋น์ค ์ด์)
- OutofService(์๋น์ค ์ฃฝ์)

ํฌ์ค ์ฒดํฌ ๋ฐฉ๋ฒ์ ํด๋น ํฌํธ์ Listen ์ํ๋ฅผ ๊ฐ์ํ๋ ํฌํธ ๊ฐ์, HTTP ๋๋ HTTPS์ ๊ฒฝ์ฐ ์ค์ HTML ํ์ผ ์ ๊ทผ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ์๋น์ค ๊ฐ์๋ผ๋ ๋๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค.
HTTP/HTTPS ์ฒดํฌ ๋ฐฉ์

ํฌํธ ๊ฐ์ ๋ฐฉ์
์๊ณ๊ฐ(Threashold) ๋งํผ Health check๊ฐ ์คํจํ๋ฉด load balancer๋ฅผ ์๋น์ค์์ Target์ ์ ์ธ์ํค๊ณ , ๋ค์ ํด๋น Target์ด Healthy ์ํ๊ฐ ๋๋ฉด ์๋น์ค์ ์ถ๊ฐ์ํจ๋ค. (์๋)

์ถ๊ฐ์ ์ธ ๋ณด์ ๊ทธ๋ฃน ์ค์
๋ก๋๋ฐธ๋ฐ์ ๋ํ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ํํ๋ฅผ ๋๊ธฐ ๋๋ฌธ์ EC2 ์ธ์คํด์ค ์ฒ๋ผ ELB์ ๊ด๋ จ๋ ๋ณด์ ๊ทธ๋ฃน์ ์์ฑ ๋ฐ ๊ด๋ฆฌํ์ฌ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ํ ์ถ๊ฐ ๋คํธ์ํน ๋ฐ ๋ณด์ ์ต์ ์ ์ ๊ณตํ ์ ์๋ค.
๋ฌผ๋ก EC2์๋ ๋ณด์ ๊ทธ๋ฃน์ด ์์ง๋ง, ์ธ๋ถ์ ์๋ ELB์ ํ๋ฒ๋ ๋ณด์๊ทธ๋ฃน์ ์ค์ ํด ์ธ๋ถ์ ๊ณต๊ฒฉ(๋๋์ค)์ ๋ํด ๊ฐ๋ ฅํ๊ฒ ๋๋นํ๋ ๊ฐ๋ ์ผ๋ก ์๊ฐํ๋ฉด ๋๋ค.
์ํ๋ Load Balancer๋ฅผ ์ธํฐ๋ท๊ณผ ์ฐ๊ฒฐ๋๋๋ก ๊ตฌ์ฑํ๊ฑฐ๋ ํผ๋ธ๋ฆญ IP ์ฃผ์ ์์ด ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์์ฑํ์ฌ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋์ง ์์ ๋ด๋ถ ๋ก๋ ๋ฐธ๋ฐ์๋ก๋ ์ฌ์ฉํ ์ ์๋ค.

SSL ์ง์
SSL ์ํธํ๋ฅผ ๊ฐํธํ๊ฒ ๊ตฌ์ฑ ์ง์ํ๋ค. ๋ฐ๋ผ์ SSL ์ฆ๋ช ์๋ฅผ ์ธ์คํด์ค๋ค์ ๋ฐ๋ผ ์ค์ ํ ํ์๊ฐ ์์ด์ง๋ค.
ํต์ ์ ์ํธํ/๋ณตํธํ๋ฅผ ๊ฐ๊ฐ์ ์ธ์คํด์ค์์ ์ํํ ํ์๊ฐ ์์ผ๋ฏ๋ก, ์ธ์คํด์ค์ ๋ถํ๋ฅผ ๋ฎ์ถ ์ ์๋ค. ๋ํ, SSL ์ฆ๋ช ์๋ฅผ ELB์์๋ง ๊ด๋ฆฌํ๋ฉด ๋๋ฏ๋ก, ์ด์ฉ ์ธก๋ฉด์์์ ์ฅ์ ๋ ๊ฐ์ง๊ฒ ๋๋ค.

๊ณ ์ ์ธ์ (Sticky Session)
๋ง์ผ ์๋ฒ๊ฐ ์ฌ๋ฌ๊ฐ์ผ๊ฒฝ์ฐ, ์ฌ์ฉ์๊ฐ ์๋ฒ ์ธ์คํด์ค์ ์ ๊ทผํด ๋ก๊ทธ์ธ์ ํ๋ ค๊ณ ํ ๋ ์ด๋ ์๋ฒ์ ์ธ์คํด์ค์ ์ ๊ทผ๋ ์ง ๋ชจ๋ฅธ๋ค. ์๋ฅผ๋ค์ด A ์ธ์คํด์ค๋ก ๋ก๊ทธ์ธํ๊ณ ๋ค์๋ ๋ค์ ์๋ฒ์ ์ ๊ทผํ๋ ค๋๋ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ํด์ B ์ธ์คํด์ค๋ก ๊ฐ๋ฒ๋ ค ์ธ์ ์ด ์์ด ๋ ๋ก๊ทธ์ธํด์ผ ํ๋ ์ํฉ์ด ์ฌ ์ ๋ ์๋ค. ์ธ์คํด์ค๊ฐ ์์ญ๊ฐ๋ฉด ์์ญ๋ฒ ๋ก๊ทธ์ธ์ ํด์ผํ๋ค. ๋ฐ๋ผ์ ์ ์ ์๊ฒ ์ฟ ํค๋ฅผ ์์ฑํด ์ ์์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๋๋ก ํ๊ณ , ELB์์ฒด์์๋ ๊ณต๊ฐ์ ๋ง๋ค์ด ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค.
๐ ์ธ์ (Session) ๋ถ์ผ์น ๋ฌธ์ ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ
์๋ฒ ๋ค์คํ ํ๊ฒฝ์์์ ์ธ์ ๋ถ์ผ์น ๋จ์ผ ์๋ฒ ํ๊ฒฝ์์๋ session์ ํตํ ๋ก๊ทธ์ธ์ ๊ตฌํํ ๋ session ๋ถ์ผ์น ๋ฌธ์ ๋ฅผ ์ ๊ฒฝ์ธ ํ์๊ฐ ์๋ค. ํ์ง๋ง ์๋น์ค๊ฐ ์ปค์ง์ ๋ฐ๋ผ ํ๋์ ์๋ฒ๋ก ์ด์ํ๋๊ฒ
inpa.tistory.com
์ฆ, ์ฌ์ฉ์ ์ธ์ ์ ํน์ ์ธ์คํด์ค์ ๊ณ ์ ์ํด์ผ๋ก์ ์์ ์ด ์ด์ ์ ์ ์ํ๋ ์ธ์คํด์ค๋ก ๋ค์ ์ ์ํ ์ ์๋๋ก ํด์ค๋ค.



๋ก๊ทธ ์ถ์ถ ๊ธฐ๋ฅ
ELB๋ก ์ฒ๋ฆฌํ ์์ฒญ ๋ก๊ทธ๋ฅผ ์ถ์ถ ํ ์ ์๋ค. ์ถ์ถํ ๋ก๊ทธ๋ S3์ ์ ์ฅ๋๋ค.
์ฅ์ ๋ฐ์ ๋๋ ํต์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด, ์ธ์คํด์ค ๋ก๊ทธ๋ฅผ ํ๋ํ๋ ํ์ธํ๋ ๊ฒ๋ณด๋ค ELB ๋ก๊ทธ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์์ธ์ ์กฐ์ฌํ๊ธฐ์ ์ข๋ค.
CloudWatch ์ฐ๋
ELB๋ 1๋ถ ๋จ์๋ก ๋ก๋ ๋ฐธ๋ฐ์์ ํ๊ฒ ๊ทธ๋ฃน์ ๋ํ ๋ฉํธ๋ฆญ์ ์ ๊ณตํ๋ค. ์ด๋ฅผ ํตํด, CloudWatch์ ์ฐ๋ํ๊ณ ์์ ์ ์ผ๋ก ์๋น์ค๋ฅผ ๋ชจ๋ํฐ๋ง ํ ์ ์๋ค.
Amazon CloudWatch๊ฐ ALB์ CLB์ ๋ํด ์์ฒญ ํ์, ์ค๋ฅ ํ์, ์ค๋ฅ ์ ํ, ์์ฒญ ์ง์ฐ ์๊ฐ ๋ฑ์ ์งํ๋ฅผ ๋ณด๊ณ ํ๋ค.
HTTP/2 ์ง์
ALB์์๋ ๋ณ๋์ ์ค์ ์์ด HTTP/2๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์น ๋ธ๋ผ์ฐ์ ์์ ํ์ด์ง ๋ก๋ฉ์๊ฐ์ ๊ฐ์ ํ ์ ์๋ค.
ELB ์๋น์ค ์ข ๋ฅ
ELB๋ ๋ํ์ ์ผ๋ก 4๊ฐ์ง์ ๋ก๋๋ฐธ๋ฐ์๊ฐ ์กด์ฌํ๋ค.
- Application Load Balancer(ALB)
- Network Load Balancer(NLB)
- Classic Load Balancer(CLB)
- Gateway Load Balancer(GLB)
์ด ๋ท ๋ชจ๋ ๋ถํ๋ถ์ฐ์ ํ๋ ๋ก๋๋ฐธ๋ฐ์๋ผ๋ ์ ์ ๋์ผํ์ง๋ง ์ญํ ์ด ๊ฐ๊ฐ ๋ค๋ฅด๋ค. aws์์ ์ค์ ํ ๋ ์ด ์ ์ค ํ๋๋ฅผ ์ ํํ์ฌ ๋ก๋๋ฐธ๋ฐ์๋ฅผ ์์ฑํ๊ณ ๊ทธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ฒ ๋๋ค.
Classic Load Balancer(CLB) ๋ ์์ฃผ ์ด์ฐฝ๊ธฐ๋ ๋์จ ๋ก๋๋ฐธ๋ฐ์๋ก ์ง๊ธ์ ์ง์์ด ๋๊ฒจ deprecated ์ฒ๋ฆฌ๋์๋ค


CLB (Classic Load Balancer)
Classic Load Balancer๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํํ์ด์ ์ด๊ธฐ์ ์ ๊ณต๋๋ ์๋น์ค์ด๋ค. ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ก๋ ๋ฐธ๋ฐ์์ ์ญํ ์ ์ํํ์ง๋ง ์๋ฒ์ ๊ธฐ๋ณธ์ฃผ์๊ฐ ๋ฐ๋๋ฉด Load Balancer๋ฅผ ์๋ก ์์ฑํด์ผํ๋ฉฐ ํ๋์ ์ฃผ์์ ํ๋์ ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ฐ์ ๋ชป ๋ณด๋ธ๋ค. ๋ํ, ๋ฐ์ดํฐ๋ฅผ ์์ /๋ณ๊ฒฝํ ์ ์์ด ํฌํธ, ํค๋ ๋ฑ์ ๋ณ๊ฒฝ์ ํ์ง ๋ชปํ๋ค.

์ด๋ฌํ ๊ตฌ์กฐ๋ ์๋ฒ์ ๊ตฌ์ฑ๊ณผ ์ํคํ ์ฒ๊ฐ ์ปค์ง๊ณ ๋ณต์กํด์ ธ ๋น์ฉ์ด ์ฆ๊ฐํ๊ฒ ๋๋ค. ์๋ฅผ ๋ค์ด ์ฟ ํก์์ ํ์๊ด๋ฆฌ(shop) ์ธ์คํด์ค์ ์ฃผ๋ฌธ(order) ์ธ์คํด์ค๊ฐ ๋ฐ๋ก ์กด์ฌํ๋ค๊ณ ํ์. ๋ก๊ทธ์ธ ํ ์ฃผ๋ฌธ์ ํ๊ธฐ ์ํด์๋ ๊ทธ๋ฆผ ์ฒ๋ผ ๊ฐ๊ฐ ๋ค๋ฅธ Load Balancer๋ฅผ ๊ฑฐ์ณ ํด๋น ์ธ์คํด์ค๋ก ์ ์ํด์ผ ํ๋ฏ๋ก ์๋ฒ ๊ฐ์, ๋น์ฉ์ด ์ฆ๊ฐํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ํ์ฌ์๋ CLB(Classic LoadBalancer)๋ฅผ ๋ง์ด ์ฌ์ฉํ์ง ์์ ๋ ๊ฑฐ์๋ก ๋ถ๋ฅ๋์๊ณ , ์ฃผ๋ก NLB ๋๋ ALB๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํ๋ ์ถ์ธ์ด๋ค.
ALB (Application Load Balancer)
Application Load Balancer๋ OSI 7 Layer์์ ์ต์๋จ ์ผ๊ณฑ ๋ฒ์งธ ๊ณ์ธต์ ํด๋นํ๋ Application Layer๋ฅผ ๋ค๋ฃจ๋ ๋ก๋๋ฐธ๋ฐ์ ์ด๋ค. ์ฌ์ฉ์์ ์ง์ ์ ํ๋ ๊ณ์ธต์ผ๋ก์ ์ฌ๋ฌ๋ถ์ด ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ด ๋ธ๋ก๊ทธ๋ฅผ ์ ์ํ ์ ์๋๋ก ์ฌ์ฉํ๋ ํ๋กํ ์ฝ ์ญ์ Application Layer์ ํด๋นํ๋ HTTP/HTTPS์ธ ๊ฒ์ด๋ค.
Application Layer์๋ HTTP/HTTPS๋ฟ๋ง ์๋๋ผ FTP, DNS, DHCP, WebSocket ๋ฑ ๋ค์ํ ํ๋กํ ์ฝ์ด ์กด์ฌํ๋ค.

์ง๋ฅ์ ์ธ ๋ผ์ฐํ ๊ธฐ๋ฅ
ALB๋ ๋จ์ ๋ถํ๋ถ์ฐ๋ฟ๋ง ์๋๋ผ HTTP/HTTPS์ ํค๋ ์ ๋ณด๋ฅผ ์ด์ฉํด ๋ถํ๋ถ์ฐ์ ์ค์ํ ์ ์๋ค.์ฆ, HTTP ํค๋์ ๊ฐ๋ค์ ๋ณด๊ณ ์ด ์์ฒญ์ ์ด๋ ๋์๊ทธ๋ฃน์ผ๋ก ๋ณด๋ผ์ง ์ ์์ฒญ์ ์ด๋ ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ณด๋ผ์ง๋ฅผ ํ๋จํ ์ ์๋ค๋ ๋ป์ด๋ค. ์ด๋ฅผ ์ง๋ฅ์ ์ธ ๋ผ์ฐํ ์ด๋ผ ํ๋ค.
์๋ฅผ๋ค์ด ์์ ๊ตฌ์ CLB๊ฐ์๊ฒฝ์ฐ๋ ๊ฐ ๋์ ๊ทธ๋ฃน ์ฃผ์ ๋ง๋ค ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๊ฐ๊ฐ ๋์๋ค. ํ์ง๋ง ALB๋ ๋ก๋ ๋ฐธ๋ฐ์ ํ๋๋ง ์ค์ ํ๋ฉด, ํธ๋ํฝ์ ๋ชจ๋ํฐ๋งํ์ฌ ๊ฐ ๋์๊ทธ๋ฃน์ ๋ผ์ฐํ
์ ํ๊ฒ ํด์ค๋ค. /user path ๊ฒฝ๋ก๋ก ์ค๋ฉด ๋๋ค ๋์๊ทธ๋ฃน์ ๋ณด๋ด์ฃผ๊ณ , /shop path๋ก ์ค๋ฉด ํ์๊ด๋ฆฌ ๋์๊ทธ๋ฃน์ ๋ณด๋ด์ฃผ๋ ์์ด๋ค.
์ด์ฒ๋ผ ์ ์ ๊ฐ ์ด๋ค ์๋ฒ๋ก ์ ์ํจ์ ๋ฐ๋ผ์ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ค๋งํธํ๊ฒ ๋ผ์ฐํ
์ด ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ ๋ก๋๋ฐธ๋ฐ์์ ๊ฐฏ์๋ฅผ ์ค์ผ์ ์๊ณ ์ด๋ ๊ณง ๋น์ฉ ์ ๊ฐ์ผ๋ก ์ด์ด์ง๋ค.
ALB๋ path(๊ฒฝ๋ก) ๋ฟ๋ง ์๋๋ผ port(ํฌํธ)์ ๋ฐ๋ผ ๋ค๋ฅธ ๋์๊ทธ๋ฃน์ผ๋ก ๋งตํํ ์๋ ์๋ค. ๊ฐ๊ฐ์ ํฌํธ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ ๋์ผํ ํฌํธ๋ผ๋ path(๊ฒฝ๋ก)๋ฑ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋ถ๊ธฐํ ์๋ ์๋ค ํนํ ํฌํธ ๋จ์๋ก ์ฐ๊ฒฐํด์ค ์ ์๋ ๊ฒ์ ๋์ปค ์ปจํ ์ด๋ ํ๊ฒฝ์์ ์์ฃผ ์ ์ฉํ๊ฒ ์๋ํ ์ ์๊ณ ํ๋์ ๋์๊ทธ๋ฃน์ ๋ ๋ง์ ์ปจํ ์ด๋๋ฅผ ๋ฃ์ด ๋น์ฉ์ ์ต์ ํํ ์ ์๋ค.
ALB๋ ๋์์ EC2 ์ธ์คํด์ค ๋ฟ๋ง ์๋๋ผ ๋๋ค, IP๋ก๋ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ฉฐ ํน์ ํ ์์ฒญ์ ๋ํด์๋ ์๋ฒ์์ด ์ง์ ์๋ต๋ฉ์ธ์ง๋ฅผ ์์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ง์ดํฌ๋ก์ํคํ ์ณ๋ฅผ ๊ตฌ์ฑํ๊ธฐ์ ์ข๋ค. ๊ทธ๋ฆฌ๊ณ SSL ์ธ์ฆ์๋ฅผ ํ์ฌํ ์ ์์ด ๋์ ๊ทธ๋ฃน์ EC2๋ฅผ ๋์ ํ์ฌ SSL ์ํธํ/๋ณตํธํ๋ฅผ ๋์ ์งํํ ์ ์๋ค.
์์ ๋ด์ฉ์ ์ข ํฉํด๋ณด๋ฉด Application Load Balancer๋ TCP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ HTTP, HTTPS, WebSocket ๋ฑ์ ํ์ฉํ๋ฉฐ, HTTP์ ์ฃผ์ ํน์ง์ธ HTTP Header, Host Header, ์์ฒญ ๋ฉ์๋ ๋ฑ์ ๊ธฐ์ค์ ์ ์ฉํ์ฌ ๊ธฐ์ค์ ๋ง๋ ์ ์ ํ ๋์๊ทธ๋ฃน์ผ๋ก ๋ผ์ฐํ ํ ์ ์๋ ๋ก๋๋ฐธ๋ฐ์ ์ด๋ค.
- ALB๋ L7๋จ์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ง์
- ALB๋ HTTP/HTTPS ํ๋กํ ์ฝ์ ํค๋๋ฅผ ๋ณด๊ณ ์ ์ ํ ํจํท์ผ๋ก ์ ์ก
- ALB๋ IP์ฃผ์ + ํฌํธ๋ฒํธ + ํจํท ๋ด์ฉ์ ๋ณด๊ณ ์ค์์นญ
- ALB๋ IP ์ฃผ์๊ฐ ๋ณ๋๋๊ธฐ ๋๋ฌธ์ Client์์ Access ํ ELB์ DNS Name์ ์ด์ฉ
- ALB๋ L7๋จ์ ์ง์ํ๊ธฐ ๋๋ฌธ์ SSL ์ ์ฉ์ด ๊ฐ๋ฅ
NLB (Network Load Balancer)
Netowrk Load Balancer(NLB)๋ AWS์์ ์ ๊ณตํ๋ 4๊ฐ์ง ๋ก๋๋ฐธ๋ฐ์ ์ค ํ๋๋ก OSI 7 Layer์์ ๋ค ๋ฒ์งธ ๊ณ์ธต์ ํด๋นํ๋ Transport Layer๋ฅผ ๋ค๋ฃจ๋ ๋ก๋๋ฐธ๋ฐ์์ด๋ค. ๋ฐ๋ผ์ NLB๋ TCP์ UDP๋ฅผ ์ฌ์ฉํ๋ ์์ฒญ์ ๋ฐ์๋ค์ฌ ๋ถํ๋ถ์ฐ์ ์ค์ํ๋ค. ๊ทธ๋์ NLB๋ ALB๋ณด๋ค ์ฑ๋ฅ์ด ๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ๊ณ ์ฑ๋ฅ์ ์๊ตฌํ๋ ํ๊ฒฝ์์์ ๋ถํ๋ถ์ฐ์ ์ ํฉํ ์๋ฃจ์ ์ด๋ค. ๋ฎ์ ๋ ์ดํด์๋ก ์ด๋น ์๋ฐฑ๋ง ๊ฑด์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ ๊ฐ์์ค๋ฌ์ด ํธ๋ํฝ ์ฆ๋ ๋ฐ ๋ณํ์๋ ์ต์ ํ ๋์ด์๋ค. ๋จ, HTTP๊ฐ ์๋ ํ์ Layer์ธ TCP Layer์์ ์ฒ๋ฆฌํ๋ฏ๋ก HTTP ํค๋๋ฅผ ํด์ํ์ง ๋ชปํ๋ค.

IP ๊ณ ์ ๊ธฐ๋ฅ
ALB๊ณผ ๋น๊ตํ์ฌ NLB์ ๊ฐ์ฅ ํฐ ํน์ง์ ๋ฐ๋ก EIP๋ก ๊ณต์ธ IP๋ฅผ ๊ณ ์ ํ ์ ์๋ค๋ ์ ์ด๋ค. ๊ทธ๋์ ALB์ ๋ฌ๋ฆฌ ๋ก๋๋ฐธ๋ฐ์์ ์ ๊ทผ ํ ๋ ์์ดํผ๋ DNS ๋๋ค ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
TCP ์ธ์ ์ 350์ด ์ ์งํ๋ค๊ณ ํ๋ค. ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์ฐ๊ฒฐ ์์ฒญ์ ๋ฐ์ผ๋ฉด ๊ธฐ๋ณธ ๊ท์น์ ๋์ ๊ทธ๋ฃน์์ ๋์์ ์ ํํ๊ณ ๋ฆฌ์ค๋ ๊ตฌ์ฑ์ ์ง์ ๋ ํฌํธ์์ ์ ํํ ๋์์ ๋ํ TCP ์ฐ๊ฒฐ์ ์ด๋ ค๊ณ ์๋ํ๋ค.
ALB vs NLB ๋น๊ต
- ALB : ํด๋ผ์ด์ธํธ๊ฐ ์นํ๋ฉด์ ์์ฒญํ๋ ์ํฉ์ผ๋ (HTTP,HTTPS ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ ์ดํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ ์ ๊ทผํ ๋
- NLB : ๋ด๋ถ๋ก ๋ค์ด์จ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ณ , ๋ด๋ถ์ ์ธ์คํด์ค๋ก ํธ๋ํฝ์ ์ ์กํ ๋

nlb์ ๋นํด 7๊ณ์ธต๊น์ง ํ์ธํ๋ alb์ ๊ธฐ๋ฅ์ด ๋ ๋ง๋ค. ๊ทธ๋ฌ๋, nlb๋ network ๊ณ์ธต๊น์ง๋ง ํ์ธํ๋ฏ๋ก alb ๋ณด๋ค ๋น ๋ฅด๋ค. ๋ฐ๋ผ์ ๋จ์ํ ๋ผ์ฐํ ์ด ํ์ํ๊ณ , ํธ๋ํฝ์ด ๊ทน๋๋ก ๋ง์ ๊ฒฝ์ฐ์๋ alb ๋ณด๋ค๋ nlb๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ํฉํ๋ค.
alb๋ path-based routing์ด ๊ฐ๋ฅํ๋ฏ๋ก path๋ฅผ ํ์ธํ์ฌ ํน์ ์๋ฒ๋ก ๋ผ์ฐํ ์ ์์ผ์ฃผ์ด์ผ ํ๋ ๊ฒฝ์ฐ์ ์ ํฉํ๋ค
์ ๋ฆฌํ์๋ฉด ALB์ฒ๋ผ ๋๋ํ๊ฒ ์ฃผ์๋ก ๋ณด๋ด์ฃผ๋๊ฒ ์๋ ๋จ์ํ ๋ผ์ฐํ ์ด ํ์ํ๊ณ , ํธ๋ํฝ์ด ๊ทน๋๋ก ๋ง์ ๊ฒฝ์ฐ์๋ ALB ๋ณด๋ค๋ NLB๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ํฉํ๋ค๊ณ ํ ์ ์๋ค.
- NLB๋ L4๋จ์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ง์
- NLB๋ TCP/IP ํ๋กํ ์ฝ์ ํค๋๋ฅผ ๋ณด๊ณ ์ ์ ํ ํจํท์ผ๋ก ์ ์ก
- NLB๋ IP + ํฌํธ๋ฒํธ๋ฅผ ๋ณด๊ณ ์ค์์นญ
- NLB๋ ํ ๋นํ Elastic IP๋ฅผ Static IP๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ์ฌ DNS Name๊ณผ IP์ฃผ์ ๋ชจ๋ ์ฌ์ฉ์ด ๊ฐ๋ฅ
- NLB๋ SSL ์ ์ฉ์ด ์ธํ๋ผ ๋จ์์ ๋ถ๊ฐ๋ฅํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ๋ก ์ ์ฉํด ์ฃผ์ด์ผ ํฉ๋๋ค.
GWLB (Gateway Load Balancer)
GWLB(Gateway Load Balancer)๋ OSI(Open Systems Interconnection) ๋ชจ๋ธ์ 3 ๋ฒ์งธ ๊ณ์ธต์ธ ๋คํธ์ํฌ ๊ณ์ธต์์ ์๋ํ๋ค. GWLB๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฉํ๋ฒฝ, ์นจ์ ํ์ง ๋ฐ ๋ฐฉ์ง ์์คํ , ์ฌ์ธต ํจํท ๊ฒ์ฌ ์์คํ ๊ณผ ๊ฐ์ ๊ฐ์ ์ดํ๋ผ์ด์ธ์ค๋ฅผ ๋ฐฐํฌ, ํ์ฅ ๋ฐ ๊ด๋ฆฌํ ์ ์๋ค. ์ฆ, ํธ๋ํฝ์ EC2์ ๋๋ฌํ๊ธฐ์ ์ ๋จผ์ ํธ๋ํฝ์ ๊ฒ์ฌํ๊ฑฐ๋ ๋ถ์ํ๊ฑฐ๋ ์ธ์ฆํ๊ฑฐ๋ ๋ก๊น ํ๋ ์์ ์ ๋จผ์ ์ํํ ์ ์๊ฒ ํ๋ ์๋น์ค์ด๋ค.
์์์ ๋ฐฐ์ด ์ผ๋ฐ์ ์ธ ๋ก๋๋ฐธ๋ฐ์ค ์ญํ ๊ณผ๋ ๋ค๋ฅด๋, ๊ทธ๋ฅ ํธ๋ํฝ์ ์ฒดํฌํ๋ ๋ ์์ด๋ผ๊ณ ์ดํดํ๊ณ ๋์ด๊ฐ๋ ๋๋ค.

ELB ์๋น์ค ์๊ธ ์ ์ฑ
๊ฐ ELB ์๋น์ค ์ข ๋ฅ์ ์๊ธ ์ ์ฑ ์ ๋ค์๊ณผ ๊ฐ๋ค
์ ํ | ์ ์ฑ |
CLB | ์คํ๋ ๊ฐ ์๊ฐ ๋๋ ํ ์๊ฐ ๋ฏธ๋ง, ๊ทธ๋ฆฌ๊ณ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ํตํด ์ ์ก๋ ๊ฐ GB ๋จ์ ๋ฐ์ดํฐ์ ๋ํด ๋น์ฉ์ด ์ฒญ๊ตฌ |
NLB | ์คํ๋ ์๊ฐ ๋๋ ๋ถ๋ถ ์๊ฐ ๊ทธ๋ฆฌ๊ณ ์๊ฐ๋น Network Load Balancer์์ ์ฌ์ฉ๋ ๋ก๋ ๋ฐธ๋ฐ์ ์ฉ๋ ๋จ์(LCU)์ ๋ํด ์๊ธ์ด ๋ถ๊ณผ |
ALB | ์คํ๋ ์๊ฐ ๋๋ ๋ถ๋ถ ์๊ฐ ๊ทธ๋ฆฌ๊ณ ์๊ฐ๋น ์ฌ์ฉ๋ ๋ก๋ ๋ฐธ๋ฐ์ ์ฉ๋ ๋จ์(LCU)์ ๋ํด ์๊ธ์ด ๋ถ๊ณผ |
๋คํธ์ํฌ ํธ๋ํฝ ๋ถ์ฐโElastic Load Balancing ์๊ธ โAmazon Web Services
๋ช ์๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ์๊ธ์๋ VAT ๋ฐ ํด๋น ํ๋งค์ธ๋ฅผ ๋น๋กฏํ ๊ด๋ จ ์กฐ์ธ ๊ณต๊ณผ๊ฐ ํฌํจ๋์ง ์์ต๋๋ค. ์ฒญ๊ตฌ์ง ์ฃผ์๊ฐ ์ผ๋ณธ์ผ๋ก ๋์ด ์๋ ๊ณ ๊ฐ์ ๊ฒฝ์ฐ AWS ์ฌ์ฉ ์ ์ผ๋ณธ ์๋น์ธ์ ์ ์ฉ์ ๋ฐ๊ฒ ๋ฉ
aws.amazon.com
ALB(Application Load Balancer) ์์ฑํ๊ธฐ
์ด ๊ฐ์๋ ์ ๊ฐ์์ธ ์คํ ์ค์ผ์ผ๋ง ํฌ์คํ ์์ ์ค์ ๊ตฌ์ถํ AWS ์์ ํ ํ๋ฆฟ ์ธํ ์ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋ค. ๋ฐ๋ผ์, ๋ง์ผ ์์ ํ ํ๋ฆฟ์ด ๋ฐ๋ก ์ธํ ์ด ์๋์ด์๋ค๋ฉด ๋ฏธ๋ฆฌ ๊ตฌ์ถํ๊ณ ์ค๊ธฐ๋ฅผ ๊ถํ๋ค.
[AWS] ๐ Auto Scaling ๊ฐ๋ ์๋ฆฌ & ์ฌ์ฉ ์ธํ ๐ฏ ์ ๋ฆฌ
์คํ ์ค์ผ์ผ๋ง (Auto Scaling) ํด๋ผ์ฐ๋ ์ปดํจํ ์ ๋ํ์ ์ธ ์ฅ์ ์ผ๋ก๋ ํ์์ ๋ฐ๋ผ ์๋น์ค๋ฅผ ๋น ๋ฅด๊ฒ ํ์ฅํ๊ฑฐ๋ ์ถ์ํ ์ ์๋ ์ ์ฐ์ฑ์ ๋ค ์ ์๋ค. ๊ทธ์ค, ์คํ ์ค์ผ์ผ๋ง(Auto Scaling)์ ํด๋ผ์ฐ๋์
inpa.tistory.com
1. ๋์ ๊ทธ๋ฃน ์์ฑ






๋์ ๊ทธ๋ฃน์ ๋ฑ๋กํ ์ธ์คํด์ค ์์
๋ง์ผ ๋์ ๊ทธ๋ฃน์ ์ธ์คํด์ค ๋ฉค๋ฒ๋ค์ ์์ ํ๊ณ ์ถ๋ค๋ฉด, ๋ค์ ๋์ ๋ฑ๋ก์ ํด์ฃผ๋ฉด ๋๋ค.

2. ๋ก๋ ๋ฐธ๋ฐ์ ์์ฑ
๋ก๋๋ฐธ๋ฐ์ฑ์ ๋ฆฌ์ค๋ ์ญํ ์ด ์ด๋ป๊ฒ ์ ๊ฐ๋๋์ง ์ดํดํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ๋ก๋ ๋ฐธ๋ฐ์์๋ 81๋ฒ ํฌํธ๋ฅผ, ์ธ์คํด์ค์๋ 80๋ฒ ํฌํธ๋ฅผ ์ฃผ์ด ๊ตฌ์ฑํด๋ณผ ๊ฒ์ด๋ค. ์ฆ, ์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์น์๋ฒ์ ์ ์ํ ๋ HTTP(80๋ฒ ํฌํธ)๋ฅผ ์ด์ฉํ๊ฒ ๋์ง๋ง, ๋ก๋๋ฐธ๋ฐ์๋ก 81๋ฒํฌํธ๋ก ์ ์ํด์ ๋ค์ ๋ก๋๋ฐธ๋ฐ์๊ฐ 80๋ฒํฌํธ๋ก ๋์ ๊ทธ๋ฃน EC2 ์ธ์คํด์ค๋ค์๊ฒ ๋ถ๋ฐฐํ๋ ๊ณผ์ ์ ์ง์ ๊ตฌํํด๋ณด๋ ์๊ฐ์ ๊ฐ์ง๋ ๊ฒ์ด๋ค.



๊ธฐ๋ณธ ๊ตฌ์ฑ

ํญ๋ชฉ | ์ค๋ช |
name | Load Balancer ์ด๋ฆ |
scheme(์ ๋) | - internet-facing(์ธํฐ๋ท ์ฐ๊ฒฐ) : ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋๋ ๋ก๋๋ฐธ๋ฐ์ - internal(๋ด๋ถ์) : ์ธํฐ๋ท์ ์ฐ๊ฒฐ ์๋๋ ๋ก๋๋ฐธ๋ฐ์ |
ip address type(IP์ฃผ์ ์ ํ) | lb์ ip ์ฃผ์ ํ์ |
ELB๋ ํฌ๊ฒ ์ธ๋ถ ์ธํฐ๋ท์์ ์ ์์ด ๊ฐ๋ฅํ, ๊ณต์ธ IP์ ์ฌ์ค IP ๋ชจ๋๋ฅผ ๊ฐ๋ ์ธํฐ๋ท(Internet) ๋ก๋๋ฐธ๋ฐ์์ ๋ด๋ถ์์์ ์ ๊ทผ๋ง์ ํ์ฉํ๋ฉฐ ์ฌ์ค IP๋ฅผ ๊ฐ๋ ๋ด๋ถ(Internal) ๋ก๋๋ฐธ๋ฐ์๋ก ๊ตฌ๋ถ๋๋ค. ๋ณดํต ์น์๋น์ค๋ฅผ ๊ตฌ์ฑํ ๋ ์ธ๋ถ ์ฌ์ฉ์๋ค์ ์ ๊ทผ์ ์ํ ์น ์๋ฒ๋ฅผ Internet LB์ ๋ถํ ๋ถ์ฐ ๋์์ผ๋ก ์ผ๊ณ , ๋ด๋ถ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ฅผ Internal LB์ ๋ถํ๋ถ์ฐ์ ๋์์ผ๋ก ์ผ์ ๊ตฌ์ฑํ๋ ํธ์ด๋ค. ์ด๋ฌํ 2๊ฐ์ ELB๋ฅผ ์กฐํฉํ๋ฉด, 3๊ณ์ธต ์์คํ (์น์๋ฒ, APP์๋ฒ, DB์๋ฒ)์ฒ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๊ณ์ธต์ผ๋ก ์์ฒญ์ ๋ถ์ฐํ๋ ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ฑํ ์ ์๊ฒ ๋๋ค.

๋คํธ์ํฌ ๋งคํ

๋ณด์ ๊ทธ๋ฃน ์ค์
์ ๋ณด์๊ทธ๋ฃน ์์ฑ์ ํด์ ๋ก๋๋ฐธ๋ฐ์์ ์ธ๋ฐ์ด๋ ๊ท์น์ 81๋ฒ ํฌํธ๋ง ํ์ฉ์ผ๋ก ์ค์ ํ๊ณ ์ ์ฉํด์ค๋ค. (81๋ฒ ํฌํธ๋ฅผ ํตํด ๋ก๋๋ฐธ๋ฐ์์ ์ ์ํ ์์ ์ด๋๊น)



๋ฆฌ์ค๋ & ๋ผ์ฐํ ์ค์
๋ฆฌ์ค๋ ๋ฐ ๋ผ์ฐํ ํญ๋ชฉ์์๋ ๋ก๋ ๋ฐธ๋ฐ์์ ํฌํธ๋ฅผ 81๋ฒ์ผ๋ก ๋์๋ณด์. ๊ทธ๋ฆฌ๊ณ ์์์ ์์ฑํ ๋์ ๊ทธ๋ฃน์ ๋ฑ๋กํด์ค๋ค. ์์ผ๋ก ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ์์ ์น์ฌ์ดํธ์ ์ ์ํ ๋ ์ธ์คํด์ค์ DNS๊ฐ ์๋ ๋ก๋ ๋ฐธ๋ฐ์์ DNS๋ก ์ ์ํ ํ ๋ฐ, ๋ก๋๋ฐธ๋ฐ์ ๋๋ฉ์ธ:81 ๋ฒ ํฌํธ๋ก ์ ์ํ๋ฉด ์ธ์คํด์ค(ํ๊ฒ๊ทธ๋ฃน)์ HTTP(80)๋ฒ ํฌํธ๋ก ๋ณด๋ด์ฃผ๊ฒ ๋ค๋ ์ค์ ์ด๋ค.

ALB ํ์ฑํ๊ธฐ
์ค์ ์ ๋ง์ณค์ผ๋ฉด ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์์ฑํด์ค๋ค.


3. ALB ์๋ ํ ์คํธ
์ด์ ์์ DNS url์ ์ค์ ํ๋ ํฌํธ 81์ ๋ถ์ฌ์ ๋ธ๋ผ์ฐ์ ์ ๋์๋ณด๋ฉด, ๋์ ๊ทธ๋ฃน์์ ์ค์ ํ ์ธ์คํด์ค ๋๊ฐ๊ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํตํด ๋๋ค ์ ๊ทผ ๋์ด์ง์ ๋ณผ์ ์๋ค. (์๋ก๊ณ ์นจ์ ์ฌ๋ฌ๋ฒ ํด๋ณด์).
HTTP ํ๋กํ ์ฝ ํฌํธ๋ 80๋ฒ์ด๋ค. ์๋๋ผ๋ฉด ์ธ์คํด์ค DNS์ 80๋ฒ ํฌํธ๋ฅผ ๋ถ์ฌ์ผ ์ธ์คํด์ค์ ์น์๋ฒ๋ก ์ ๊ทผ์ด ๋ ํ ์ง๋ง, ๋ก๋๋ฒจ๋ฐ์(81๋ฒ ํฌํธ)๋ก ์ ๊ทผ์ ํ๋ฉด, ์์์ ์ค์ ํ๋ ๋์๊ทธ๋ฃน ์ธํ (HTTP/ :80)์ ๋ฐ๋ผ ์์์ ์ธ์คํด์ค ํฌํธ 80๋ฒ์ผ๋ก ๊ฐ ์นํ์ด์ง๊ฐ ๋จ๊ฒ ๋๋ ๊ฒ์ด๋ค. ์ฆ, DNS๋ก ๋ก๋ ๋ฐธ๋ฐ์์ ์ ๊ทผํ๋ฉด, ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ๋์๊ทธ๋ฃน์ผ๋ก ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์ธํฐ๋ท์์ ์ค๋ ํธ๋ํฝ์ ๋ถ์ฐํ๊ณ ์๋ ๊ฒ์ ์์ ์๋ค.


NLB(Network Load Balancer) ์์ฑํ๊ธฐ
NLB ๋ง๋๋ ๋ฐฉ๋ฒ ์ญ์ ALB์ ๋ณ ์ฐจ์ด ์๋ค. UI๋ ๊ฐ์์ ๊ทธ๋ฅ ์์๊ฐ์ด ๋ง๋ค๋ฉด ๋๋ค. ๋จ, NLB๋ Layer4 ๊ณ์ธต์์ ๋์ํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ๋์ ๊ทธ๋ฃน์์ ๊ท์ฝ์ TCP/UDP๋ก ์ค์ ํด์ค์ผ NLB์ ๋์ ๊ทธ๋ฃน์ ๋ฑ๋กํ ์ ์๋ค.
1. NLB์ฉ ๋์ ๊ทธ๋ฃน ์์ฑ



2. ๋ก๋๋ฐธ๋ฐ์(NLB) ์์ฑ




NLB๋ ALB๊ณผ๋ ๋ฌ๋ฆฌ ๋ณด์ ๊ทธ๋ฃน ์ธํ ์ด ์๋ค.
ALB ์ง๋ฅ์ ๋ผ์ฐํ (L7 Header)
์ฌ๊ธฐ๊น์ง ๋ณด๋ฉด ALB์ NLB์ ์ฐจ์ด๊ฐ ์์ด ๋ณด์ผ์ ์๋ค. ๋ฌผ๋ก ALB๋ HTTP/HTTPS๋ฅผ ์ง์ํ๊ณ NLB๋ TCP/UDP๊น์ง๋ง ์ง์ํ๋ค๋ ์ฐจ์ด๊ฐ ์์ง๋ง, ์ด๋ ๋ด๋ถ์ ์ธ ์ฐจ์ด์ด์ง ์ธ๋ถ ์ฌ์ฉ์ ์ ์ฅ์์ ๋๋ค ๋๊ฐ์ด ๋ก๋๋ฐธ๋ฐ์ฑ ํ๋ค๋ ์ ์ด์ธ์ ๋ณ ์ฐจ์ด์ ์ด ์์ด ๋ณด์ด๋๊ฒ ์ฌ์ค์ด๋ค.
์ฌ์ค NLB๋ ALB๋ณด๋ค 4๊ณ์ธต๊น์ง๋ง IP ํจํท์ ์์ฑํ๊ธฐ๋๋ฌธ์ ํจ์ฌ ๋น ๋ฅด๋ค. ๋ฐ๋ผ์ ๋จ์ํ ๋ถํ๋ฅผ ๋ถ์ฐ์ด ํ์ํ๋ฉด NLB๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด ์ ์ ํ๋ค๊ณ ๋ณผ ์ ์๋ค. ํ์ง๋ง ALB๋ง์ ๋ฌด๊ธฐ๊ฐ ์๋๋ฐ ๋ฐ๋ก 7๊ณ์ธต์ ํค๋๋ฅผ ํ์ ํ ์ ์๋ค๋ ์ ์ด๋ค.
์์์ ์ธ๊ธํ๋ฏ์ด ํฌํธ๋ ๊ฒฝ๋ก์ ๋ฐ๋ผ ๊ฐ ๋์๊ทธ๋ฃน์ผ๋ก ๋ณด๋ด ํจ์ฌ ํจ์จ์ ์ผ๋ก ๋ถํ๋ถ์ฐ์ ํ ์์์ผ๋ฉฐ ์ํคํ ์ณ ๋น์ฉ์ญ์ ์๋์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ค์ ์ ๋ฆฌ์ค๋ ํญ์์ ๊ท์น(Rule)์ ํตํด ์ค์ ํ ์ ์๋ค. (์ฐธ๊ณ ๋ก NLB๋ ๊ท์น ์ค์ ์ด ์๋ค.)




ELB + Auto Scaling ์กฐํฉ ๊ตฌ์ถํ๊ธฐ
์์ ๋งํ๋ฏ์ด ELB์ ์คํ ์ค์ผ์ผ๋ง์ ์กฐํฉ์ EC2์ ๊ฝ์ด๋ผ๊ณ ํ ์ ์์ ์ ๋๋ก ๊ฐ๋ ฅํ ์ธํ๋ผ ์ธํ ์ด๋ค. ์๋ ๊ตฌ์ฑ๋๋ฅผ ๋ณด๋ฉด, AWS Cloud ์์ VPC๊ฐ ์๊ณ ๋ค์ํ ๊ฐ์ฉ์์ญ ์์ ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์ ํตํด์ EC2๋ฅผ ๋ถ์ฐํด๋์ ๊ฑธ ๋ณผ ์ ์๋ค. ์ด๋ ๊ฒ ๊ตฌ์ฑํด๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณ ๊ฐ์ฉ์ฑ๊ณผ ์ฅ์ ๋ด๊ตฌ์ฑ ํ๋ณด์ ์ข๋ค.

์ง๋ ์๊ฐ๊ณผ ์ด๋ฒ ์๊ฐ์ ๊ฐ๊ฐ ์คํ ์ค์ผ์ผ๋ง๊ณผ ELB๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ์ถ์ ํด๋ณด์์ผ๋ ์ด ๋์ ์กฐํฉํด๋ณด์.
์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน ์ค์
ELB์ ์คํ ์ค์ผ์ผ๋ง์ ์กฐํฉํ๊ธฐ ์ํด์ , ๋ก๋ ๋ฐธ๋ฐ์ฑ ์ธํ ์ ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์์ ์ค์ ํด์ผ ํ๋ค.



๊ทธ๋ฌ๋ฉด ์ด์ ๋ถํฐ ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์คํ ์ค์ผ์ผ๋ง์ ํตํด ์ฆ์ค๋ ์ธ์คํด์ค๋ค์ ์๋์ผ๋ก ๋ก๋๋ฐธ๋ฐ์์ ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ๋ก๋๋ฐธ๋ฐ์์ DNS๋ก ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ์ ์ ์ํ๊ฒ ๋๋ฉด, ๋์๊ทธ๋ฃน์ด์ ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์ ์ธ์คํด์ค๋ก ๊ฐ๊ฒ๋๋ฉฐ, ๋ง์ผ ํธ๋ํฝ์ด ๋ ๋ชฐ๋ฆฌ๊ฒ ๋๋ฉด ์ค์ผ์ผ ์์๋์ด ์ธ์คํด์ค ๊ฐฏ์๊ฐ ๋์ด๋๊ณ ๋์ด๋ ์ธ์คํด์ค ๊ฐฏ์๋งํผ ๋ก๋๋ฐธ๋ฐ์ฑ์ ํ์ฌ ์๋น์ค๋ฅผ ์ ์งํ๋ ์๋ฆฌ๋ผ๊ณ ๋ณผ ์ ์๋ค.

ELB + ์คํ ์ค์ผ์ผ๋ง ์กฐํฉ ํ ์คํธ
ELB์ Auto Scaling ์ด ์ ๋์ํ๋์ง ํ์ธ์ ์ํด ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์ ์ฉ๋์ 3๊ฐ๋ก ๋๋ ค๋ณด์.

์ธ์คํด์ค๊ฐ 3๊ฐ๋ก ์ค์ผ์ผ ์์์ด ๋๋ฉฐ, ๋์๊ทธ๋ฃน์๋ ์ถ๊ฐ๋ ์ธ์คํด์ค๊ฐ ํฌํจ๋จ์ ํ์ธ ํ ์ ์๋ค.


ELB์ ์คํ ์ค์ผ์ผ๋ง Health Check ์ฐจ์ด
์์ ๋ฐฐ์ ๋ฏ์ด ํฌ์ค ์ฒดํธ(Halth Check)๋ ๊ทธ๋ฃน์ ์๋ ์ธ์คํด์ค๊ฐ ๋น์ ์์ ์ธ ์ํ์ ์๋์ง ์ฒดํฌํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ELB + ์คํ ์ค์ผ์ผ๋ง ์กฐํฉ ์ธํ๋ผ์์ ๋ค์๊ณผ ๊ฐ์, ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์์๋ ์ ์์ ์ธ๋ฐ ELB ์ ์ฅ์์ ๋น์ ์์ธ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค. ์๋ฅผ๋ค์ด EC2 ์ธ์คํด์ค๋ ์ ์คํ๋๊ณ ์๋๋ฐ ์ธ์คํด์ค์ ์น์๋ฒ๊ฐ ์ฃฝ์ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?

$ sudo -s # root๊ถํ ํ๋
$ service httpd stop # ์ํ์น ์น์๋ฒ ๊ฐ๋ ์ค์ง

๋ก๋๋ฐธ๋ฐ์ DNS์ผ๋ก ์ ์ํด๋ณด๋ฉด ํ๋์ ์ธ์คํด์ค๊ฐ ์ด๋ ๊ฒ 502 ์๋ฌ๋ฅผ ๋ด๊ฒ ๋๋ค. (๋น์ฐํ ์น์๋ฒ๋ฅผ ์ค์งํ์ผ๋๊น)

์๋ํ๋ฉด ELB ์ ์ฅ์์๋ ํฌ์ค ์ฒดํฌ๋ฅผ ํตํด ์ธ์คํด์ค๋ก ํธ๋ํฝ์ ๋ณด๋ด์ HTTP์ฐ๊ฒฐ์ด ์๋๋์ง ์๋๋์ง ํ์ธํ๊ฒ๋๋๋ฐ ์น์๋ฒ๊ฐ ์ฃฝ๊ฒ๋๋ฉด ์ํ ํ์ธ์ด ์๋์ ์ด ์ธ์คํด์ค๋ ๊ฑด๊ฐํ์ง ์๋ ๊ฒ์ผ๋ก ํ๋จํด ๋ฐฐ์ ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฌ๋ ์คํ ์ค์ผ์ผ๋ง ์ ์ฅ์์๋ ์ธ์คํด์ค์ ์น์๋ฒ๊ฐ ์ฃฝ๋ ๋ง๋ ์ธ์คํด์ค(์ปดํจํ )๋ง ์ ๋์๊ฐ๋ฉด ์ ์์ด๊ธฐ ๋๋ฌธ์ ์ ์์ผ๋ก ํ๋จํ๊ฒ ๋๋ค.
Health Check ํต์ผํ๊ธฐ
์ด์ฒ๋ผ ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน๊ณผ ๋ก๋๋ฐธ๋ฐ์ ๋์๊ทธ๋ฃน์์ ๊ฐ๊ฐ ์ํ ํ์ธํ๋ ๊ธฐ์ค์ด ๋ค๋ฅด๊ฒ ๋ ์ ์๋ค. ์คํ ์ค์ผ์ผ๋ง๊ณผ ๋ก๋๋ฐธ๋ฐ์ฑ์ ๋์ด ์ ๊ธฐ์ ์ผ๋ก ์ ๋์๊ฐ์ผ ๋๊ธฐ ๋๋ฌธ์ ์ด ๋์ ํฌ์ค ์ฒดํฌ๋ฅผ ์ผ์นํ ์์ผ์ค ํ์๊ฐ ์๋ค.
์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์ ๊ฐ์ ์ํ ํ์ธ ํธ์ง์ ๋๋ฅธ๋ค.

์ฌ๊ธฐ์ ELB๋ฅผ ์ฒดํฌํ๊ฒ ๋๋ฉด, ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์์ EC2 ์ํ ํ์ธ ๋ฟ๋ง ์๋๋ผ ELB๋ก๋ถํฐ์ ์ํ ํ์ธ๋ ์ฒดํฌํ๊ฒ ๋๋ค. ์ฆ, EC2๋ฅผ ์ฒดํฌํด๋ดค๋๋ฐ ๋ฌธ์ ๋ ์์ง๋ง, ELB ๋๊ฐ ์ฒดํฌํด์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋ฉด ๋ค๋ง ๋ฃ๊ณ ๋ค๋ง๋๋ก ํ ๊ป ๋ผ๋ ๋ป์ด๋ค.

์ผ์ ์๊ฐ์ด ์ง๋๊ฒ ๋๋ฉด (๊ฝค ๊ธฐ๋ค๋ ค์ผ ํ๋ค), ์คํ ์ค์ผ์ผ๋ง ์ธ์คํด์ค ๊ด๋ฆฌ ํญ์์ ๋ค์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ธ์คํด์ค ํ๋๊ฐ ์ฃฝ๊ฒ๋๊ณ (์ธ์คํด์ค ์์ฒด๋ ๋ฉ์ฉกํ๋ฐ ELB๊ฐ ์ด์ํ๋ค๊ณ ํ๋๊น ์ฃฝ์ธ๊ฒ์ด๋ค) ์๋ก ํ๋ ์์ฑ๋จ์ ํ์ธ ํ ์ ์๋ค. ์ฆ ์ด ํ์๋ ์๋์ผ๋ก ์ฅ์ ๋ฅผ ๋ณต๊ตฌํ ๊ณ ๊ฐ์ฉ์ฑ ์ด๋ผ๊ณ ๋งํ ์ ์๋ค.

Stickey Session ์ ์ฉํ๊ธฐ
๊ณ ์ ์ธ์ ์ ๋์๊ทธ๋ฃน์์ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.


์ด์ ๊ณ ์ ์น์ ์ด enable์ด ๋์ ์ฟ ํค๋ฅผ ์์ฑํด์ 10์ด๋์์ ๊ณ์ ๊ฐ์ ์ธ์คํด์ค์ ์ ์๋๊ฒ ๋๋ค.
ํ๋ฒ ๋ก๋๋ฐธ๋ฐ์ DNS๋ก ์๋ก๊ณ ์นจ์ ํด๋ณด์. ๊ณ์ ๊ฐ์ ์ธ์คํด์ค ID๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ด๊ณ , 10์ด๊ฐ ์ง๋๋ฉด ๋ค๋ฅธ ์ธ์คํด์ค ID๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ด๋ค.
๋์๊ทธ๋ฃน Health Check ์ค์ ํญ๋ชฉ
health check๋ target group์ ์ํ ์๋น์ค๊ฐ ์ด์๋์ง ์ฃฝ์๋์ง๋ฅผ ์ฒดํฌํ ๋ ์ฌ์ฉ๋๋ค.



ํญ๋ชฉ | ์ค๋ช |
protocol | health check์ ์ฌ์ฉ๋ ํ๋กํ ์ฝ (http) |
Path | health checkํ page |
port | traffic port ์ค์ |
Healthy threshold | ์๋น์ค ์ํ๋ฅผ ์ฑ๊ณต์ผ๋ก ๊ฐ์ฃผํ๋ ์ฐ์ health check์ ํ์ (2-10) |
Unhealthy threshold | ์๋น์ค ์ํ๋ฅผ ์คํจ๋ก ๊ฐ์ฃผํ๋ ์ฐ์ health check์ ํ์ (2-10) |
Timeout | ์๋ต์ด ์์ผ๋ฉด ์ํ ํ์ธ์ด ์คํจํ์์ ์๋ฏธํ๋ ์๊ฐ(์ด)(2-120์ด) |
interval | health check ๊ฐ๊ฒฉ (5-300) |
Success Code | health check์ฑ๊ณต ์ฝ๋ |
๋ก๋๋ฐธ๋ฐ์ ๋ฆฌ์ค๋ ์ค์
๋ก๋๋ฐธ๋ฐ์ ํญ์ Listenser๋ฅผ ํธ์งํด์ ์ฐ๊ฒฐ๋๋ ๋์๊ทธ๋ฃน(target group) ๋ณ๊ฒฝ ํ ์ ์๋ค.


ELB + EC2 ๋ณด์๊ทธ๋ฃน ์ค์
๋ณด์์ ์ํด EC2 ์ธ์คํด์ค ๋ณด์๊ทธ๋ฃน์์ ์ค๋ก์ง ELB์ ๋ณด์๊ทธ๋ฃน์ ํต๊ณผํ ํธ๋ํฝ๋ง ๋ฐ๊ฒ ํ๊ณ ์ถ๋ค. ๋ฐ๋ก ์์ดํผ๋ DNS๋ก EC2 ์ธ์คํด์ค์ ๋ฐ๋ก ์ ์ํ๊ฒ ํ์ง๋ง๊ณ ๋ฌด์กฐ๊ฑด ๋ก๋๋ฐธ๋ฐ์๋ฅผ ํตํด ์ ์ํ๋๋ก ์ค์ ํ๋ค๋ ๊ฐ๋ ์ด๋ค. ํ์ง๋ง, ALB๊ฐ์ ๊ฒฝ์ฐ ๋งค๋ฒ ์์ดํผ๊ฐ ๋ฐ๋์ด IP๋ฅผ EC2 ๋ณด์๊ทธ๋ฃน ๊ท์น ์ ๋ ฅ๋์ ๋ฑ๋ก ํ ์์๋ค.
์ด๋๋ ๋ณด์๊ทธ๋ฃน ์์ค ์ ๋ ฅ๋์ ๋ณด์๊ทธ๋ฃน ์์ฒด๋ฅผ ์ง์ ํด์ฃผ์ด์ ์ค์ ํด์ผ ํ๋ค. ๋ฐ๋ผ์ EC2 ๋ณด์๊ทธ๋ฃน ๊ท์น ํธ์ง์์ ์์ค ์ ๋ ฅ๋์ ELB์ ๋ณด์๊ทธ๋ฃน ID๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
๋ณด์๊ทธ๋ฃน ๊ท์น ํธ์ง์์ ์์ค ์ ๋ ฅ๋์๋ ์์ดํผ๋ง ์ ์ด์ค์ ์๋๊ฒ ์๋๋ค. ์๋ฅผ๋ค์ด A ๋ณด์๊ทธ๋ฃน๊ณผ B ๋ณด์๊ทธ๋ฃน์ด ์๋ค๋ฉด, A ๋ณด์๊ทธ๋ฃน ๊ท์น์ B ๋ณด์๊ทธ๋ฃน ID๋ฅผ ์ค์ ํ ์๊ฐ ์๋๋ฐ, ์ด ์๋ฏธ๋ B ๋ณด์๊ทธ๋ฃน์ ํต๊ณผํ ํธ๋ํฝ๋ง์ ๋ฐ๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค.

# ์ฐธ๊ณ ์๋ฃ
์ํ์ฝ๋ฉ Elastic Load Balancer (ELB)
AWS ๊ฐ์์ค ์ฝ๊ฒ ์ค๋ช ํ๋ AWS ๊ธฐ์ด ๊ฐ์ข
https://ko.wikipedia.org/wiki/%EB%B6%80%ED%95%98%EB%B6%84%EC%82%B0
https://www.cloud4u.com/blog/what-is-a-load-balancer-and-its-types/
https://www.kinx.net/service/cloud/compute/autoscaling/
https://medium.com/harrythegreat/aws-%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%8B%B1-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-9fd0955f859e
https://aws-hyoh.tistory.com/128
https://aws-hyoh.tistory.com/133
https://velog.io/@groovejumat/AWS-Elastic-Load-Balancer%EB%A5%BC-%ED%86%B5%ED%95%9C-%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%84%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
https://dev.classmethod.jp/articles/for-beginner-load-balancer-explanation/
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.