[aws] ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน (Auto Scaling Group)
๐ ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน (Auto Scaling Group)
aws๋ EC2 ์ธ์คํด์ค ์์ฑ API ํธ์ถ์ ํตํด ์๋ฒ๋ฅผ ๋น ๋ฅด๊ฒ ์์ฑํ๊ณ ์ข ๋ฃ๋ฅผ ์๋ํ ํ ์ ์๋ ASG๋ฅผ ์ง์ํ๋ค. ASG๋ฅผ ๋ง๋ค๋ฉด ์ค์ผ์ผ ์์ ์ฆ ์ฆ๊ฐํ ๋ก๋์ ๋ง์ถฐ EC2 ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ EC2๋ฅผ ์ถ์ํ๋ค๋ ์๋ฏธ์ ์ค์ผ์ผ ์ธ์ ํ ์ ์๊ฒ ๋๋ค.A SG๋ฅผ ์ค์ ํ ๋ ์ต์ ์ธ์คํด์ค ๊ฐ์์ ํฌ๋ง ๊ฐ์, ์ต๋ ์ธ์คํด์ค ๊ฐ์๋ฅผ ์ค์ ํ ์ ์๋ค. ์ต์๋ ๋ง ๊ทธ๋๋ก ์ด์ฉํ๋๋ฐ์ ์์ด ์ต์ ์ธ์คํด์ค์ ๊ฐ์๋ฅผ ์๋ฏธํ๋ฉฐ ์ต๋ ๋ํ, ์ด์ฉํ๋๋ฐ ์์ด ์ต๋ ์ธ์คํด์ค์ ๊ฐ์๋ฅผ ์๋ฏธํ๋ค ๊ทธ๋ ๋ค๋ฉด ํฌ๋ง ์ธ์คํด์ค๋ ๋ฌด์์ผ๊น? ํฌ๋ง ์ธ์คํด์ค๋ ์ฒ์ ์์ฑํ ๋์ ์ธ์คํด์ค ๊ฐ์๋ฅผ ์๋ฏธํ๋ค.
ASG๋ ๋ก๋ ๋ฐธ๋ฐ์์ ํ์ด๋ง ๋์์ ๋ ๋ ์ข์ ์๋์ง๋ฅผ ๋ณด์ด๋๋ฐ, ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ์ฌ์ฉ์๊ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋ ์น์ฌ์ดํธ์ ์ก์ธ์คํ์์ ๋ ๋น์ ์์ ์ผ๋ก ํ๋จ๋๋ ์ธ์คํด์ค๋ฅผ ์ข ๋ฃํ๊ณ ์ EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ค์ผ์ผ ์์ ๋์์ ๋ ELB๋ ASG ๋ด์ ์ธ์คํด์ค๋ก ์๋์ผ๋ก ํธ๋ํฝ์ ๋ถ์ฐ ์์ผ์ค๋ค.
ASG๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ์์ ํ
ํ๋ฆฟ์ ์์ฑํด์ผ ํ๋ค. ๊ทธ ์์๋ EC2 ์ธ์คํด์ค๋ฅผ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์๋ค.
AMI ๋ฐ ์ธ์คํด์ค ์ ํ , EC2 ์ฌ์ฉ์ ๋ฐ์ดํฐ , EBS ๋ณผ๋ฅจ , ๋ณด์ ๊ทธ๋ฃน , SSH ํค ํ์ด, EC2 ์ธ์คํด์ค์ IAM ์ญํ , ๋คํธ์ํฌ ๋ฐ ์๋ธ๋ท ์ ๋ณด ๋ก๋ ๋ฐธ๋ฐ์ ์ ๋ณด ๋ฑ๋ฑ ์ด ์๋ค. ๋ํ ASG์ ์ต์ ํฌ๊ธฐ, ์ต๋ ํฌ๊ธฐ, ์ด๊ธฐ ์ฉ๋์ ์ ์ํด์ผ ํ๋ค.
์ค์ผ์ผ๋ง ์ ์ฑ ๋ํ ์ ์๋์ผํ๋๋ฐ CloudWatch ๊ฒฝ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ASG๋ฅผ ์ค์ผ์ผ ์ธ ๋ฐ ์ค์ผ์ผ ์์ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ์ธ ๊ฐ์ EC2 ์ธ์คํด์ค๋ฅผ ํฌํจํ ASG๊ฐ ์๋๋ฐ ๊ฒฝ๋ณด๊ฐ ์ธ๋ฆฌ๊ฒ ๋๋ฉด ์ค์ผ์ผ ์์์ด ๋ฐ์ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฌด์์ด ๊ฒฝ๋ณด๋ฅผ ์ธ๋ฆฌ๊ฒ ํ ์ ์์๊น? ์ ๋ต์ ์งํ(metric)์ด๋ค. ์ด ๊ฒฝ๋ณด๋ ํ๊ท cpu๋ ์ํ๋ ์ฌ์ฉ์ ์ง์ ์งํ ์ด๋ค ๊ฒ๋ ์ง์ ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ASG ์ ์ฒด์ ํ๊ท CPU๊ฐ ๋๋ฌด ๋์ผ๋ฉด EC2 ์ธ์คํด์ค ์ถ๊ฐ๊ฐ ํ์ํ๋ฐ ์งํ์ ๋ฐ๋ผ ๊ฒฝ๋ณด๊ฐ ASG์ ์ค์ผ์ผ๋ง ํ๋์ ์ ๋ฐํ๋ค. ๊ฒฝ๋ณด์ ์ํด ๋ด๋ถ์์ ์๋์ ์ธ ์ค์ผ์ผ๋ง์ผ๋ก ์ด๋ฃจ์ด์ง๋ฏ๋ก ๊ฒฝ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค์ผ์ผ ์์ ์ ์ฑ ์ ๋ง๋ค์ด ์ธ์คํด์ค ์๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ์ผ ์ธ ์ ์ฑ ์ ๋ง๋ค์ด ์ธ์คํด์ค ์๋ฅผ ์ค์ผ ์ ์๋ค.
๐ ASG์ ์กฐ์ ์ ์ฑ - ๋์ ์กฐ์ ์ ์ฑ
- ๋์ ์ถ์ ์ค์ผ์ผ๋ง - ๊ฐ์ฅ ๋จ์ํ๊ณ ์ค์ ํ๊ธฐ ์ฝ๋ค. ๋ชจ๋ ์ธ์คํด์ค์์ ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์ ํ๊ท CPU ์ฌ์ฉ๋ฅ ์ ์ถ์ ํ์ฌ ์ด ์์น๊ฐ 40% ๋์ ๋จธ๋ฌด๋ฅผ ์ ์๋๋ก ํ ๋์ ์ฌ์ฉํ๋ค. ์ด์ฒ๋ผ ๊ธฐ๋ณธ ๊ธฐ์ค์ ์ ์ธ์ฐ๊ณ ์์ ๊ฐ์ฉ์ด ๊ฐ๋ฅํ๋๋ก ํ๋ค.
- ๋จ์/ ๋จ๊ณ ์ค์ผ์ผ๋ง- ์์์ ์ค๋ช ํ CloudWatch ๊ฒฝ๋ณด๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ์ผ๋ก ASG์ ๋ํ CPU ์ฌ์ฉ๋ฅ ์ด 70%๋ฅผ ์ด๊ณผํ๋ ๊ฒฝ์ฐ ์ฉ๋์ ๋ ์ ๋ ์ถ๊ฐํ๋๋ก ์ค์ ํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ฒด์ 30% ์ดํ๋ก ๋จ์ด์ง๋ฉด ์ ๋ ํ๋๋ฅผ ์ ๊ฑฐํ๋ค๋ ์ค์ ๋ ์ถ๊ฐํ ์ ์๋ค. ๋จ CloudWatch ๊ฒฝ๋ณด๋ฅผ ์ค์ ํ ๋์๋ ํ ๋ฒ์ ์ถ๊ฐํ ์ ๋์ ์์ ์ ๊ฑฐํ ์ ๋์ ์๋ฅผ ๋จ๊ณ๋ณ๋ก ์ค์ ํด์ฃผ์ด์ผํ๋ค.
- ์์ฝ๋ ์์ - ๋์ ์๋ ์ฌ์ฉ ํจํด์ ๋ฐํ์ผ๋ก ์ค์ผ์ผ๋ง์ ์์ํ๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด ํฐ ์ด๋ฒคํธ๊ฐ ์์ ๋์ด ์์ ๋, ์ฌ๋ฌ ์ฌ๋๋ค์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ ๊ฒ์ ๋๋นํด ์ฌ๋ฌ๋ถ์ ASG ์ต์ ์ฉ๋์ ์ด๋ฒคํธ ์๊ฐ๋์ ์๋์ผ๋ก ์ธ์คํด์ค๋ฅผ ๋๋ฆฌ๊ฒ ํ๋ ๊ฒ์ด๋ค.
๐ ASG์ ์กฐ์ ์ ์ฑ - ์์ธก ์ค์ผ์ผ๋ง
์์ธก ์ค์ผ์ผ๋ง์ ํตํด์ AWS ๋ด ์คํ ์ค์ผ์ผ๋ง ์๋น์ค๋ฅผ ํ์ฉํ์ฌ ์ง์์ ์ผ๋ก ์์ธก์ ์์ฑํ ์ ์๋ค. ๋ก๋๋ฅผ ๋ณด๊ณ ์ ๋ค์ ์ค์ผ์ผ๋ง์ ์์ธกํ๋ ๊ฒ์ด๋ค. ์๊ฐ์ ๊ฑธ์ณ ๊ณผ๊ฑฐ ๋ก๋๋ฅผ ๋ถ์ํ๊ณ ์์ธก์ด ์์ฑ๋๋ฉด ๊ทธ ํด๋น ์์ธก์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ ์ ์ค์ผ์ผ๋ง ์์ ์ด ์์ฝ๋๋ค.
์ด๋ฌํ ์ค์ผ์ผ๋ง์ ๊ธฐ๋ฐ์ด ๋ ์งํ๊ฐ ํ์ํ๋ค. ๊ทธ ์งํ ์ค ๋ํ์ ์ธ ๊ฒ์ CPU ์ฌ์ฉ๋ฅ , ์ธ์คํด์ค ๋น ์์ฒญ ์ , ํ๊ท ๋คํธ์ํฌ ์ฌ์ฉ, CloudWatch๋ฅผ ์ด์ฉํ ์ปค์คํ ์ง ํ ๋ฑ์ด ๋ ์ ์๋ค.
๐ ASG์ ์กฐ์ ์ ์ฑ - Scaling Cooldowns
์ค์ผ์ผ๋ง ํด์ง(Scaling Cooldown)๋ ์ค์ผ์ผ๋ง ์์ ์ด ๋๋ ๋๋ง๋ค ์ธ์คํด์ค์ ์ถ๊ฐ ๋๋ ์ญ์ ๋ฅผ ๋ง๋ก ํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก 5๋ถ์ ํด์ง ๊ธฐ๊ฐ์ ๊ฐ๋ ๊ฒ์ด๋ค. ํด์ง ๊ธฐ๊ฐ์๋ ASG์ ์ถ๊ฐ ์ธ์คํด์ค๋ฅผ ์คํ ๋๋ ์ข ๋ฃํ ์ ์์ผ๋ฉฐ ์ด๋ ์งํ๋ฅผ ์ด์ฉํ์ฌ ์๋ก์ด ์ธ์คํด์ค๊ฐ ์์ ํ๋ ์ ์๋๋ก ํ๋ฉฐ ์ด๋ค ์๋ก์ด ์งํ์ ์์์ ์ดํด๋ณด๊ธฐ ์ํจ์ด๋ค. ๋ฐ๋ผ์ ์ค์ผ์ผ๋ง ์์ ์ด ๋ฐ์ํ ๋์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ๋ ํด์ง๊ฐ ์๋์ง ํ์ธํด์ผ ํ๋ฉฐ, ํด์ง๊ฐ ์์ ๊ฒฝ์ฐ ํด๋น ์์ ์ ๋ฌด์ํ๊ณ ์๋ ๊ฒฝ์ฐ์๋ ์ธ์คํด์ค๋ฅผ ์คํ ๋๋ ์ข ๋ฃํ๋ ์ค์ผ์ผ๋ง ์์ ์ ์ํํ ๊ฒ์ด๋ค.
๋ํ ํด์ง ๊ธฐ๊ฐ์ด ์งง์์ง๋ฉด ASG ์์์ ๋ ๋ง์ ๋์ ์ค์ผ์ผ๋ง์ด ๊ฐ๋ฅํด์ง๋ ์ฆ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ AMI๋ฅผ ์ด์ฉํ์ฌ EC2 ์ธ์คํด์ค ๊ตฌ์ฑ ์๊ฐ์ ๋จ์ถํ๊ณ ์ด๋ฅผ ํตํด ์์ฒญ์ ๋ ์ ์ํ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ข๋ค.