19B. EC2 ์์ฑ ์ต์ ์ค์ ๊ณผ Auto Scaling ๊ทธ๋ฃน ์์ฑํ๊ธฐ
19B. EC2 ์์ฑ ์ต์ ์ค์ ๊ณผ Auto Scaling ๊ทธ๋ฃน ์์ฑํ๊ธฐ ๊ด๋ จ
EC2 ์ธ์คํด์ค ์์ฑ ์ต์ (Launch Configuration)์ ์ค์ ํ๊ณ , Auto Scaling ๊ทธ๋ฃน์ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค. Auto Scaling ๊ทธ๋ฃน ๋ชฉ๋ก(AUTO SCALING โ Auto Scaling Groups)์ ํด๋ฆญํฉ๋๋ค. ์์ฑํ EC2 ์ธ์คํด์ค ์์ฑ ์ต์ ๊ณผ Auto Scaling ๊ทธ๋ฃน์ด ํ๋๋ ์์ ๋ ๊ทธ๋ฆผ 19-9์ ๊ฐ์ ํ์ด์ง๊ฐ ํ์๋ฉ๋๋ค. Create Auto Scaling group ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
EC2 ์ธ์คํด์ค ์์ฑ ์ต์ ๊ณผ Auto Scaling ๊ทธ๋ฃน์ ์ฐ๋ฌ์ ์์ฑํฉ๋๋ค(๋์ค์ ๊ฐ๋ณ์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค). ์ด์ Create launch configuration ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ AMI๋ฅผ ์ ํํฉ๋๋ค. ์ผ์ชฝ My AMIs๋ฅผ ํด๋ฆญํ๊ณ , ๋ฐฉ๊ธ Auto Scaling์ฉ์ผ๋ก ์์ฑํ AMI(AutoScalingAMI)์ Select ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ๋ง์ดํฌ๋ก ์ธ์คํด์ค(t1.micro
)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
EC2 ์ธ์คํด์ค ์์ฑ ์ต์ ์ ์ค์ ํฉ๋๋ค.
- Name: EC2 ์ธ์คํด์ค ์์ฑ ์ต์
์ ์ด๋ฆ์
๋๋ค.
ExampleAutoScalingConfig
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - Purchasing option: ์คํ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉ ์ต์ ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- IAM role: EC2 ์ธ์คํด์ค์์ ์ฌ์ฉํ IAM ์ญํ ์ ๋๋ค. IAM ์ญํ ์ ์ฌ์ฉํ๋ฉด ์ก์ธ์ค ํค์ ์ํฌ๋ฆฟ ํค ์์ด AWS API๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. IAM ์ญํ ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ '16.4.1 IAM ์ญํ ์์ฑํ๊ธฐ'๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
- Monitoring: Cloud Watch ์ธ๋ถ ๋ชจ๋ํฐ๋ง์ ์ฌ์ฉํ๋ ์ต์ ์ ๋๋ค. 1๋ถ ๋จ์๋ก ๋ชจ๋ํฐ๋ง ํ ์ ์๋๋ก ์ด ๋ถ๋ถ์ ์ฒดํฌํฉ๋๋ค.
- .
[Advanced Details]
ํญ์ ํด๋ฆญํฉ๋๋ค. - Kernel ID: EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ Kernel ID์ ๋๋ค. ์์์ AMI์ Kernel ID๋ฅผ ์ค์ ํ์ผ๋ฏ๋ก ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- RAM Disk ID: EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ RAM Disk ID์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- User data: root ๊ถํ์ผ๋ก ์คํํ ์คํฌ๋ฆฝํธ์
๋๋ค. ์ด ๋ถ๋ถ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค. EC2 ์ธ์คํด์ค๊ฐ ์์ฑ๋์์ ๋ ์ฌ๊ธฐ์ ์ค์ ํ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋ฉ๋๋ค. As Text๋ฅผ ์ ํํ๊ณ ๋ค์ User data ์ฝ๋๋ฅผ ์
๋ ฅํฉ๋๋ค. ์ด์ EC2 ์ธ์คํด์ค๊ฐ ์์ฑ๋๋ฉด Node.js ์๋ฒ๋ฅผ ์คํํ๊ฒ ๋ฉ๋๋ค.
- As text: ํ ์คํธ ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- As file: ๋ฏธ๋ฆฌ ์์ฑํ ์คํฌ๋ฆฝํธ ํ์ผ์ ์ ๋ก๋ํฉ๋๋ค.
- Input is already base64 encoded: ์คํฌ๋ฆฝํธ ํ์ผ์ด BASE64๋ก ์ธ์ฝ๋ฉ๋์์ ๋ ์ฒดํฌํฉ๋๋ค.
- IP Address Type: IP ์ฃผ์ ํํ์
๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- Only assign a public IP address to instance launched in the default VPC and subnet. (default): ๊ธฐ๋ณธ VPC์ ์๋ธ๋ท์ ์์ฑ๋ EC2 ์ธ์คํด์ค์๋ง ๊ณต์ธ IP๋ฅผ ๋ถ์ฌํฉ๋๋ค.
- Assign a public IP address to every instance: ๋ชจ๋ EC2 ์ธ์คํด์ค์ ๊ณต์ธ IP๋ฅผ ๋ถ์ฌํฉ๋๋ค.
- Do not assign a public IP address to any instance: EC2 ์ธ์คํด์ค์ ๊ณต์ธ IP๋ฅผ ๋ถ์ฌํ์ง ์์ต๋๋ค.
# User data
#
#!/bin/bash
node /home/ec2-user/ExampleServer/app.js &
User data์ ์ต์ ์ ํ๋ฆฌ์ผ์ด์ ์์ค ์ ๋ฐ์ดํธ
์ด๋ฒ ์ค์ต์์๋ User data์์ Node.js๋ก ์น ์๋ฒ๋ง ์คํํฉ๋๋ค. ์ค๋ฌด์์ ์ฌ์ฉํ ๋๋ ์ต์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ค๋ฅผ S3 ๋ฒํท์ด๋ Git์์ ๋ฐ์์จ ๋ค ์น ์๋ฒ๋ฅผ ์คํํ๋ฉด ๋ฉ๋๋ค. S3 ๋ฒํท์์ ์์ค๋ฅผ ๋ฐ์ ๋
- S3์ ์ ๊ทผํ ์ ์๋ IAM ์ญํ ์ ์์ฑํ๋ค.
- Auto Scaling์ผ๋ก EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ IAM ์ญํ ์ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ค.
# User data
#!/bin/bash
cd /home/ec2-user
mkdir ExampleServer
chown -R ec2-user.ec2-user ExampleServer
aws s3 sync s3://examples3origin/ExampleServer ExampleServer
node /home/www/ExampleServer/app.js &
Git์์ ์์ค๋ฅผ ๋ฐ์ ๋๋ ๋ค์์ฒ๋ผ ํฉ๋๋ค.
# User data
#
#!/bin/bash
cd /home/ec2-user
git clone https://id:password@github.com/mycompany/ExampleServer.git ExampleServer
chown -R ec2-user.ec2-user ExampleServer
node /home/www/ExampleServer/app.js &
Auto Scaling์ฉ Security Group์ ๋๋ค.
์ง๊ธ๊น์ง ์ค์ ํ ๋ด์ฉ์ ์ด์์ด ์๋์ง ํ์ธํฉ๋๋ค.
EC2 ์ธ์คํด์ค์ ์ฌ์ฉํ ํค๋ฅผ ์ค์ ํฉ๋๋ค.
Auto Scaling ๊ทธ๋ฃน์ ์์ฑํฉ๋๋ค.
- Launch Configuration: ์์์ ์์ฑํ๊ฑฐ๋ ๋ชฉ๋ก์์ ์ ํํ EC2 ์ธ์คํด์ค ์์ฑ ์ต์ ์ ์ด๋ฆ์ด ํ์๋ฉ๋๋ค.
- Group name: Auto Scaling ๊ทธ๋ฃน์ ์ด๋ฆ์
๋๋ค.
ExampleAutoScalingGroup
์ ์ ๋ ฅํฉ๋๋ค. - Group size: ์ต์ด์ EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ ๊ฐ์์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- Network: Auto Scaling ๊ทธ๋ฃน์ด ์์ฑ๋ VPC์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- Subnet: EC2 ์ธ์คํด์ค๊ฐ ์์ฑ๋ ์๋ธ๋ท์
๋๋ค. ๋น ์นธ์ ํด๋ฆญํ๋ฉด ์๋ธ๋ท์ ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค.
Default in ap-northeast-1a
,Default in ap-northeast-1c๋ฅผ
์ ํํฉ๋๋ค. - .
[Advanced Details]
ํญ์ ํด๋ฆญํฉ๋๋ค. - Load Balancing: ELB ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ฌ์ฉํ๋ ์ต์
์
๋๋ค. ์ด ๋ถ๋ถ์ ์ฒดํฌํ๊ณ ๋น ์นธ์ ํด๋ฆญํ๋ฉด ํ์ฌ ์์ฑ๋ ELB ๋ก๋ ๋ฐธ๋ฐ์์ ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค. ์์์ ์์ฑํ ELB ๋ก๋ ๋ฐธ๋ฐ์(
exampleelb
)๋ฅผ ์ ํํฉ๋๋ค. - Health Check Type: Auto Scaling ๊ทธ๋ฃน๋ EC2 ์ธ์คํด์ค์ ํฌ์ค ์ฒดํฌ๋ฅผ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- ELB: ELB ๋ก๋ ๋ฐธ๋ฐ์์์ ํ์ธํ ํฌ์ค ์ฒดํฌ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
- EC2: Auto Scaling ๊ทธ๋ฃน์ด ๊ฐ๋ณ์ ์ผ๋ก EC2 ์ธ์คํด์ค์ ํฌ์ค ์ฒดํฌ๋ฅผ ํฉ๋๋ค.
- Health Check Grace Period: EC2 ์ธ์คํด์ค๊ฐ ๋ถํ ๋์์ ๋(InService) ์ค์ ํ ์๊ฐ๋งํผ ํฌ์ค ์ฒดํฌ๋ฅผ ๋ฏธ๋ฃน๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- Monitoring: CloudWatch ์ธ๋ถ ๋ชจ๋ํฐ๋ง์ ์ฌ์ฉํ๋ ์ต์ ์ ๋๋ค. ์ด ๋ถ๋ถ์ ์ฒดํฌํฉ๋๋ค.
์ค์ ์ด ์๋ฃ๋์์ผ๋ฉด Next: Configure scaling policies ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
EC2 ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ๊ธฐ์ค์ ์ค์ ํฉ๋๋ค.
- Keep this group at its initial size: ์์์ ์ค์ ํ EC2 ์ธ์คํด์ค ๊ฐ์๋ฅผ ์ ์งํฉ๋๋ค.
- Use scaling policies to adjust the capacity of this group: ์ค์ ํ ์ ์ฑ ์ ๋ฐ๋ผ์ EC2 ์ธ์คํด์ค๋ฅผ ์กฐ์ ํฉ๋๋ค. ์ด ๋ถ๋ถ์ ์ ํํฉ๋๋ค.
- Scale between N and N instances: EC2 ์ธ์คํด์ค๋ฅผ ์ต๋ ๋ช ๊ฐ๊น์ง ์ถ๊ฐํ๊ณ , ์ญ์ ํ๋๋ผ๋ ์ต์ ๋ช ๊ฐ๊น์ง ๋จ๊ฒจ๋์ง ์ค์ ํฉ๋๋ค. ์ต์ 1๊ฐ์์ ์ต๋ 3๊ฐ๊น์ง ๋๋ ค๋ณด๊ฒ ์ต๋๋ค. 1๊ณผ 3์ ์ ๋ ฅํฉ๋๋ค.
EC2 ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ๋ ์ค์ ์ ๋๋ค.
- Name: EC2 ์ธ์คํด์ค ์ถ๊ฐ ์ค์ ์ ์ด๋ฆ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- Execute policy when: EC2 ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ ์กฐ๊ฑด์ ๋๋ค. CloudWatch ์๋์ ์ ํํ๊ฑฐ๋ ์๋ก ์์ฑํ ์ ์์ต๋๋ค.
- Take the action: ์ถ๊ฐ ์ค์ ์ด๋ฏ๋ก Add์
๋๋ค. EC2 ์ธ์คํด์ค 1๊ฐ๋ฅผ ์ถ๊ฐํ ๊ฒ์ด๋ฏ๋ก 1์ ์
๋ ฅํ๊ณ , instances๋ฅผ ์ ํํฉ๋๋ค.
- instances: EC2 ์ธ์คํด์ค ๋จ์๋ก ์ถ๊ฐํฉ๋๋ค.
- percent of group: ํ์ฌ Auto Scaling ๊ทธ๋ฃน ์์ ์์ฑ๋ EC2 ์ธ์คํด์ค ๊ฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ถ๊ฐํฉ๋๋ค.
- And then wait: EC2 ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ ๋ค ์ค์ ํ ์๊ฐ ๋์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์งง์ ์๊ฐ ์์ ์ฐ์์ผ๋ก EC2 ์ธ์คํด์ค๊ฐ ์ถ๊ฐ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
EC2 ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํ CloudWatch ์๋์ ์์ฑํฉ๋๋ค.
- Send a notification to: ์ธก์ ์น์ ๋๋ฌํ์ ๋ ์๋ฆผ์ ๋ฐ์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๋ฏ๋ก ์ฒดํฌ๋ฅผ ํด์ ํฉ๋๋ค.
- Whenever: CloudWatch ์ธก์ ์น ์ข ๋ฅ์ ์ธก์ ๊ธฐ์ค์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก Average์ CPU Utilization์ ์ฌ์ฉํฉ๋๋ค.
- Is: ์ธก์ ์น์ ๋๋ค. CPU ์ฌ์ฉ๋ฅ 80% ์ด์์ผ๋ก ์ค์ ํ ๊ฒ์ด๋ฏ๋ก >=์ 80์ ์ ๋ ฅํฉ๋๋ค.
- For at least: ํน์ ์๊ฐ ๋์ ์ค์ ํ ๊ฐ๋งํผ ์ฐ์์ผ๋ก ์ธก์ ์น์ ๋๋ฌํ์ ๋ ์๋์ ๋ฐ์์ํต๋๋ค. 1๋ถ ๋์ 1๋ฒ ๋๋ฌํ์ ๋ ์๋์ ๋ฐ์์ํฌ ๊ฒ์ด๋ฏ๋ก 1์ ์ ๋ ฅํ๊ณ , 1 Minute๋ฅผ ์ ํํฉ๋๋ค.
- Name of alarm: CloudWatch ์๋์ ์ด๋ฆ์ ๋๋ค. AutoScaling-Add-Alarm์ ์ ๋ ฅํฉ๋๋ค.
EC2 ์ธ์คํด์ค๋ฅผ ์ญ์ ํ๋ ์ค์ ์ ๋๋ค.
- Name: EC2 ์ธ์คํด์ค ์ญ์ ์ค์ ์ ์ด๋ฆ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- Execute policy when: EC2 ์ธ์คํด์ค๋ฅผ ์ญ์ ํ ์กฐ๊ฑด์ ๋๋ค. CloudWatch ์๋์ ์ ํํ๊ฑฐ๋ ์๋ก ์์ฑํ ์ ์์ต๋๋ค.
- Take the action: ์ญ์ ์ค์ ์ด๋ฏ๋ก Remove์
๋๋ค. EC2 ์ธ์คํด์ค 1๊ฐ๋ฅผ ์ญ์ ํ ๊ฒ์ด๋ฏ๋ก 1์ ์
๋ ฅํ๊ณ , instances๋ฅผ ์ ํํฉ๋๋ค.
- instances: EC2 ์ธ์คํด์ค ๋จ์๋ก ์ญ์ ํฉ๋๋ค.
- percent of group: ํ์ฌ Auto Scaling ๊ทธ๋ฃน ์์ ์์ฑ๋ EC2 ์ธ์คํด์ค ๊ฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ญ์ ํฉ๋๋ค.
- And then wait: EC2 ์ธ์คํด์ค๋ฅผ ์ญ์ ํ ๋ค ์ค์ ํ ์๊ฐ ๋์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์งง์ ์๊ฐ ์์ ์ฐ์์ผ๋ก EC2 ์ธ์คํด์ค๊ฐ ์ญ์ ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
EC2 ์ธ์คํด์ค๋ฅผ ์ญ์ ํ๊ธฐ ์ํ CloudWatch ์๋์ ์์ฑํฉ๋๋ค.
- Send a notification to: ์ธก์ ์น์ ๋๋ฌํ์ ๋ ์๋ฆผ์ ๋ฐ์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๋ฏ๋ก ์ฒดํฌ๋ฅผ ํด์ ํฉ๋๋ค.
- Whenever: CloudWatch ์ธก์ ์น ์ข ๋ฅ์ ์ธก์ ๊ธฐ์ค์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก Average์ CPU Utilization์ ์ฌ์ฉํฉ๋๋ค.
- Is: ์ธก์ ์น์ ๋๋ค. CPU ์ฌ์ฉ๋ฅ 5% ์ดํ๋ก ์ค์ ํ ๊ฒ์ด๋ฏ๋ก <=์ 5์ ์ ๋ ฅํฉ๋๋ค.
- For at least: ํน์ ์๊ฐ ๋์ ์ค์ ํ ๊ฐ๋งํผ ์ฐ์์ผ๋ก ์ธก์ ์น์ ๋๋ฌํ์ ๋ ์๋์ ๋ฐ์์ํต๋๋ค. 1๋ถ ๋์ 1๋ฒ ๋๋ฌํ์ ๋ ์๋์ ๋ฐ์์ํฌ ๊ฒ์ด๋ฏ๋ก 1์ ์ ๋ ฅํ๊ณ , 1 Minute๋ฅผ ์ ํํฉ๋๋ค.
- Name of alarm: CloudWatch ์๋์ ์ด๋ฆ์ ๋๋ค. AutoScaling-Remove-Alarm์ ์ ๋ ฅํฉ๋๋ค.
Auto Scaling์ด ๋์ํ ๋ ์๋ฆผ์ ๋ฐ๋๋ก ์ค์ ํฉ๋๋ค. [Add notification]
๋ฒํผ์ ํด๋ฆญํ๊ณ , create topic์ ํด๋ฆญํฉ๋๋ค.
- Send a notification to: ์๋ฆผ ์ด๋ฆ์ ๋๋ค. AutoScalingTopic์ ์ ๋ ฅํฉ๋๋ค.
- With these recipients: ์๋ฆผ์ ๋ฐ์ ์ด๋ฉ์ผ ์ฃผ์์ ๋๋ค. SNS ํ ํฝ์ผ๋ก ์ฒ์ ์ฌ์ฉํ๋ ์ด๋ฉ์ผ ์ฃผ์๋ผ๋ฉด ์ธ์ฆ ๋ฉ์ผ์ด ์ ์ก๋ ๊ฒ์ ๋๋ค. ์ด ๋ถ๋ถ์ '26.1 SNS ํ ํฝ๊ณผ ์ด๋ฉ์ผ ๊ตฌ๋ ์์ฑํ๊ธฐ'๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
- Whenever instances: ์๋ฆผ์ ๋ณด๋ด๋ ์กฐ๊ฑด์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
- launch: EC2 ์ธ์คํด์ค๊ฐ ์ถ๊ฐ๋์์ ๋ ์๋ฆผ์ ๋ณด๋ ๋๋ค.
- terminate: EC2 ์ธ์คํด์ค๊ฐ ์ญ์ ๋์์ ๋ ์๋ฆผ์ ๋ณด๋ ๋๋ค.
- fail to launch: EC2 ์ธ์คํด์ค ์ถ๊ฐ์ ์คํจํ์ ๋ ์๋ฆผ์ ๋ณด๋ ๋๋ค.
- fail to terminate: EC2 ์ธ์คํด์ค ์ญ์ ์ ์คํจํ์ ๋ ์๋ฆผ์ ๋ณด๋ ๋๋ค.
์ง๊ธ๊น์ง ์ค์ ํ ๋ด์ฉ์ ์ด์์ด ์๋์ง ํ์ธํฉ๋๋ค.
Auto Scaling ๊ทธ๋ฃน ์์ฑ์ด ์๋ฃ๋์์ต๋๋ค.
Auto Scaling ๊ทธ๋ฃน ๋ชฉ๋ก([AUTO SCALING]
โ [Auto Scaling Groups]
)์ผ๋ก ๋์์์ต๋๋ค.
EC2 ์ธ์คํด์ค ๋ชฉ๋ก([INSTANCES]
โ [Instances]
)์ผ๋ก ์ด๋ํฉ๋๋ค. EC2 ์ธ์คํด์ค ๋ชฉ๋ก์ ๋ณด๋ฉด ELB ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์์ฑํ ๋ ํจ๊ป ์์ฑํ๋ EC2 ์ธ์คํด์ค 2๊ฐ์ Auto Scaling์ด ์์ฑํ EC2 ์ธ์คํด์ค 1๊ฐ๊ฐ ์์ต๋๋ค(EC2 ์ธ์คํด์ค์ ์ธ๋ถ ๋ด์ฉ์์ AMI ID ๋ถ๋ถ์ ๋ณด๋ฉด Auto Scaling์ด ์์ฑํ EC2 ์ธ์ง, ์๋์ง ์ ์ ์์ต๋๋ค).
Auto Scaling์ด ์์ฑํ EC2 ์ธ์คํด์ค์ SSH๋ก ์ ์ํฉ๋๋ค.
์๋น์ค์ ์ฌ์ฉ์๊ฐ ๋์ด๋์ ํธ๋ํฝ์ด ์ฆ๊ฐํ๋ค๊ณ ๊ฐ์ ํ๊ณ , CPU ์ฌ์ฉ๋ฅ ์ ๊ฐ์ ๋ก ์ฌ๋ ค๋ณด๊ฒ ์ต๋๋ค. ํฐ๋ฏธ๋์์ yes > /dev/null
๋ช
๋ น์ ์
๋ ฅํฉ๋๋ค.
yes > /dev/null
์ด ๋ช ๋ น์ ์ ๋ ฅํ ๋ค ๊ฐ๋งํ ๋๊ณ ์ ์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์ฝ 1๋ถ ์ ๋ ์ง๋๋ฉด Auto Scaling ๊ทธ๋ฃน์ ์๋ก์ด EC2 ์ธ์คํด์ค๊ฐ ์ถ๊ฐ๋ฉ๋๋ค.
Auto Scaling ๊ทธ๋ฃน ๋ชฉ๋ก([AUTO SCALING]
โ [Auto Scaling Groups]
)์ผ๋ก ์ด๋ํฉ๋๋ค.
์ด์ ์๋น์ค์ ์ฌ์ฉ์๊ฐ ์ค์ด์ ํธ๋ํฝ์ด ๊ฐ์ํ๋ค๊ณ ๊ฐ์ ํ๊ณ , CPU ์ฌ์ฉ๋ฅ ์ ๋ด๋ ค๋ณด๊ฒ ์ต๋๋ค. yes > /dev/null
๋ช
๋ น์ ์คํํ ํฐ๋ฏธ๋์์ Ctrl+C๋ฅผ ์
๋ ฅํ์ฌ ๋ช
๋ น์ ์ค์ง์ํต๋๋ค. 1~2๋ถ ์ ๋ ์ง๋๋ฉด Auto Scaling ๊ทธ๋ฃน์์ EC2 ์ธ์คํด์ค๊ฐ ์ญ์ ๋ฉ๋๋ค(๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ฅ ๋จผ์ ์ถ๊ฐ๋ EC2 ์ธ์คํด์ค๋ถํฐ ์ญ์ ๋ฉ๋๋ค).
Scaling Policies ํญ์ ํด๋ฆญํ๋ฉด Auto Scaling ์ ์ฑ ์ด ํ์๋ฉ๋๋ค.
์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์คํํ๊ณ ELB ๋ก๋ ๋ฐธ๋ฐ์์ URL์ ์ ์ํฉ๋๋ค(ELB ๋ก๋ ๋ฐธ๋ฐ์์ URL์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ '18.2 EC2 ์ธ์คํด์ค์ ์น ์๋ฒ ์คํํ๊ธฐ'๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค).
์ด์ฒ๋ผ Auto Scaling ๊ทธ๋ฃน์ ์์ฑํ์ฌ EC2 ์ธ์คํด์ค๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ๊ณ ์ญ์ ํ ์ ์์ต๋๋ค.
User data ์คํฌ๋ฆฝํธ๋ฅผ ์์ ํ๋ ค๋ฉด?
EC2 ์ธ์คํด์ค ์์ฑ ์ต์ (Launch Configuration)์ ํ๋ฒ ์์ฑ๋๋ฉด ์์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ User data ์คํฌ๋ฆฝํธ๋ฅผ ์์ ํ๋ ค๋ฉด EC2 ์ธ์คํด์ค ์์ฑ ์ต์ ์ ์๋ก ์์ฑํด์ผ ํฉ๋๋ค.
- ์์ ๋ User data ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ EC2 ์ธ์คํด์ค ์์ฑ ์ต์ ์ ์๋ก ์์ฑํฉ๋๋ค.
- Auto Scaling ๊ทธ๋ฃน์ ์ ํํ๊ณ
[Details]
ํญ์์[Edit]
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. - Launch Configuration์์ ๋ฐฉ๊ธ ์์ฑํ EC2 ์ธ์คํด์ค ์์ฑ ์ต์ ์ ์ ํํฉ๋๋ค.
[Save]
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.- ์ดํ Auto Scaling ๊ทธ๋ฃน์์ ์์ฑ๋๋ EC2 ์ธ์คํด์ค๋ ์์ ๋ User data ์คํฌ๋ฆฝํธ๊ฐ ์ ์ฉ๋ฉ๋๋ค.