Contents

8. AWS Fundamentals - Load Balancing, Auto Scaling Groups and EBS Volumes

AWS Certified SAA-C02 ์‹œํ—˜์ค€๋น„

Contents

ํ™•์žฅ์„ฑ(Scalability) ๋ฐ ๊ณ ๊ฐ€์šฉ์„ฑ(High Availability)

  • ํ™•์žฅ์„ฑ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜/์‹œ์Šคํ…œ์ด ๋” ํฐ ๋ถ€ํ•˜๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ ์šฉ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ
  • ํ™•์žฅ์„ฑ ์ข…๋ฅ˜
    • Vertical Scalability
    • Horizontal Scalability (= ํƒ„๋ ฅ์„ฑelasticity)
  • ํ™•์žฅ์„ฑ์€ ๊ณ  ๊ฐ€์šฉ์„ฑ(HA)๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€๋งŒ ์„œ๋กœ๋‹ค๋ฅด๋‹ค.

Vertical Scalability

  • ์ˆ˜์ง์  ํ™•์žฅ์€ ์ธ์Šคํ„ด์Šค ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€ ์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ
  • ์˜ˆ์‹œ) t2.micro -> t2.large๋กœ ํ™•์žฅ
  • ์ˆ˜์ง์  ํ™•์žฅ์„ฑ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์€ ๋น„๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ๋งค์šฐ ์ผ๋ฐ˜์ 
  • RDS, ElastiCache๋Š” ์ˆ˜์ง ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜์งํ™•์žฅ์—๋Š” ์ œํ•œ์ด ์žˆ์Œ(ํ•˜๋“œ์›จ์–ด ์ œํ•œ)

Horizontal Scalability

  • ์ˆ˜ํ‰์  ํ™•์žฅ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ธ์Šคํ„ด์Šค ํ˜น์€ ์‹œ์Šคํ…œ ์ˆ˜ ์ฆ๊ฐ€
  • ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ์˜๋ฏธ
  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜/ํ˜„๋Œ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋งค์šฐ ์ผ๋ฐ˜์ 
  • Amazon EC2์™€ ๊ฐ™์€ ํด๋ผ์šฐ๋“œ ์ œํ’ˆ ๋•๋ถ„์— ์ˆ˜ํ‰ํ™•์žฅ ์šฉ์ด

High Availability

  • ๊ณ ๊ฐ€์šฉ์„ฑ(HA)์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜ํ‰ ํ™•์žฅ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต
  • ์ตœ์†Œ ๋‘ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ(=AZ)์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์‹œ์Šคํ…œ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ
  • ๊ณ ๊ฐ€์šฉ์„ฑ์˜ ๋ชฉํ‘œ๋Š” ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์†์‹ค์—์„œ ์‚ด์•„ ๋‚จ๋Š” ๊ฒƒ
  • ๊ณ ๊ฐ€์šฉ์„ฑ์€ ์ˆ˜๋™์ ์ผ ์ˆ˜ ์žˆ์Œ (RDS Multi AZ์˜ ๊ฒฝ์šฐ)
  • ๊ณ ๊ฐ€์šฉ์„ฑ์€ ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Œ (์ˆ˜ํ‰์  ํ™•์žฅ์„ ์œ„ํ•ด)

EC2๋ฅผ ์œ„ํ•œ ๊ณ ๊ฐ€์šฉ์„ฑ ๋ฐ ํ™•์žฅ์„ฑ

  • Vertical Scaling : ์ธ์Šคํ„ด์Šค ์‚ฌ์ด์ฆˆ๋ฅผ ๋Š˜๋ฆฐ๋‹ค.(=scale up/down)
  • Horizontal Scaling : ์ธ์Šคํ„ด์Šค ๊ฐฏ์ˆ˜๋ฅผ ๋Š˜๋ฆฐ๋‹ค. (=scale out/in)
  • High Availability : ์—ฌ๋Ÿฌ AZ์—์„œ ๋™์ผํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰
    • Auto Scaling Group multi AZ
    • Load Balancer multi AZ

Load balancing

๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์€ ํŠธ๋ž˜ํ”ฝ์„ ์—ฌ๋Ÿฌ ์„œ๋ฒ„(e.g., EC2 ์ธ์Šคํ„ด์Šค) ๋‹ค์šด์ŠคํŠธ๋ฆผ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์˜๋ฏธ

Load balancer๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • ์—ฌ๋Ÿฌ ๋‹ค์šด์ŠคํŠธ๋ฆผ์„ ์ธ์Šคํ„ด์Šค์— ๋กœ๋“œ ๋ถ„์‚ฐ
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋‹จ์ผ ์•ก์„ธ์Šค ์ง€์ (DNS) ๋…ธ์ถœ
  • ๋‹ค์šด์ŠคํŠธ๋ฆผ ์ธ์Šคํ„ด์Šค์˜ ์žฅ์• ๋ฅผ ์›ํ• ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ
  • ์ธ์Šคํ„ด์Šค์˜ ์ •๊ธฐ์ ์ธ ์ƒํƒœ ๊ฒ€์‚ฌ ์ˆ˜ํ–‰
  • ์›น ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ SSL termination (HTTPS) ์ œ๊ณต
  • Enforce stickiness with cookies
  • ์˜์—ญ๊ฐ„ ๊ณ ๊ฐ€์šฉ์„ฑ
  • ๊ณต์šฉ ํŠธ๋ž˜ํ”ฝ๊ณผ ์‚ฌ์„ค ํŠธ๋ž˜ํ”ฝ ๋ถ„๋ฆฌ

Elastic Load Balancer๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • Elastic Load Balancer๋Š” AWS์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ
    • AWS์— ์˜ํ•ด ๋™์ž‘์ด ๋ณด์žฅ๋œ๋‹ค.
    • AWS๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ, ์œ ์ง€๋ณด์ˆ˜, ๊ณ ๊ฐ€์šฉ์„ฑ ๊ด€๋ฆฌ
    • AWS๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ตฌ์„ฑ ๋…ธ๋ธŒ๋งŒ ์ œ๊ณต
  • ์ž์ฒด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ๋น„์šฉ์ด ๋œ ๋“ค์ง€๋งŒ ํ›จ์”ฌ ๋” ๋งŽ์€ ์ˆ˜๊ณ ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • AWS์˜ ๋งŽ์€ ์ œํ’ˆ/์„œ๋น„์Šค์™€ ํ†ตํ•ฉ ๊ฐ€๋Šฅ
    • EC2, EC2 Auto Scaling Groups, Amazon ECS
    • AWS Certificate Manager(ACM), CloudWatch
    • Route 53, AWS WAF, AWS Global Accelerator

Health Checks

  • ์ƒํƒœ์ฒดํฌ(Health Checks)๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์žฅ์น˜์—์„œ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.
  • ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•˜๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ์š”์ฒญ์— ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  • ์ƒํƒœ ์ ๊ฒ€์€ ํฌํŠธ ๋ฐ route์—์„œ ์ˆ˜ํ–‰ํ•œ๋‹ค. (/health ๋Š” ๊ณตํ†ต์ž„)
  • 200 ์‘๋‹ต์ด ์•„๋‹Œ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šค๋Š” ์ƒํƒœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ๋ชปํ•˜๋‹ค.

AWS ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ์ข…๋ฅ˜

  • AWS๋Š” 4๊ฐ€์ง€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค.
Load balancer ์ข…๋ฅ˜
Classic Load Balancer CLB v1(2009) HTTP, HTTPS, TCP, SSL(Secure TCP)
Application Load Balancer ALB v2(2016) HTTP, HTTPS, WebSocket
Network Load BalancerNLB v2(2017) TCP, TLS(secure TCP), UDP
Gateway Load BalancerGWLB(2020) Operates at layer3 (Network layer) - IP Protocol
  • ์ „๋ฐ˜์ ์œผ๋กœ ์ƒˆ๋กœ์šด ์„ธ๋Œ€์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • ์ผ๋ถ€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ๋‚ด๋ถ€(private), ์™ธ๋ถ€(public) ELB๋กœ ์„ค์ •๊ฐ€๋Šฅ

Classic Load Balancers (v1)

  • TCP(Layer 4), HTTP & HTTPS(Layer 7) ์ง€์›
  • ์ƒํƒœ ๊ฒ€์‚ฌ๋Š” TCP ๋˜๋Š” HTTP ๊ธฐ๋ฐ˜
  • ๊ณ ์ • hostname : http://xxx.region.elb.amazonaws.com/

Application Load Balancer (v2)

  • Layer 7 (HTTP)
  • ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ(target groups)์—์„œ ์—ฌ๋Ÿฌ HTTP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
  • ๋™์ผํ•œ ์‹œ์Šคํ…œ์˜ ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ(example: containers)
  • HTTP/2 ๋ฐ ์›น ์†Œ์ผ“ ์ง€์›
  • redirects ์ง€์› (์˜ˆ: HTTP -> HTTPS)
๋‹ค๋ฅธ ๋Œ€์ƒ ๊ทธ๋ฃน์œผ๋กœ ๋ผ์šฐํŒ…
  • URL ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…
    • example.com/users
    • example.com/post
  • URL hostname ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…
    • one.example.com
    • other.example.com
  • Query string, ํ—ค๋” ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…
    • example.com/users?id=123&order=false
  • ALB๋Š” ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์™€ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋งค์šฐ ์ ํ•ฉ (example : Docker & Amazon ECS)
  • ECS์˜ ๋™์  ํฌํŠธ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ํฌํŠธ ๋งคํ•‘ ๊ธฐ๋Šฅ ์žˆ์Œ
  • ๊ทธ์— ๋น„ํ•ด, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹น ์—ฌ๋Ÿฌ Classic Load Balancer ๊ฐ€ ํ•„์š”
ALB Target Group(๋Œ€์ƒ ๊ทธ๋ฃน)
  • EC2 ์ธ์Šคํ„ด์Šค(Auto Scaling Group์— ์˜ํ•ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”) - HTTP
  • ECS(ECS ์ž์ฒด ๊ด€๋ฆฌ) Task - HTTP
  • ๋žŒ๋‹ค ํ•จ์ˆ˜: HTTP ์š”์ฒญ์ด JSON ์ด๋ฒคํŠธ๋กœ ๋ณ€ํ™˜
  • IP ์ฃผ์†Œ: ๋ฐ˜๋“œ์‹œ ์‚ฌ์„ค IP ์š”์ฒญ
  • ALB๋Š” ์—ฌ๋Ÿฌ ๋Œ€์ƒ ๊ทธ๋ฃน์œผ๋กœ ๋ผ์šฐํŒ… ํ•  ์ˆ˜ ์žˆ์Œ
  • ๋Œ€์ƒ ๊ทธ๋ฃน ์ˆ˜์ค€์—์„œ ์ƒํƒœ ์ฒดํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
ALB ์•Œ์•„์•ผํ•  ๋‚ด์šฉ
  • ๊ณ ์ • ํ˜ธ์ŠคํŠธ์ด๋ฆ„ : XXX.region.elb.amazonaws.com
  • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ IP๋ฅผ ์ง์ ‘ ํ™•์ธํ•˜์ง€ ์•Š์Œ
    • ํด๋ผ์ด์–ธํŠธ ์‹ค์ œ IP๊ฐ€ X-Forwarded-For ํ—ค๋”์— ์‚ฝ์ž…
    • ํฌํŠธ์™€ X-Forwarded-Port์™€ ํ”„๋กœํ†  X-Forwarded-Proto๋„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ

Network Load Balancer (v2)

  • Network load balancer(Layer 4)๋ฅผ ํ†ตํ•ด:
    • TCP, UDP ํŠธ๋ž˜ํ”ฝ์„ ์ธ์Šคํ„ด์Šค๋กœ ์ „๋‹ฌ
    • ์ดˆ๋‹น ์ˆ˜๋ฐฑ๋งŒ ๊ฑด์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ
    • ์ง€์—ฐ ์‹œ๊ฐ„ ์ตœ๋Œ€ ~100ms(vs 400ms for ALB) ๋‹จ์ถ•
  • NLB๋Š” AZ๋‹น ํ•˜๋‚˜์˜ ์ •์  IP๋ฅผ ๊ฐ€์ง€๋ฉฐ Elastic IP ํ• ๋‹น์„ ์ง€์›(ํŠน์ • IP ํ™”์ดํŠธ ๋ฆฌ์ŠคํŠธ์— ๋„์›€์ด ๋จ.)
  • TCP ๋˜๋Š” UDP ํŠธ๋ž˜ํ”ฝ์˜ ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์‚ฌ์šฉ
  • AWS ํ”„๋ฆฌํ‹ฐ์–ด์—๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Œ
NLB Target Groups(๋Œ€์ƒ๊ทธ๋ฃน)
  • EC2 ์ธ์Šคํ„ด์Šค
  • IP ์ฃผ์†Œ : ๋ฐ˜๋“œ์‹œ ์‚ฌ์„ค๋ง IP
  • Application Load Balancer

Gateway Load Balancer

  • AWS์—์„œ ์จ๋“œํŒŒํ‹ฐ ๋„คํŠธ์›Œํฌ ๊ฐ€์ƒ ์–ดํ”Œ๋ผ์ด์–ธ์Šค ๊ตฌ์ถ•, ํ™•์žฅ ๋ฐ ๊ด€๋ฆฌ
  • ์˜ˆ์‹œ) ๋ฐฉํ™”๋ฒฝ, ์นจ์ž… ํƒ์ง€ ๋ฐ ์ฐจ๋‹จ ์‹œ์Šคํ…œ, ์‹ฌ์ธต ํŒจํ‚ท ๊ฒ€์‚ฌ ์‹œ์Šคํ…œ, ํŽ˜์ด๋กœ๋“œ ์กฐ์ž‘ ๋“ฑ
  • Layer 3 (๋„คํŠธ์›Œํฌ Layer)์—์„œ ์ž‘๋™ - IP Packets
  • ์•„๋ž˜ ๊ธฐ๋Šฅ๋“ค๊ณผ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    • Transparent Network Gateway: ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ ๋‹จ์ผ ์ž…๋ ฅ ์ˆ˜์‹ 
    • Load Balancer : ๊ฐ€์ƒ ์–ดํ”Œ๋ผ์ด์–ธ์Šค๋กœ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ
  • GENEVE protocol 6081 ํฌํŠธ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
Gateway Load Balancer - Target Groups
  • EC2 instances
  • IP Addresses : ๋ฐ˜๋“œ์‹œ private IP

Stick Sessions (Session Affinity)

  • ๋™์ผํ•œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•ญ์ƒ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ๋’ค์— ์žˆ๋Š” ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ๋˜๋„๋ก ๊ณ ์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„
  • CLB & ALB์—์„œ ๋™์ž‘ํ•œ๋‹ค.
  • ๊ณ ์ • cookie์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” ๋งŒ๋ฃŒ์ผ์ž๊ฐ€ ์žˆ์Œ
  • ์‚ฌ์šฉ ์‚ฌ๋ก€ : ์‚ฌ์šฉ์ž๊ฐ€ ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์žƒ์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ
  • stickiness๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•˜๋ฉด ๋ฐฑ์—”๋“œ EC2 ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ๋กœ๋“œ๊ฐ€ ๋ถˆ๊ท ํ˜•ํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.
Cookie Names description
Application-based Cookies Custom cookie
ย ย ยท ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์˜ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•˜๋Š” ๋ชจ๋“  ํŠน์„ฑ์„ ํฌํ•จ ๊ฐ€๋Šฅ
ย ย ยท ์ฟ ํ‚ค ์ด๋ฆ„์€ ๊ฐ ๋Œ€์ƒ ๊ทธ๋ฃนtarget group์— ๋Œ€ํ•ด ๊ฐœ๋ณ„์ ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•จ
ย ย ยท AWSALB, AWSALBAPP,AWSALBTG ๋“ฑ ELB ์˜ˆ์•ฝ์–ด๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ฒƒ

Application cookie
ย ย ยท ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์—์˜ํ•ด ์ƒ์„ฑย ย ยท ์ฟ ํ‚ค์˜ ์ด๋ฆ„์€ AWSALBAPP
Duration-based Cookies ยท ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์— ์˜ํ•ด ์ƒ์„ฑ๋˜๋Š” ์ฟ ๊ธฐ
ยท ALB์˜ ๊ฒฝ์šฐ AWSALB, CLB์˜ ๊ฒฝ์šฐ AWSCLB

Cross-Zone ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ

Cross-Zone ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์‚ฌ์šฉ

๊ฐ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ์ธ์Šคํ„ด์Šค๋Š” ๋ชจ๋“  AZ์— ๋“ฑ๋ก๋œ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์— ๊ณ ๋ฅด๊ฒŒ ๋ถ„์‚ฐ

Cross-Zone ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ

์š”์ฒญ์ด Elastic Load Balancer ๋…ธ๋“œ์˜ ์ธ์Šคํ„ด์Šค์— ๋ถ„์‚ฐ

Load balancer Cross-Zone Load Balancing
Application Load Balancer ยท ํ•ญ์ƒ ๋™์ž‘(๋น„ํ™œ์„ฑํ™” ๋ถˆ๊ฐ€๋Šฅ)
ยท AZ๊ฐ„ ์š”๊ธˆ ์—†์Œ
Network Load Balancer ยท ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ์•ˆํ•จ
ยท ํ™œ์„ฑํ™” ๋œ ๊ฒฝ์šฐ AZ๊ฐ„ ์š”๊ธˆ ์ง€๋ถˆ
Classic Load Balancer ยท ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ์•ˆํ•จ
ยท ํ™œ์„ฑํ™” ๋œ ๊ฒฝ์šฐ AZ๊ฐ„ ๋ฐ์ดํ„ฐ ์š”๊ธˆ ์—†์Œ

SSL/TLS

  • SSL ์ธ์ฆ์„œ๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์™€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†ก ์ค‘ ์•”ํ˜ธํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • SSL : ์•”ํ˜ธํ™” ํ•˜๋Š”๋ฐ์— Secure Socket Layer๋ฅผ ์‚ฌ์šฉ
  • TLS : ์ตœ์‹  ๋ฒ„์ „์ธ ์ „์†ก ๋ณด์•ˆ ๊ณ„์ธต์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ์š”์ฆ˜์—๋Š” TLS ์ธ์ฆ์„œ๊ฐ€ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ์—ฌ์ „ํžˆ SSL์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • ๊ณต์šฉ SSL ์ธ์ฆ์„œ๋Š” CA(Certificate Authorities)์— ์˜ํ•ด ๋ฐœ๊ธ‰๋œ๋‹ค.
  • SSL ์ธ์ฆ์„œ๋Š” ๋งŒ๋ฃŒ ๋‚ ์งœ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๊ฐฑ์‹ ํ•ด์•ผ ํ•œ๋‹ค.

Load Balancer - SSL Certificates

  • ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” X.509 ์ธ์ฆ์„œ (SSL/TLS ์„œ๋ฒ„ ์ธ์ฆ์„œ)๋ฅผ ์‚ฌ์šฉ
  • ACM(AWS Certificate Manager)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„œ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • ์ž์‹ ์˜ ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค์–ด ์—…๋กœ๋“œ๋„ ๊ฐ€๋Šฅ
    Http listener
    • ๊ธฐ๋ณธ ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.
    • ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒ์ ์œผ๋กœ ์ธ์ฆ ๋ชฉ๋ก์„ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
    • ํด๋ผ์ด์–ธํŠธ๋Š” SNI(Server Name Indication)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„๋‹ฌํ•˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค
    • ์ด์ „ ๋ฒ„์ „์˜ SSL/TLS(๋ ˆ๊ฑฐ์‹œ ํด๋ผ์ด์–ธํŠธ)๋ฅผ ์ง€์›ํ•˜๋Š” ์ •์ฑ… ์ง€์ • ๊ฐ€๋Šฅ

SSL - Server Name Indication (SNI)

  • SNI๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ SSL ์ธ์ฆ์„œ๋ฅผ ํ•˜๋‚˜์˜ ์›น ์„œ๋ฒ„์— ๋กœ๋“œํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ(์—ฌ๋Ÿฌ ์›น์‚ฌ์ดํŠธ๋ฅผ ์„œ๋น„์Šคํ•˜๊ธฐ ์œ„ํ•ด)

  • ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ดˆ๊ธฐ SSL ํ•ธ๋“œ์‰์ดํฌ ๋Œ€์ƒ ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ํ‘œ์‹œํ•ด์•ผํ•œ๋‹ค. -> ๊ทธ๋Ÿฌ๋ฉด ์„œ๋ฒ„๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์ธ์ฆ์„œ๋ฅผ ์ฐพ๊ฑฐ๋‚˜ ๊ธฐ๋ณธ ์ธ์ฆ์„œ๋ฅผ ๋ฐ˜ํ™˜

    Note
    • ์˜ค์ง ALB, NLB, CloudFront ์—์„œ๋งŒ ๋™์ž‘
    • CLB์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์Œ
Load balancer SSL ์ธ์ฆ์„œ
Classic Load Balancer ยท ํ•˜๋‚˜์˜ SSL ์ธ์ฆ์„œ๋งŒ ์ง€์›
ยท ์—ฌ๋Ÿฌ SSL์„ ๊ฐ–๋Š” ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์—๋Š” ์—ฌ๋Ÿฌ CLB๋ฅผ ์‚ฌ์šฉ
Application Load Balancer ยท ์—ฌ๋Ÿฌ SSL ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ง„ ๋ฆฌ์Šค๋„ˆ ์ง€์›
ยท SNI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™
Network Load Balancer ยท ์—ฌ๋Ÿฌ SSL ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ง„ ๋ฆฌ์Šค๋„ˆ ์ง€์›
ยท SNI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™

Connection Draining

  • ๊ฐ ELB ํƒ€์ž…๋งˆ๋‹ค ์ด๋ฆ„์ด ๋‹ค๋ฆ„
    • CLB : Connection Draining
    • ALB & NLB : Deregistration Delay(๋“ฑ๋ก ์ทจ์†Œ ์ง€์—ฐ)
  • ์ธ์Šคํ„ด์Šค๊ฐ€ ๋“ฑ๋ก ์ทจ์†Œ ์ค‘์ด๊ฑฐ๋‚˜ ์ •์ƒ ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ๋™์•ˆ ์ธ์Šคํ„ด์Šค์— ์–ด๋Š ์ •๋„ ์‹œ๊ฐ„์„ ์ฃผ์–ด in-flight requests์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ธฐ๋Šฅ
  • ๋“ฑ๋ก์ทจ์†Œde-registering๋˜๋ฉด ๋“ฑ๋ก ์ทจ์†Œ ์ค‘์ธ EC2 ์ธ์Šคํ„ด์Šค๋กœ๋Š” ์ƒˆ๋กœ์šด ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค.
  • 1 ~ 3,600์ดˆ (๊ธฐ๋ณธ๊ฐ’ : 300์ดˆ)
  • ๋น„ํ™œ์„ฑํ™” ๊ฐ€๋Šฅ (๊ฐ’์„ 0์œผ๋กœ ์„ค์ •)
  • ์š”์ฒญ์ด ์งง์€ ๊ฒฝ์šฐ ๋‚ฎ์€ ๊ฐ’์œผ๋กœ ์„ค์ •

Auto Scaling Group

Auto Scaling Group(ASG) ๋ชฉํ‘œ

  • ์ฆ๊ฐ€ํ•˜๋Š” ๋กœ๋“œ์— ๋งž๊ฒŒ Scale Out : EC2 ์ธ์Šคํ„ด์Šค ์ถ”๊ฐ€
  • ๊ฐ์†Œํ•˜๋Š” ๋กœ๋“œ์— ๋งž๊ฒŒ Scale In : EC2 ์ธ์Šคํ„ด์Šค ์ œ๊ฑฐ
  • AGS์—์„œ ์‹คํ–‰๋˜๋Š” ์ตœ์†Œ ๋ฐ ์ตœ๋Œ€ EC2 ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ๋ณด์žฅ
  • ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์ž๋™์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— ๋“ฑ๋ก
  • ์ด์ „ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋น„์ •์ƒ ํ˜น์€ ์ข…๋ฃŒ๋œ ๊ฒฝ์šฐ EC2 ์ธ์Šคํ„ด์Šค ๋‹ค์‹œ ์ƒ์„ฑ
  • ASG๋Š” ๋ฌด๋ฃŒ (๊ธฐ๋ณธ EC2 ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด์„œ๋งŒ ์ง€๋ถˆ)

Auto Scaling Group ์†์„ฑ

  • Launch Template (์ด์ „ ๋ฒ„์ „ Launch configurations๋Š” ๋”์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ)
    • AMI + Instance Type
    • EC2 User Data
    • EBS Volumes
    • Security Groups
    • SSH Key PAir
    • IAM Roles for your EC2 Instance
    • Network + Subnets Information
    • Load Balancer Information
  • Min Size / Max Size / Initial Capacity
  • Scaling ์ •์ฑ…

Auto Scaling - CloudWatch Alarms & Scaling

  • CloudWatch ์•Œ๋žŒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ AGS๋ฅผ ํ™•์žฅ ๊ฐ€๋Šฅ
  • alarm์ด ๋ฉ”ํŠธ๋ฆญ ๋“ฑ์„(CPU ํ‰๊ท  ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋ฉ”ํŠธ๋ฆญ) ๋ชจ๋‹ˆํ„ฐ๋ง
  • ์ „์ฒด ASG ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด ํ‰๊ท  CPU์™€ ๊ฐ™์€ ๋ฉ”ํŠธ๋ฆญ์ด ๊ณ„์‚ฐ
    ๊ฒฝ๋ณด ๊ธฐ์ค€
    • ์Šค์ผ€์ผ ์•„์›ƒ ์ •์ฑ… ์ƒ์„ฑ (์ธ์Šคํ„ด์Šค ์ˆ˜ ์ฆ๊ฐ€)
    • ์Šค์ผ€์ผ ์ธ ์ •์ฑ… ์ƒ์„ฑ(์ธ์Šคํ„ด์Šค ์ˆ˜ ๊ฐ์†Œ)

Dynamic Scaling Policies

Dynamic Scaling Policies description
Target Tracking Scaling(๋Œ€์ƒ์ถ”์  ์Šค์ผ€์ผ๋ง) ยท ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ์‰ฝ๊ฒŒ ์„ค์ •
ยท ์˜ˆ์‹œ) ๋‚˜๋Š” ASG ํ‰๊ท  CPU๊ฐ€ ์•ฝ 40%๋ฅผ ์œ ์ง€ํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค.
Simple / Step Scaling ยท CloudWatch ๊ฒฝ๋ณด๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜๋ฉด(CPU > 70%), 2๋Œ€ ์ถ”๊ฐ€
ยท CloudWatch ๊ฒฝ๋ณด๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ ๋˜์—ˆ์„ ๋•Œ(CPU < 30%), 1๋Œ€๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
Scheduled Actions ยท ์•Œ๋ ค์ง„ ์‚ฌ์šฉ ํŒจํ„ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™•์žฅ ์˜ˆ์ƒ
ยท ์˜ˆ์‹œ) ๊ธˆ์š”์ผ ์˜คํ›„ 5์‹œ์— ์ตœ์†Œ ์šฉ๋Ÿ‰์„ 10์œผ๋กœ ๋Š˜๋ฆฐ๋‹ค.

Predictive Scaling

  • ์˜ˆ์ธก ์Šค์ผ€์ผ๋ง : ์ง€์†์ ์œผ๋กœ ๋กœ๋“œ ์˜ˆ์ธก ๋ฐ ์Šค์ผ€์ค„ ํ™•์žฅ์„ ๋ฏธ๋ฆฌ ๊ณ„ํšํ•œ๋‹ค.

ํ™•์žฅ์— ์ ํ•ฉํ•œ ์ธก์ • ๊ธฐ์ค€

  • CPUUtilization(CPU ์‚ฌ์šฉ๋ฅ ) : ์ธ์Šคํ„ด์Šค ์ „์ฒด์˜ ํ‰๊ท  CPU ํ™œ์šฉ๋ฅ 
  • RequestCountPerTarget(๋Œ€์ƒ๋‹น ์š”์ฒญ ์ˆ˜) : EC2 ์ธ์Šคํ„ด์Šค ๋‹น ์š”์ฒญ ์ˆ˜๊ฐ€ ์•ˆ์ •์ ์ธ์ง€ ํ™•์ธ
  • Average Network In/Out(ํ‰๊ท  ๋„คํŠธ์›Œํฌ ์ž…์ถœ๋ ฅ) : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋„คํŠธ์›Œํฌ์˜์—ญ์ธ ๊ฒฝ์šฐ
  • Any custom metric : CloudWatch๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘ธ์‹œ

Scaling Cooldowns

  • ์Šค์ผ€์ผ๋ง ์ž‘์—…์ด ๋ฐœ์ƒํ•œ ํ›„ ์ฟจ ๋‹ค์šด ํƒ€์ž„์ด ๋ฐœ์ƒ(๊ธฐ๋ณธ๊ฐ’ 300์ดˆ)
  • ์ฟจ ๋‹ค์šด ํƒ€์ž„๋™์•ˆ ASG๋Š” ์ถ”๊ฐ€ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ ํ˜น์€ ์ข…๋ฃŒํ•˜์ง€ ์•Š๋Š”๋‹ค. (์ธก์ •์ง€ํ‘œ๊ฐ€ ์•ˆ์ •ํ™”๋˜๋„๋ก ํ—ˆ์šฉ)
    Tip
    ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” AMI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ณ  ์ฟจ ๋‹ค์šด ํƒ€์ž„์„ ๋‹จ์ถ•ํ•œ๋‹ค.

ASG for Solutions Architects

ASG ๊ธฐ๋ณธ ์ข…๋ฃŒ ์ •์ฑ… (simplified version)

  1. ์ธ์Šคํ„ด์Šค ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ AZ๋ฅผ ์ฐพ๋Š”๋‹ค.
  2. AZ์— ์„ ํƒํ•  ์ธ์Šคํ„ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ launch configuration์„ ๊ฐ–๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ญ์ œ

    ASG๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ AZ ์ „์ฒด์—์„œ ์ธ์Šคํ„ด์Šค ์ˆ˜ ๊ท ํ˜•์„ ์‹œ๋„

ASG Lifecycle Hooks

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ASG์—์„œ ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํ–‰๋˜์ž๋งˆ์ž ์„œ๋น„์Šค๊ฐ€ ์‹œ์ž‘๋œ๋‹ค.
  • Pending state : ์ธ์Šคํ„ด์Šค๊ฐ€ ์„œ๋น„์Šค ์ƒํƒœ๊ฐ€ ๋˜๊ธฐ ์ „์— ์ถ”๊ฐ€ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
  • Terminating state : ์ธ์Šคํ„ด์Šค๊ฐ€ ์ข…๋ฃŒ ๋˜๊ธฐ ์ „์— ์ผ๋ถ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

Launch Template vs Launch Configuration

Launch Template(newer) Launch Configuration(legacy)

ยท ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
ยท ๋งค๊ฐœ ๋ณ€์ˆ˜ ํ•˜์œ„ ์ง‘ํ•ฉ ์ƒ์„ฑ(์žฌ์‚ฌ์šฉ์„ฑ ๋ฐ ์ƒ์†์„ ์œ„ํ•œ ๋ถ€๋ถ„ ๊ตฌ์„ฑ)
ยท On-Demand ๋ฐ ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๋น„์ €๋‹
ยท T2 ๋ฌด์ œํ•œ ๋ฒ„์ŠคํŠธ ๊ธฐ๋Šฅ ์‚ฌ์šฉ
ยท ํ–ฅํ›„ AWS์—์„œ ๊ถŒ์žฅ

๋งค๋ฒˆ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
ยท Amazon Machine Image(AMI) ID, ์ธ์Šคํ„ด์Šค ์œ ํ˜•, Key pair, ๋ณด์•ˆ ๊ทธ๋ฃน, EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐํƒ€ ๋งค๊ฐœ๋ณ€์ˆ˜(tags, EC2 user-data โ€ฆ)