2023. 10. 1. 20:13ใAWS
โ๏ธ ๊ฐ์
์ํ ์ค์ธ ๊ตฌ์ถ ํ๋ก์ ํธ์์ ๋น์ฉ ์ ๊ฐ์ ๋ชฉ์ ์ผ๋ก ๊ธธ์๋ ์ถ์ ์ฐํด ๊ฐ EC2, RDS๋ฅผ ์ค์งํ๊ธฐ๋ก ํ๋ค.
์ผ๋ถ ์์คํ ์ ์ ์ธํ๊ณ EC2์ RDS๋ฅผ ์ค์ง ์ํ๋ก ๋ณ๊ฒฝํด์ผ ํ๋๋ฐ ์๋์ผ๋ก ํ๋ํ๋ ์์ ํ๊ธฐ์๋ ๋์๊ฐ ๋ง์ ์ผ๊ด๋ก ์ ์ฉ์ํค๊ธฐ ์ํด EventBridge Scheduler๋ฅผ ์ด์ฉํ์๋ค.
1. IAM Role ์์ฑ
Eventbridge Scheduler์ ์ ์ฉํ IAM Role์ ์์ฑํ๋ค. EC2, RDS ์ธ์คํด์ค๋ฅผ ์ค์ง/์์ํ๋ ๊ถํ์ ๊ฐ์ง๋ค.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"rds:StopDBInstance",
"ec2:StopInstances",
"rds:StartDBInstance"
],
"Resource": "*"
}
]
}
Trust Relationship์ ์๋ ์ฐธ์กฐ.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "scheduler.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
2. EventBridge Schedule ์์ฑ
์ผํ์ฑ ์ด๋ฒคํธ์ด๊ธฐ ๋๋ฌธ์ One-time schedule์ ์ด์ฉํ์ฌ ์ค์ผ์ค์ ์์ฑํ๋ค.
EventBridge๊ฐ ์ ํด์ง ์๊ฐ์ ํธ์ถํ API๋ฅผ ์ ํํ๋ค. EC2์ StopInstances API๋ฅผ ์ ํํ๋ค. RDS์ ๊ฒฝ์ฐ, StopDBInstance API๋ฅผ ์ ํํ๋ค.
target์ ์ ํํ๋ฉด ๋จ๋ input window์ ์ค์ง์์ผ์ผ ํ๋ ์ธ์คํด์ค ๋ชฉ๋ก์ ์์ ๊ฐ์ด ์ ๋ ฅํ๋ค. RDS์ ๊ฒฝ์ฐ์๋ ์ธ์คํด์ค ๋ชฉ๋ก์ผ๋ก ์ ๋ ฅ์ด ๋ถ๊ฐ๋ฅํ์ฌ RDS ๋์๋งํผ EventBridge Scheduler๋ฅผ ๋ง๋ค์ด์ฃผ์ด์ผ ํ๋ค.๐คฆโ๏ธ
1์์ ์์ฑํ IAM Role์ ์ฐ๊ฒฐํ๋ค.
์ํ๋ ์๊ฐ์ EC2 ์ธ์คํด์ค๋ฅผ ์ผ๊ด๋ก ์ค์งํ๋ ์ค์ผ์ค๋ฌ ๋ง๋ค๊ธฐ ์ฑ๊ณต ๐
๐ก ๋๋ ์
RDS ์ธ์คํด์ค๋ฅผ StopDBInstance API/StartDBInstance API๊ฐ ์ธ์คํด์ค ๋ชฉ๋ก์ด ์๋ ๋จ์ผ ์ธ์คํด์ค๋ง ์ ๋ ฅ์ด ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ RDS ์ธ์คํด์ค ๋์๋ง๋ค Scheduler๋ฅผ ๋ง๋ค์ด์ผ ํ์ง๋ง, ์๋ฒฝ์ ์ผ์ด๋์ ์๋์ผ๋ก ์์ ํ๊ณ ์ถ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฆฌ ์ค์ผ์ค๋ฌ๋ฅผ ๋ง๋ค์ด ์ผ์ฐ ๋งค ๋ง๊ธฐ๋ฅผ ์ ํํ๋ค..๐ ์ํ๋ ์๊ฐ์ RDS ์ธ์คํด์ค๋ฅผ ์ผ๊ด๋ก ์ค์ง์ํค๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ์๊ณ ์ถ๋ค..!
์ถ๊ฐ๋ก, Instance Scheduler on AWS๋ฅผ ์ด์ฉํ์ฌ ์ ์ฉํด๋์ daily ์ค์ผ์ค๋ฌ๋ฅผ ์ถ์ ์ฐํด ๊ธฐ๊ฐ ๋์์ ๋๊ธฐ ์ํด EC2, RDS์ ์ ์ฉํด ๋์ Schedule ํ๊ทธ๋ ์ ์ ๋ณ๊ฒฝํด ๋์๋ค. ๋ค๋ฅธ ์ค์ผ์ค๋ฌ๋ฅผ ๊ธฐ์กด์ ์ ์ฉํด ๋์ ๊ฒฝ์ฐ๋ ํด๋น ์ค์ผ์ค๋ฌ๊ฐ ์ํ๋์ง ์๋๋ก ์ฃผ์ํ์. Instance Scheduler on AWS๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋ ํฌ์คํ ์ฐธ๊ณ .