[NCP] AutoScaling๊ตฌํ˜„

๊น€๋™์ฃผยท2024๋…„ 4์›” 26์ผ
post-thumbnail

๐Ÿšฉ Autoscaling์ด๋ž€?

  • Autoscaling์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋˜๋Š” ์„œ๋น„์Šค์˜ ํŠธ๋ž˜ํ”ฝ ๋ณ€ํ™”์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ์„œ๋ฒ„ ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ๋Š˜๋ฆฌ๊ณ , ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ๊ฐ์†Œํ•˜๋ฉด ์„œ๋ฒ„ ์ˆ˜๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด Autoscaling์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค์˜ ๊ฐ€์šฉ์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ , ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ํ™˜๊ฒฝ์—์„œ ์œ ์šฉํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์˜ ์ˆ˜์š”์— ์‹ ์†ํ•˜๊ฒŒ ๋Œ€์‘ํ•˜์—ฌ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’† Autoscaling์—๋Š” ๋‘๊ฐ€์ง€ ํ™•์žฅ ๋ฐฉ์‹์ด์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ˆ˜์ง์  ํ™•์žฅ(Scale-up), ์ˆ˜ํ‰์  ํ™•์žฅ(Scale-out)์ž…๋‹ˆ๋‹ค.

  1. Scale out (์ˆ˜ํ‰ ํ™•์žฅ):
  • Scale out์€ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค ๋˜๋Š” ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ถ€ํ•˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ์ƒˆ๋กœ์šด ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๊ฒƒ์ด Scale out์ž…๋‹ˆ๋‹ค.
  • Scale out์€ ์ฃผ๋กœ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ํ™•์žฅ์„ฑ์ด ๋†’์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  1. Scale up (์ˆ˜์ง ํ™•์žฅ):
  • Scale up์€ ๋‹จ์ผ ์„œ๋ฒ„ ๋˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ๋ฆฌ์†Œ์Šค(์˜ˆ: CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ ๊ณต๊ฐ„ ๋“ฑ)๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ธฐ์กด ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ CPU๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ๋” ๋งŽ์€ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋” ๊ฐ•๋ ฅํ•œ ์„œ๋ฒ„๋กœ ์Šค์ผ€์ผ ์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Scale up์€ ์ฃผ๋กœ ๋‹จ์ผ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ํ•œ์ •๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์š”์•ฝํ•˜๋ฉด, Scale out์€ ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™•์žฅ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ˜๋ฉด, Scale up์€ ๊ธฐ์กด ์„œ๋ฒ„์˜ ์„ฑ๋Šฅ์„ ๊ฐ•ํ™”ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์ด๋ก ์„ ๋ดค์œผ๋‹ˆ ๋„ค์ด๋ฒ„ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ ์‹ค์ œ๋กœ ๊ตฌ์ถ•ํ•ด๋ณด๊ณ  ํ…Œ์ŠคํŠธํ•ด๋ณด๋ฉด์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ดํ•ด ํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿค“

๐Ÿšฃ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์ถ• ์ˆœ์„œ

  • Server ์ƒ์„ฑ
  • Application Load Balancer ์ƒ์„ฑ(Target Group ํฌํ•จ)
  • Auto Scaling Launch Configuration ์„ค์ •
  • Auto Scaling Group ์„ค์ •
  • Cloud Insight Monitoring Event Rule ์„ค์ •

1. ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  Server๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์ค์‹œ๋‹ค.

VPC์™€ Subnet์„ ์ƒ์„ฑํ–ˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

2. Application Load Balancer, Taget Group ์ƒ์„ฑ

ํƒ€๊ฒŸ ๊ทธ๋ฃน์—๋Š” HTTPํ”„๋กœํ† ์ฝœ 80ํฌํŠธ๋ฅผ ํƒ€๊ฒŸ์œผ๋กœ ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

3. Server image ์ƒ์„ฑ

Auto Scaling Launch Configuration์—์„œ ์‚ฌ์šฉํ•  Server Image๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค!

4. Launch Configuration ์ƒ์„ฑ

  • ๋ฏธ๋ฆฌ์ƒ์„ฑํ•ด๋‘” ์„œ๋ฒ„์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    Launch Configuration์€ Autoscaling์ž‘๋™์‹œ ์„œ๋ฒ„ํƒ€์ž…์„ ์ง€์ •ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค!

  • init Script๋ฅผ ํ†ตํ•ด ๋ฏธ๋ฆฌ Apache๋ฅผ ์„ค์น˜ํ•˜์—ฌ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ๋ผ์šด๋“œ๋กœ๋นˆ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • init script ์ƒ์„ฑ

  • init script ์ฝ”๋“œ

#! /bin/bash
yum install -y httpd 
systemctl start httpd 
cd /var/www/html
echo hostname : $HOSTNAME > index.html
systemctl restart httpd
  • Launch Configuration ์ƒ์„ฑ์™„๋ฃŒ

5. Auto Scaling Group ์ƒ์„ฑ

  • ์ข€ ์ „์— ๋งŒ๋“  Launch Configuration ์„ ํƒํ•ด์ค๋‹ˆ๋‹ค.

  • ๊ผญ ํ—ฌ์Šค ์ฒดํฌ ์œ ํ˜•์„ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์„ ํƒํ•ด์ค๋‹ˆ๋‹ค.

    ์ตœ์†Œ ์šฉ๋Ÿ‰: ํ•ญ์ƒ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ์„œ๋ฒ„ ์ˆ˜. ๋ณดํ†ต์€ ๊ธฐ๋ณธ ์šฉ๋Ÿ‰์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ์„ค์ •๋ผ์š”!
    ์ตœ๋Œ€ ์šฉ๋Ÿ‰: ์‹œ์Šคํ…œ์—์„œ ํ—ˆ์šฉ๋˜๋Š” ์ตœ๋Œ€ ์„œ๋ฒ„ ์ˆ˜. ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ•œ๋„๋ฅผ ๋‚˜ํƒ€๋‚ด์š”!
    ๊ธฐ๋Œ€ ์šฉ๋Ÿ‰: ์œ ์ง€ํ•˜๊ณ  ์‹ถ์€ ํ‰๊ท  ์„œ๋ฒ„ ์ˆ˜. ํŠธ๋ž˜ํ”ฝ ์˜ˆ์ธก๊ณผ ๋ฆฌ์†Œ์Šค ์š”๊ตฌ์— ๋”ฐ๋ผ ์กฐ์ •๋ผ์š”!

  • ์ •์ฑ…์„ค์ •

    Autoscaling์ด ์ž‘๋™ํ•˜๋ฉด ํ•œ๋ฒˆ์— ๋ช‡๊ฐœ์˜ ์„œ๋ฒ„๋ฅผ ๋Š˜๋ฆด์ง€ ์ค„์ผ์ง€ ์ •ํ•˜๋Š” ์„ค์ •์ž…๋‹ˆ๋‹ค.

  • Auto Scaling Group ์ƒ์„ฑ์™„๋ฃŒ

    ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ๋„ ์žˆ์ง€๋งŒ ์ด๋ฒˆ ์‹ค์Šด์—์„  ์ƒ๋žตํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

6. Cloud Insight Monitoring Event Rule ์„ค์ •

  • Server(VPC)๋กœ Rule์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๋งŒ๋“ค์–ด๋‘์—ˆ๋˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.
  • CPU๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•œ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.
  • Autoscaling ์ •์ฑ…์„ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค.
  • ๋ฐฉ๊ธˆ๊นŒ์ง€ ๋งŒ๋“  Rule์€ ์„œ๋ฒ„ CPU๊ฐ€ 50%์ด์ƒ ๋ถ€ํ•˜์‹œ Autoscaling์œผ๋กœ ์ธํ•ด ์„œ๋ฒ„๊ฐ€ ์ƒ๊ธฐ๋Š” ๋ฃฐ๋งŒ ๋งŒ๋“ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์œ„์™€ ๊ฐ™์€๋ฐฉ๋ฒ•์œผ๋กœ CPU๋ถ€ํ•˜๊ฐ€ ์•ˆ์ •๋˜์—ˆ์„์‹œ ์„œ๋ฒ„๊ฐ€ ์ค„์–ด๋“œ๋Š” ์ •์ฑ… ๋˜ํ•œ ๋งŒ๋“ค์–ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

7. Server Stress ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ

  • SSH๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ์ ‘์†ํ•ด์ค์‹œ๋‹ค.
  • ๋จผ์ € ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ์ „ Apache์„ค์น˜๋ฅผ ํ•ด์ค์‹œ๋‹ค.
  • Autoscaling ์„œ๋ฒ„๋Š” init script๋ฅผ ์„ค์ •ํ•ด๋†จ๊ธฐ ๋–„๋ฌธ์— ์ž๋™์œผ๋กœ ์„ค์น˜๊ฐ€ ๋ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • init script ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•˜์—ฌ ์„ค์ •ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • ๊ณต์ธip๋กœ ์ ‘์†ํ•˜์—ฌ ์„ค์ •์ด ์ž˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์„ ํ•ด๋ด…์‹œ๋‹ค.

  • ์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋‹ˆ Stress๋กœ CPU๊ณผ๋ถ€ํ•˜๋ฅผ ์ฃผ์–ด Autoscaling์„ ํ…Œ์ŠคํŠธ ํ•ด๋ด…์‹œ๋‹ค.
  • yum -y install epel-release
  • yum -y install stress
  • ์œ„ ๋ช…๋ น์–ด๋กœ Stressํˆด์„ ๊น”์•„์ค์‹œ๋‹ค.

  • stress --cpu -2 --timeout 400s(stressํˆด์„ ํ†ตํ•ด CPU์— ๋ถ€ํ•˜๋ฅผ ์ฃผ๋Š” ๋ช…๋ น์–ด ์ž…๋‹ˆ๋‹ค.

8. Autoscaling ์„œ๋ฒ„ ํ™•์ธ

  • Stress๋กœ ์ธํ•ด ์„œ๋ฒ„ CPU์— ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฐ ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Autoscaling์ด ์ž‘๋™ํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ์ƒˆ๋กœ ํ•˜๋‚˜ ์ƒ์„ฑ๋˜๋Š”๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ์„œ๋ฒ„๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์œผ๋‹ˆ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋กœ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    Target์ƒํƒœ๋ฅผ ๋ณด๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์— ์—ฐ๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

  • ๋ผ์šด๋“œ ๋กœ๋นˆ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ Autoscalingํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!๐Ÿ’†

profile
๋”์šฑ ๋” ๋ฐœ์ „๋œ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๊ฐœ์ธ ๊ณต๋ถ€ ๋ธ”๋กœ๊ทธ(DevOps/Cloud)

0๊ฐœ์˜ ๋Œ“๊ธ€