[AWS] ASG
2023. 7. 1. 00:29ใDevops/AWS
https://jeidiiy.notion.site/ASG-30b4b9b765ff4371b64ece27cdc16279?pvs=4
๐ก๋ ธ์ ์ ์ต์ ํ๋ ๊ธ์ ๋๋ค. ์ ๋งํฌ๋ฅผ ํตํด ์ ๊ทผํ ์ ์์ต๋๋ค.
ASG
- Auto Scaling Group
1. ASG๋?
- EC2 ์ธ์คํด์ค ์์ฑ ๋ฐ ์ข ๋ฃ๋ฅผ ์๋ํํ ์ ์๋ ๊ธฐ๋ฅ
- ASG์ ๋ชฉ์ - ์ค์ผ์ผ ์์ & ์ค์ผ์ผ ์ธ
- ์ฆ๊ฐํ ํธ๋ํฝ์ ๋ง์ถฐ EC2 ์ธ์คํด์ค ์ถ๊ฐ
- ๊ฐ์ํ ํธ๋ํฝ์ ๋ง์ถฐ EC2 ์ธ์คํด์ค ์ ๊ฑฐ
- ์ต์, ํฌ๋ง ๋ฐ ์ต๋ ๊ฐ์๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ๋งค๊ฐ๋ณ์ ์ ์ ๊ฐ๋ฅ
- ๋ก๋ ๋ฐธ๋ฐ์์ ํ์ด๋งํ๋ ๊ฒฝ์ฐ ASG์ ์ํ ๋ชจ๋ EC2 ์ธ์คํด์ค๊ฐ ๋ก๋ ๋ฐธ๋ฐ์์ ์ฐ๊ฒฐ๋จ
- ํน์ EC2 ์ธ์คํด์ค๊ฐ ๋น์ ์์ด๋ฉด ์ข ๋ฃ ํ ์๋ก์ด EC2 ์ธ์คํด์ค ์์ฑ
- ๋ฌด๋ฃ์ด๋ฉฐ ์์ฑ๋ ํ์ ๋ฆฌ์์ค์ ๋ํ ๋น์ฉ๋ง ๋ด๋ฉด ๋จ
๋์ ์๋ฆฌ
- ASG์ ์ต์(Minimum), ํฌ๋ง(Desire), ์ต๋(Maximum) ์ฉ๋์ ์ค์
- ์ด ์ค์ ์ ๊ธฐ๋ฐ์ผ๋ก ํธ๋ํฝ์ ๋ฐ๋ผ ์ค์ผ์ผ ์ธ & ์ค์ผ์ผ ์์์ด ์๋์ผ๋ก ๋์
ASG in AWS With Load Balancer
- ASG์ ์ธ์คํด์ค๊ฐ 4๊ฐ ๋ฑ๋ก๋์ด ์์ผ๋ฉด ELB๊ฐ ๋ชจ๋ ์ธ์คํด์ค์ ํธ๋ํฝ์ ๋ถ์ฐํ์ฌ ๋ก๋ ๋ฐธ๋ฐ์ฑ
- ELB๋ ์ํ ํ์ธ์ ํตํด EC2์ ์ธ์คํด์ค ์ํ๋ฅผ ํ์ธํ๊ณ ASG์ ์ ๋ฌ
- ASG์์ ์ค์ผ์ผ ์์ ๋ฐ์ ์ ELB๋ ์๋์ผ๋ก ํด๋น ์ธ์คํด์ค์๊ฒ๋ ํธ๋ํฝ ๋ถ์ฐ
2. ASG Attributes
- Launch Template
- AMI + Instance Type
- EC2 User Data
- EBS Volumes
- Security Groups
- SSH Key Pair
- IAM Roles for your EC2 Instances
- Network + Subnets Information
- Load Balancer Information
- Min Size / Max Size / Initial Capacity
- Scaling Policies
3. Auto Scaling - CloudWatch Alarms & Scaling
- CloudWatch ์๋์ ๊ธฐ๋ฐ์ผ๋ก ASG๋ฅผ ์ค์ผ์ผ ์ธ & ์ค์ผ์ผ ์์
- ์งํ(metric)์ ๊ธฐ๋ฐ์ผ๋ก ์๋์ ๋ฐ์์ํด
- CPU, RAM ์ฌ์ฉ๋ฅ ๋ฑ
4. ASG - Dynamic Scaling Policies
Target Tracking Scaling
- ๊ฐ์ฅ ๋จ์ํ๊ณ ๊ฐ๋จํ ์ค์
์๋๋ฆฌ์ค
- ASG์ ํ๊ท CPU ์ฌ์ฉ๋ฅ ์ ์ถ์ ํ์ฌ 40%์ ๋จธ๋ฌผ๋๋ก ํ๋ ๊ฒฝ์ฐ
Simple / Step Scaling
- CloudWatch ์๋์ ์ค์
- ์๋์ด ํธ๋ฆฌ๊ฑฐ๋์ ๋์ ์์ ์ ์ค์
์๋๋ฆฌ์ค
- CPU ์ฌ์ฉ๋ฅ ์ด 70% ์ด์์ด ๋์ด CloudWatch ์๋์ด ํธ๋ฆฌ๊ฑฐ๋ ๊ฒฝ์ฐ ์ ๋ 2๊ฐ๋ฅผ ์ถ๊ฐ
- CPU ์ฌ์ฉ๋ฅ ์ด 30% ์ดํ๊ฐ ๋์ด CloudWatch ์๋์ด ํธ๋ฆฌ๊ฑฐ๋ ๊ฒฝ์ฐ ์ ๋ 1๊ฐ๋ฅผ ์ ๊ฑฐ
๐ก CloudWatch ๊ฒฝ๋ณด ์ค์ ์ ํ ๋ฒ์ ์ถ๊ฐ ๋๋ ์ ๊ฑฐํ ์ ๋์ ์๋ฅผ ๋จ๊ณ๋ณ๋ก ์ค์ ํด์ผ ํ๋ค.
Scheduled Actions
- ๋์ ์๋ ํจํด์ ๋ฐํ์ผ๋ก ์ค์ผ์ผ๋ง์ ์์ํ๋ ๋ฐฉ๋ฒ
์๋๋ฆฌ์ค
- ๊ธ์์ผ ์คํ 5์์ ํฐ ์ด๋ฒคํธ๊ฐ ์์ฉก๋์ด ์์ผ๋ ASG์ ์ต์ ์ฉ๋์ ๋งค์ฃผ ๊ธ์์ผ๋ง๋ค ์๋์ผ๋ก ์ค์ผ์ผ ์์ํ๋๋ก ์ค์
Predictive Scaling
- ๊ณผ๊ฑฐ์ ์งํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ ์ค์ผ์ผ๋ง์ ์์ธกํ์ฌ ์คํ ์ค์ผ์ผ๋งํ๋ ๋ฐฉ๋ฒ
- ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ์ฌ ์์ธก์ด ์์ฑ๋๊ณ ์ด ์์ธก์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ ์ ์ค์ผ์ผ๋ง ์์ ์ด ์์ฝ๋จ
5. ์ค์ผ์ผ๋ง์ ์ํ ์ข์ ์งํ
- CPU ์ฌ์ฉ๋ฅ
- ํ๊ฒ๋ณ ์์ฒญ ์
- EC2 ์ธ์คํด์ค๊ฐ ์์ ์ ์ผ๋ก ๋์ํ๋ ์์ฒญ์ ์ ํ์ธ
- ๋คํธ์ํฌ ํ๊ท ์
์ถ๋ ฅ
- EC2 ์ธ์คํด์ค์ ๋ํด ํด๋น ๋คํธ์ํฌ์์ ๋ณ๋ชฉ ํ์ ํ์ธ
- ํน์ ์๊ณ๊ฐ์ ๋๋ฌํ ๊ฒฝ์ฐ ์ค์ผ์ผ๋ง
- ์ปค์คํ
์งํ
- CloudWatch์์ ํ์ํ๋ค๊ณ ํ๋จ๋๋ ์งํ๋ฅผ ์ค์ ๊ฐ๋ฅ
- ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค์ผ์ผ๋ง ์ ์ฑ ๋ณ๊ฒฝ ๊ฐ๋ฅ
6. Scaling Cooldown
- ์ค์ผ์ผ๋ง ์์ ์ด ๋๋ ๋๋ง๋ค ์ธ์คํด์ค์ ์ถ๊ฐ/์ญ์ ๋ฅผ ๋ง๋ก ํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก 5๋ถ(300์ด)์ ํด์ง ๊ธฐ๊ฐ์ ๊ฐ๋ ๊ธฐ๋ฅ
- ์ด ๊ธฐ๊ฐ์๋ ASG๊ฐ ์ธ์คํด์ค๋ฅผ ์ถ๊ฐ ์ธ์คํด์ค๋ฅผ ์คํ/์ข ๋ฃํ ์ ์์
๋ชฉ์
- ์๋ก์ด ์ธ์คํด์ค๊ฐ ์์ ํ๋๋ฆฌ ์ ์๋๋ก ํ๋ฉฐ ์ด๋ค ์๋ก์ด ์งํ์ ์์์ ์ดํด๋ณด๊ธฐ ์ํจ
๐ก ์ค์ผ์ผ๋ง ์์ ๋ฐ์ ์ ๊ธฐ๋ณธ์ผ๋ก ์ค์ ๋ ํด์ง๊ฐ ์๋์ง ํ์ธํด์ผ ํ๋ค. ๊ทธ๋ด ๊ฒฝ์ฐ ํด๋น ์์ ์ ๋ฌด์ํ๊ณ ์๋ ๊ฒฝ์ฐ ์ค์ผ์ผ๋ง ์์ ์ ์ํํ๋ค. ์ฆ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ AMI๋ฅผ ์ด์ฉํ์ฌ EC2 ์ธ์คํด์ค ๊ตฌ์ฑ ์๊ฐ์ ๋จ์ถํ๊ณ ์ด๋ฅผ ํตํด ์์ฒญ์ ๋ ์ ์ํ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ข๋ค. ์ด๋ ๊ฒ ํ์ฑํ ์๊ฐ์ด ๋นจ๋ผ์ง๋ฉด ํด์ง ๊ธฐ๊ฐ ๋ํ ๋จ์ถ๋๊ธฐ ๋๋ฌธ์ ASG ์์์ ๋ ๋ง์ ๋์ ์ค์ผ์ผ๋ง์ด ๊ฐ๋ฅํด์ง๋ค. ๋ํ ASG๊ฐ 1๋ถ๋ง๋ค ์งํ์ ์ ๊ทผํ ์ ์๋๋ก ์ธ๋ถ ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฅ ๋ฑ์ ์ฌ์ฉํ๋๋ก ์ค์ ํ๊ณ ์ด์ ๊ฐ์ ์งํ๋ฅผ ์ ์ํ ์ ๋ฐ์ดํธํด์ผ ํ๋ค.