Classic Load Balancers (v1)


CLB ํ˜„์žฌ๋Š” ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋กœ 2022๋…„ 8์›” 15์ผ์— ์„œ๋น„์Šค ์ข…๋ฃŒ์˜ˆ์ •์ด๋‹ค.

image-20220608110656992

์ด ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” 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 ํ•  ๊ฒฝ์šฐ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ๋ ˆ๋ฒจ์—์„œ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์˜๋ฏธ)

image-20220608114730032

  • ๊ฒฝ๋กœ ๋ผ์šฐํŒ…๋„ ์ง€์›ํ•œ๋‹ค.
    • ๋Œ€์ƒ ๊ทธ๋ฃน(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 ๋ ˆ๋ฒจ์—์„œ ์ด๋ค„์ง„๋‹ค.



image-20220608115847870

Target Group (๋Œ€์ƒ ๊ทธ๋ฃน)

  • EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ ๋Œ€์ƒ ๊ทธ๋ฃน์ด ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์ดํ›„์— ๋‹ค๋ฃจ๊ฒŒ ๋  ASG (์˜คํ†  ์Šค์ผ€์ผ๋ง ๊ทธ๋ฃน)์— ์˜ํ•ด ๊ด€๋ฆฌ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ECS ์˜ ์ž‘์—…๋„ ๋  ์ˆ˜๊ฐ€ ์žˆ๋‹ค. (ECS ๋•Œ ๋‹ค๋ฃฐ ์˜ˆ์ •)
  • ๋žŒ๋‹ค ํ•จ์ˆ˜๋„ ๋  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ž˜ ์•Œ๋ ค์ง„ ๋‚ด์šฉ์ด ์•„๋‹ˆ๋‹ค.
    • ๋žŒ๋‹ค(Lambda) ํ•จ์ˆ˜ ์•ž์—๋„ ALB ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
  • IP Addresses (muse be private IPs)

ALB - Good to Know

ALB ์— ๋Œ€ํ•ด ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๋‚ด์šฉ

image-20220608120358896

  • ๊ณ ์ •๋œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด ๋ถ€์—ฌ๋œ๋‹ค. (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 ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

์‹ค์Šต

image-20220608121010020

  • internet-facing : ์ธํ„ฐ๋„ท ๊ฒฝ๊ณ„ ์ฒด๊ณ„ (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ณต๊ณต์œผ๋กœ ์•ก์„ธ์Šคํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ)
  • internal : ๊ฐœ์ธ ํŠธ๋ž˜ํ”ฝ์šฉ

image-20220608121329125

  • ๋„คํŠธ์›Œํฌ ๋งคํ•‘์—์„œ๋Š” ์‹คํ–‰ํ•  VPC ๋ฅผ ์ง€์ •
  • ์„œ๋ธŒ๋„ท ๊ฐœ์ˆ˜์™€ ์‹คํ–‰ํ•  AZ ๋„ ์ง€์ •
  • 4๊ฐœ์˜ ์„œ๋ธŒ๋„ท์„ ๋ชจ๋‘ ์„ ํƒ ap-northest-2a ~ ap-northest-2d
  • ์ž๋™์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ์„œ๋ธŒ๋„ท์— ํ• ๋‹น๋œ๋‹ค.

image-20220608121522281

  • ๋ณด์•ˆ๊ทธ๋ฃน๋„ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

  • ๋ฆฌ์Šค๋„ˆ์™€ ๋ผ์šฐํŒ…์„ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.

    • ํƒ€๊ฒŸ ๊ทธ๋ฃน์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. (์—†์œผ๋ฉด ์ƒ์„ฑ)
    • ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.
      • alb routing rule

ํƒœ๊ทธ: , , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ