Post

[AWS] Auto Scaling

๐Ÿ“Œ ๋“ค์–ด๊ฐ€๋ฉฐ

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” AWS์˜ Auto Scaling์„ ์ •๋ฆฌํ•œ๋‹ค. ํŠธ๋ž˜ํ”ฝ์— ๋”ฐ๋ผ EC2 ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ๋Š˜๋ฆฌ๊ณ  ์ค„์—ฌ, ๋ถ€ํ•˜๋Š” ๊ฐ๋‹นํ•˜๋ฉด์„œ ๋น„์šฉ์€ ์•„๋ผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. AMI ์ƒ์„ฑ โ†’ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ โ†’ Auto Scaling ๊ทธ๋ฃน(ASG)์˜ ์ˆœ์„œ๋กœ ๊ตฌ์ถ•ํ•œ๋‹ค.

Auto Scaling์ด๋ž€? ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜๋ฅผ ์ฒ˜๋ฆฌํ•  ์ •ํ™•ํ•œ ์ˆ˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์œ ์ง€ํ•˜๋Š” ์„œ๋น„์Šค. Auto Scaling ๊ทธ๋ฃน(ASG)์— ์ตœ์†Œยท์ตœ๋Œ€ยทํฌ๋ง ์šฉ๋Ÿ‰์„ ์ง€์ •ํ•˜๋ฉด, AWS๊ฐ€ ๊ทธ ๋ฒ”์œ„ ์•ˆ์—์„œ ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ์กฐ์ ˆํ•œ๋‹ค.


1. ํ•ต์‹ฌ ๊ตฌ์„ฑ๊ณผ ํ๋ฆ„

Auto Scaling์€ โ€œ์–ด๋–ค ์ธ์Šคํ„ด์Šค๋ฅผ(AMI) โ†’ ์–ด๋–ค ์„ค์ •์œผ๋กœ(์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ) โ†’ ๋ช‡ ๊ฐœ๋‚˜(ASG)โ€ ์œ ์ง€ํ• ์ง€๋ฅผ ์ •์˜ํ•˜๋Š” ๊ตฌ์กฐ๋‹ค.

flowchart LR
    AMI["๐Ÿ“€ AMI<br/>(์ธ์Šคํ„ด์Šค ์ด๋ฏธ์ง€)"] --> LT["๐Ÿ“‹ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ<br/>(ํ‚คยท๋ณด์•ˆ๊ทธ๋ฃน ๋“ฑ)"]
    LT --> ASG["๐Ÿ“ฆ Auto Scaling ๊ทธ๋ฃน<br/>(minยทmaxยทdesired)"]
    ASG --> E1["๐Ÿ’ป EC2"]
    ASG --> E2["๐Ÿ’ป EC2"]
    ALB["โš–๏ธ ALB"] --> ASG
์šฉ์–ด์—ญํ• 
AMI๋ณต์ œํ•  ์ธ์Šคํ„ด์Šค์˜ ์ด๋ฏธ์ง€(์Šค๋ƒ…์ƒท ๊ธฐ๋ฐ˜)
์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์„ค์ •(AMIยทํ‚คยท๋ณด์•ˆ๊ทธ๋ฃน)
ASG์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ๊ด€๋ฆฌ(์ตœ์†Œ/์ตœ๋Œ€/ํฌ๋ง)
ALB๋Š˜์–ด๋‚œ ์ธ์Šคํ„ด์Šค๋กœ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ

2. ๊ธฐ์กด ์ธ์Šคํ„ด์Šค๋กœ AMI ์ƒ์„ฑ

Auto Scaling์—๋Š” ๋ณต์ œ ๊ธฐ์ค€์ด ๋˜๋Š” ์ด๋ฏธ์ง€(AMI)๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๊ธฐ์กด web ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ ๋‹ค. ์Šค๋ƒ…์ƒท์ด ๋จผ์ € ์ƒ์„ฑ๋˜์–ด ๋Œ€๊ธฐ ์ค‘์ด ๋˜๊ณ , ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์ƒํƒœ๊ฐ€ ๋˜๋ฉด AMI ๋ชฉ๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Untitled

Untitled

Untitled


3. ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ

์Šค์ผ€์ผ๋งํ•  ๋Œ€์ƒ์„ ์ •์˜ํ•˜๋Š” ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ ๋‹ค. OS ์ด๋ฏธ์ง€๋กœ ๋ฐฉ๊ธˆ ๋งŒ๋“  AMI๋ฅผ ๊ณ ๋ฅด๊ณ , ํ‚คํŽ˜์–ด์™€ ๋ณด์•ˆ ๊ทธ๋ฃน์€ ๊ธฐ์กด web ์„œ๋ฒ„์šฉ์„ ์„ ํƒํ•œ๋‹ค.

Untitled

Untitled

Untitled

Untitled


4. Auto Scaling ๊ทธ๋ฃน + ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ

์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์„ ์„ ํƒํ•ด ์‹ค์ œ ASG๋ฅผ ๋งŒ๋“ ๋‹ค. VPCยท์„œ๋ธŒ๋„ท์€ ๋‚ด๊ฐ€ ๋งŒ๋“  ๊ฒƒ์œผ๋กœ ํ•˜๊ณ , ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ์ƒˆ ALB๋ฅผ Internet-facing ์ฒด๊ณ„๋กœ ์ƒ์„ฑํ•œ๋‹ค.

Untitled

Untitled

Untitled

Untitled

โš ๏ธ ์ฝ˜์†” ์–ธ์–ด์— ๋”ฐ๋ผ Internet-facing์ด ํ•œ๊ธ€/์˜์–ด๋กœ ๋ฒˆ๊ฐˆ์•„ ํ‘œ์‹œ๋˜๋‹ˆ, โ€œInternet-facingโ€ ์ด๋ผ๋Š” ๋‹จ์–ด ์ž์ฒด๋ฅผ ๊ธฐ์–ตํ•ด๋‘์ž. ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์„ ๋ฐ›์œผ๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ์ด ์˜ต์…˜์ด์–ด์•ผ ํ•œ๋‹ค.


5. ์šฉ๋Ÿ‰ ยท ์œ ์ง€ ๊ด€๋ฆฌ ยท ์•Œ๋ฆผ

ํฌ๋ง ์šฉ๋Ÿ‰(๊ทธ๋ฃน ํฌ๊ธฐ)์€ ์ดˆ๊ธฐ ์ธ์Šคํ„ด์Šค ์ˆ˜๋‹ค. 2๋กœ ํ•˜๋ฉด AMI ๊ธฐ๋ฐ˜ ์ธ์Šคํ„ด์Šค 2๊ฐœ๋กœ ์‹œ์ž‘ํ•œ๋‹ค. ์ตœ์†Œ/์ตœ๋Œ€ ์šฉ๋Ÿ‰์œผ๋กœ ๋ฒ”์œ„๋ฅผ ์ •ํ•˜๊ณ , ๋Œ€์ƒ ์ถ”์  ์ •์ฑ…์„ ๊ฑธ๋ฉด ์ง€ํ‘œ์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ์กฐ์ •๋œ๋‹ค(์—ฌ๊ธฐ์„œ๋Š” ์ •์ฑ… ์—†์Œ์œผ๋กœ ์ˆ˜๋™ ์‹ค์Šต).

Untitled

์šฉ๋Ÿ‰ ์„ค์ •์˜๋ฏธ
ํฌ๋ง(desired)ํ‰์ƒ์‹œ ์œ ์ง€ํ•  ์ธ์Šคํ„ด์Šค ์ˆ˜
์ตœ์†Œ(min)์ด ์•„๋ž˜๋กœ ์ค„์ง€ ์•Š์Œ
์ตœ๋Œ€(max)์ด ์œ„๋กœ ๋Š˜์ง€ ์•Š์Œ

์œ ์ง€ ๊ด€๋ฆฌ ์ •์ฑ…์—์„œ๋Š” ์ธ์Šคํ„ด์Šค ๊ต์ฒด ์‹œ ์ƒˆ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋œฐ ๋•Œ๊นŒ์ง€ ๊ธฐ์กด ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ด๋ ค๋‘๋„๋ก ์„ค์ •ํ•ด ๋ฌด์ค‘๋‹จ์„ ๋…ธ๋ฆฐ๋‹ค. ์•Œ๋ฆผ์€ ์ด๋ฉ”์ผ๋กœ ๋ฐ›๊ณ , ํƒœ๊ทธ๋กœ Name=asg๋ฅผ ์ง€์ •ํ•œ๋‹ค.

Untitled

Untitled

Untitled

๐Ÿ’ก ๋Œ€์ƒ ์ถ”์  ์ •์ฑ…์€ โ€œCPU 50% ์œ ์ง€โ€์ฒ˜๋Ÿผ ๋ชฉํ‘œ ์ง€ํ‘œ๋ฅผ ์ •ํ•˜๋ฉด AWS๊ฐ€ ์•Œ์•„์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋Š˜๋ฆฌ๊ณ  ์ค„์ธ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ์ˆ˜๋™ ๋Œ€์‹  ์ด ๋ฐฉ์‹์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์— ์ž๋™ ๋ฐ˜์‘ํ•˜๊ฒŒ ๋‘๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.


๐Ÿ“ ์ •๋ฆฌ

1
2
3
4
5
6
Auto Scaling
โ”œโ”€ AMI        ๋ณต์ œ ๊ธฐ์ค€ ์ด๋ฏธ์ง€ ์ƒ์„ฑ
โ”œโ”€ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ AMI + ํ‚ค + ๋ณด์•ˆ๊ทธ๋ฃน ์„ค์ •
โ”œโ”€ ASG        min/max/desired๋กœ ์ธ์Šคํ„ด์Šค ์ˆ˜ ๊ด€๋ฆฌ
โ”œโ”€ ALB        Internet-facing์œผ๋กœ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ
โ””โ”€ ์ •์ฑ…       ๋Œ€์ƒ ์ถ”์  โ†’ ์ง€ํ‘œ ๊ธฐ๋ฐ˜ ์ž๋™ ์กฐ์ •
๊ฐœ๋…ํ•œ ์ค„ ์ •์˜
Auto Scaling๋ถ€ํ•˜์— ๋”ฐ๋ผ ์ธ์Šคํ„ด์Šค ์ˆ˜ ์ž๋™ ์กฐ์ ˆ
์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์„ค์ • ์ฒญ์‚ฌ์ง„
๋Œ€์ƒ ์ถ”์  ์ •์ฑ…์ง€ํ‘œ ๋ชฉํ‘œ ๊ธฐ๋ฐ˜ ์ž๋™ ์Šค์ผ€์ผ

Auto Scaling์˜ ํ•ต์‹ฌ์€ AMI โ†’ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ โ†’ ASG๋กœ ์ด์–ด์ง€๋Š” ๊ตฌ์„ฑ๊ณผ, min/max/desired๋กœ ๊ทœ๋ชจ๋ฅผ ํ†ต์ œํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ALB์™€ ๊ฒฐํ•ฉํ•˜๋ฉด ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€์— ์ž๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋Š˜๋ ค ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.