์ ๋ชฉ์ด ๊ธธ์๋ค. ๊ทธ๋งํผ ์ด๋ฒ ํฌ์คํ ์ ์ฌ๋ฌ ์ฝ์ง ๋์ ์์ฃผ ์ข์ ์ ๋ณด ๊ธ์ด ๋ ๊ฒ์ด๋ผ ํ์ ํ๊ณ ๊ธ์ ์ ๋๋ค. ์ฌ๋ฌ ๊ธ๋ค์ ์ฐพ์๋ณด์์ง๋ง, ๋งค๋ด์ผ์กฐ์ฐจ๋ ์ด๋ฒ ํฌ์คํ ๋ณด๋ค ์ฝ์ง๋ ์์ ๊ฒ์ด๋ผ ์๋ถํ๋ค.
๋งค๋ด์ผ ๋ฒ์ญ๋ ๊ทธ๋ค์ง ๊น๋ํ์ง ์๊ณ , ์ด๋ฏธ AWS ์๋น์ค๋ฅผ ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ค์๊ฒ ์ ํฉํ๊ธฐ ๋๋ฌธ์ ์ดํดํ๊ธฐ ์ฝ์ง๊ฐ ์๋ค. ๊ฒ๋ค๊ฐ ์ ๋ฒ ์ฝ์ง์ ํ๋ค๊ฐ ์์๋ธ ์์ฃผ ์ฌ์ด ๋ฐฉ๋ฒ์ด๊ธฐ์ ๊ฐ์น๊ฐ ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
๋จผ์ , AWS EC2 ์ธ์คํด์ค ์์ฑ์ด๋ ๊ธฐ๋ณธ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๋ค๊ณ ๊ฐ์ ํ๊ฒ ๋ค. EC2 ์ธ์คํด์ค ์์ฑ๊น์ง๋ ๋ง์ ๋ธ๋ก๊ทธ์์ ๋ค๋ฃจ๊ณ ์์ผ๋ ๊ตฌ๊ธ๋งํด์ ์ ์ผ ๋จผ์ ๋จ๋ ๊ธ์ ๋งํฌํ๋ค.
์๋ง์กด์ AWS ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ฒ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ด๋ ๊ฒ EC2๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค. ์ฝ๊ฒ ๋งํด ๊ตฌ๋ฆ ๊ฐ์(ํด๋ผ์ฐ๋) ์์์ ๋ด ์ปดํจํฐ(์ธ์คํด์ค)๋ฅผ ๋๊ณ ์ฐ๊ฒ ๋ค๋ ๊ฒ์ด๋ค.
์ฒ์์ ์ 750์๊ฐ์ t2.micro ์ ํ์ ์ธ์คํด์ค๋ฅผ ํ๋ฆฌ ํฐ์ด(๋ฌด๋ฃ)๋ก ์ฌ์ฉํ ์ ์๋๋ฐ, ๋ณ ์๊ฐ์์ด ์ผ๋๊ณ ์ฐ๋ค๋ณด๋ฉด ๊ธ๋ฐฉ ๋ฌด๋ฃ ์ฌ์ฉ๋์ ๋ค ์ฐ๊ฒ ๋๋ค.
๋ฌด๋ฃ ์ฌ์ฉ๋์ ๋ค ์ฐ๊ณ ๊ณผ๊ธ์ด ์์๋๊ณ ๋์์ผ, '์์ด๊ณ ์ง์ ์๊ปด ์ธ ๊ฑธ...'ํ๋ ์๊ฐ์ด ๋ค๊ฒ ๋ง๋ จ์ด๋ค. ์ด๋ฏธ ์ ๋ช๋ง๋ฆฌ ์์์ง๋ง ์์ง ์ธ์๊ฐ์ ๊ณ ์น ์ ์๋ค. ์ง๊ธ๋ถํฐ๋ผ๋ ๋์ ๋ ๋ด๋ฉด ๋์ง ์๊ฒ ๋๊ฐ?
๊ป๋ค ์ผฐ๋ค ํ๋ฉด ๊ณผ๊ธ์ด ๋ ๋์ง ์์๊น?
๋ง๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ์ฉํด๋ณธ ๋ถ์ ์๊ฒ ์ง๋ง ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ด EC2 ์ธ์คํด์ค ๋ฉ๋ด์์ ๋ง์ฐ์ค ์ฐํด๋ฆญํด์ ์๋์ ๊ฐ์ด ์ธ์คํด์ค๋ฅผ ์ค์งํ๊ณ , ๋ค์ ์์ํ๋ ์ผ์ผ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ง๊ธ๋ถํฐ ์๊ฐํ๋ค. ์์ฝ๋ ์๊ฐ์๋ง ์ธ์คํด์ค๊ฐ ์๋ํ๋๋ก ํด๋ณด์. AWS Instance Scheduler๋ฅผ ์ฌ์ฉํ ํ์ด๋จธ๋ฅผ ํตํ ์ธ์คํด์ค ์๋ ์์/์ค์ง ์์ํ๋ค.
(1) AWS Instance Scheduler ์์ํ๊ธฐ : AWS CloudFormation ์ธํ ํ๊ธฐ
AWS ์ธ์คํด์ค ์ค์ผ์ค๋ฌ์ ์๋ํ๋ AWS CloudFormation ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ฉด ์ค์ผ์ค์ ๋ฐ๋ผ ์ธ์คํด์ค๋ฅผ ์ค์งํ๊ณ ์์ํ ์ ์๋ค. ์๋์ ์์๋ฅผ ๋ฐ๋ผ ์ฐจ๊ทผ์ฐจ๊ทผ ์งํํด๋ณด์.
1. AWS ๊ด๋ฆฌ ์ฝ์(AWS Management Console)์ ๋ก๊ทธ์ธ
2. ์๋์ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ AWS CloudFormation์ ํ ํ๋ฆฟ ์ค๋น ํ๋ฉด์ผ๋ก ์ด๋
3. ํธ์๋ฅผ ์ํด ์ฐ์ธก ์๋จ์ ์ง์ญ์ '์์์ํํ์(์์ธ)'๋ก ๋ณ๊ฒฝ
(โป์ฃผ์: ๋ณธ์ธ์ด ์ธ์คํด์ค๋ฅผ ์์ฑํด์ ์ฌ์ฉํ๊ณ ์๋ ์ง์ญ์ผ๋ก ๋ณ๊ฒฝํ์๋ผ)
4. '์คํ ์์ฑ' ํ๋ฉด์์ ๊ธฐ๋ณธ๊ฐ ๊ทธ๋๋ก ๋๊ณ ๋ค์ ๋ฒํผ ํด๋ฆญ
5. [์คํ ์ด๋ฆ]์ Ec2instanceScheduler๋ฅผ ์ ๋ ฅ
6. [Default Time Zone]์์ ๋ณธ์ธ์ EC2 ํ๊ฒฝ์ ๋ง๋๋ก UTC ์กฐ์ (์: Asia/Seoul)
7. [๋น๋(Frequency)]์์ ์ค์ผ์ค๋ฌ๋ฅผ ์คํํ ๋น๋๋ฅผ ๋ถ ๋จ์๋ก ์ ํ(์: 5๋ถ)
8. [Enable CloudWatch Logs]๋ฅผ Yes๋ก ๋ณ๊ฒฝ
9. [Started tags]์ state=started๋ฅผ ์ ๋ ฅ
10. [Stopped tags]์ state=stopped๋ฅผ ์ ๋ ฅ
11. ๋๋จธ์ง ๊ธฐ๋ณธ๊ฐ๋๋ก ๋๊ณ ๋ค์ ๋ฒํผ ํด๋ฆญ
12. '2๋จ๊ณ: ์คํ ์ธ๋ถ ์ ๋ณด ์ง์ ' ํ๋ฉด์์ ๋๋จธ์ง ๊ธฐ๋ณธ๊ฐ๋๋ก ๋๊ณ ๋ค์ ๋ฒํผ ํด๋ฆญ
13. '์คํ์ต์ ๊ตฌ์ฑ' ํ๋ฉด์์ ๋๋จธ์ง ๊ธฐ๋ณธ๊ฐ๋๋ก ๋๊ณ ๋ค์ ๋ฒํผ ํด๋ฆญ
13. [AWS CloudFormation์์ IAM ๋ฆฌ์์ค๋ฅผ ์์ฑํ ์ ์์์ ์น์ธํฉ๋๋ค.] ์ฒดํฌํ๊ณ [์คํ ์์ฑ] ๋ฒํผ ํด๋ฆญ
CloudFormation ์คํ์ด ์์ฑ ์ค(CREATE_IN_PROGRESS)์ด๋ค.
์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ธฐ๋ค๋ ค์ฃผ์. ์๋ฃ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ด(CREATE_COMPLETE) ๋ณด์ผ ๊ฒ์ด๋ค.
์ด์ , ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ผ์ค์ ๋ง์ถฐ ์ธ์คํด์ค์ ์ ํธ๋ฅผ ๋ณด๋ผ ์ค๋น๊ฐ ๋์๋ค. ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ์.
(2) DynamoDB์์ ์ค์ผ์ค ๊ด๋ จ ํ ์ด๋ธ ํ์ธํ๊ธฐ
(1)๋จ๊ณ์์ EC2 Instance Scheduler ์์ฑ์ด ์๋ฃ๋๋ฉด, ์๋์ผ๋ก DynamoDB์ ํด๋น ์ค์ผ์ค๋ฌ ๊ด๋ จ ์ ๋ณด๋ค์ด ์ ๋ ฅ๋๋ค. ์ด ๊ธฐ๋ณธ ์ ๋ณด๋ค๋ก๋ ์ํ๋ ์๊ฐ๋์ ํค๊ณ ๋ ์ ์์ ๊ฒ์ด๋ค.
๋จผ์ ๋์ ์๋ฆฌ๋ฅผ ํ์ ํ๊ธฐ ์ํด DB๋ฅผ ๋จผ์ ์ดํด๋ณด๋๋ก ํ์.
1. DynamoDB ์๋น์ค ๋ค์ด๊ฐ๊ธฐ
(ํ์ ์ํฉ์ ๋ง์ถฐ region์ด ap-northeast-2๋ก ๋์ด์์ผ๋ ์๋ ๋งํฌ ๋ง๊ณ , ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ๋ค์ด๊ฐ๋ ๋๋ค.)
2. DynamoDB-์ข์ธก๋ฉ๋ด-ํ ์ด๋ธ-Ec2instanceScheduler-ConfigTable-...์ ํ-ํญ๋ชฉํญ ๋ค์ด๊ฐ๊ธฐ
3. type์ด schedule์ธ ๊ฒ ์ค 'running'์ ๋๋ฌ ํ์ธํ๋ค. ์ด ๋ ์์ ํ ์คํธ ์ฉ์ผ๋ก ์ฌ์ฉํ ๊ฒ์ด๋ค.
(3) EC2 ์ธ์คํด์ค์ ์ค์ผ์ค๋ฌ ์ ์ฉํ๊ธฐ
1. ์ฌ์ฉ์ค์ธ(์ค์ผ์ค๋ฌ ์ ์ฉํ๋ ค๋) ์ธ์คํด์ค ์ค์ง
์ฐ์ ์ํํ ํ ์คํธ๋ฅผ ์ํด ์ฌ์ฉํ๊ณ ์๋ ์ธ์คํด์ค๋ฅผ ์ค์ง์ํค์.
2. EC2 ์ธ์คํด์ค ํ๊ทธ ๊ด๋ฆฌ ํ๋ฉด ์ง์
3. [ํ๊ทธ ์ถ๊ฐ] ๋ฒํผ ํด๋ฆญ
4. ํค(Key)์ Schedule, ๊ฐ์ running ์ ๋ ฅ
5. [์ ์ฅ] ๋ฒํผ ํด๋ฆญ
์ฌ๊ธฐ๊น์ง ๋ง์ณค๋ค๋ฉด, ์ด์ ์์ ์์ฑ๋ ์ค์ผ์ค๋ฌ๊ฐ ์ค์ ๋ frequency(๋น๋)๋ง๋ค(e.g.5๋ถ) ์ ํธ๋ฅผ ๋ฐ์์ํค๊ณ , ๊ทธ ์ ํธ์ ๋ฐ๋ผ ์์ ํ๊ทธ์์ ์ค์ ๋ ๊ฐ์ ํด๋นํ๋ schedule์ ํธ์ถํ๋ค.
์ฌ๊ธฐ์ running์ ์๊ฐ ์ค์ ์ด ์๊ธฐ ๋๋ฌธ์ ํญ์ ์ธ์คํด์ค๋ฅผ ์คํ์ํค๊ฒ ๋๋ค. ์์ ๊ณผ์ ์ ์ ๋๋ก ๋ง์ณค๋ค๋ฉด, ํธ์ถ ๋น๋์ ํด๋นํ๋ ์๊ฐ๋งํผ ๊ธฐ๋ค๋ ค๋ณด์. ์ด๋ ๊ฒ ์ธ์คํด์ค๊ฐ ์คํ๋ ๊ฒ์ด๋ค.
์ ์ด์ ๊ฑฐ์ ๋๋๊ฐ๋ค. ๋ง์ง๋ง์ผ๋ก ๊ทธ๋ด์ธํ ์ค์ผ์ค์ ์ค์ ํด๋ณด์.
(4) ํน์ ์๊ฐ๋์๋ง(8:00-16:00) ์๋ํ๋๋ก ์ ์ฉํ๊ธฐ
(2)๋จ๊ณ์ DynamoDB๋ก ๋ค์ ๋ค์ด๊ฐ์. period type์ 'office-hours' ํญ๋ชฉ์ ๋ณด๋ฉด ์์์ผ๋ถํฐ ๊ธ์์ผ๊น์ง ์์นจ 9์๋ถํฐ ์คํ 5์๊น์ง๋ผ๋ ์๊ฐ์ผ๋ก ์กํ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด ๋ถ๋ถ์ ์ง์ ๊ตฌ๋ฌธ์ผ๋ก ์์ ํ๋ ค๋ฉด, AWS CLI์ค์น๋ฅผ ํด์ผํ๊ณ , ์๊ฒฉ์ฆ๋ช ์ค์ ๊ณผ IAM ์ค์ ์ ์ํํด์ผ ํ๋ฉฐ, scheduler cli ๊ตฌ๋ฌธ์ ๋งค๋ด์ผ์ ๋ณด๋ฉด์ ์ง์ ์ ๋ ฅํด์ ์์ ํด์ผ ํ๋ค.
์ด ๋ถ๋ถ์ ์ง์ ํด๋ดค๋๋ฐ, ํธํ์ง๊ฐ ์๋ค. ์๋ ๋ถํธํ๋ค. ๊ทธ๋์ ์ด๊ธ์๋ค๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ ค๊ณ ํ๋ค.
์ด ํญ๋ชฉ๋ค์ ๋ณต์ฌํด์ ์ด์ฉํ๋ฉด ์์ฃผ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์๋ค. ํ๋ฒ ๋ฐ๋ผํด๋ณด์. ๋ชฉํ๋ ์์๋ก ์ฃผ์์์ฅ์ด ๊ฐ์ฅํ๋ ํ์ผ ์ค ๊ฑฐ๋์๊ฐ ์๋ค๋ก ์ฌ์ ๋ฅผ ๋์ด ์์นจ 8:00์ ์ผ์ง๊ณ , ์คํ 4์์ธ 16:00์ ๊บผ์ง๋ ์ค์ผ์ค์ ์ค์ ํด๋ณด๊ฒ ๋ค.
1. DynamoDB ํญ๋ชฉ ํญ์์ ๊ธฐ์กด period 'office-hours' ์ฒดํฌ
2. ๋ฉ๋ด์์ [์์ ]-[๋ณต์ฌ]
3. ์๋์ ๊ฐ์ด period ํ์
์ stock-market-time ๋ง๋ค๊ธฐ
(weekdays๋ ์ซ์๋ก 0-4์ ๊ฐ์ด ์ ์ด๋ ๋๋ค.)
4. schedule ํ์ ์ 'uk-office-hours' ํญ๋ชฉ ๋ณต์ฌ ํ ์๋์ ๊ฐ์ด ํธ์ง (์ด๋ฆ stock-market)
5. (3)์์ ์ํํ EC2 ํ๊ทธ ๊ด๋ฆฌ์์ Schedule์ ํค์ ๊ฐ์ stock-market์ผ๋ก ๋ณ๊ฒฝํ์ฌ ์ ์ฅ
์, ์ด์ ๋ชจ๋ ์ค์ ์ด ์๋ฃ๋์๋ค. ์ด์ ์ฌ๋ฌ๋ถ์ EC2 ์ธ์คํด์ค๋ ์-๊ธ ์์นจ 8์์์ ์คํ 4์ ์ฌ์ด์๋ง ์ผ์ ธ์๊ณ , ๊ทธ ์ธ์ ์๊ฐ์๋ ๊บผ์ ธ์์ ๊ฒ์ด๋ค. ๋๋ถ์ด ์ฌ๋ฌ๋ถ๋ค์ ์ง๊ฐ์ด ์์์ง๋ ๊ฒ์ ๋ฐฉ์งํด์ค ๊ฒ์ด๋ค.
์ด ๊ธ์ด ๋์์ด ๋์ จ๋ค๋ฉด, ํํธ ํด๋ฆญ ๋ถํ๋๋ฆฌ๊ณ , ๊ด๊ณ ํด๋ฆญ์ ๋ธ๋ก๊ทธ ์ด์์์๊ฒ ํฐ ๋์์ด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๊ธ์ ์ธ์ ๋ ํ์์ ๋๋ค.
๋๊ธ