[AWS] Amazon EventBridge Scheduler์ AWS Lambda ์ฌ์ฉํ๊ธฐ
EventBridge Scheduler๋ฅผ ์ด์ฉํด ์ ๊ธฐ์ ์ผ๋ก ๋๋ ํน์ ์ด๋ฒคํธ์ ๋ฐ๋ผ Lambda๋ฅผ ํธ์ถํ๊ณ , ํธ์ถ๋ Lambda๊ฐ ๋๋ฐ์ด์ค๋ฅผ ์ ์ดํ๋ ๋ก์ง์ ๊ตฌ์ฑํด์ผํ๋ค.
Amazon EventBridge Scheduler์ AWS Lambda์ ๋ํด ์์๋ณด๊ณ , ํ์ฉํ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ฒ ๋ค.
AWS Lambda๋ ?
AWS์์ ์ ๊ณตํ๋ ์๋ฒ๋ฆฌ์ค ์ปดํจํ ์๋น์ค
๐น ์๋ฒ๋ฆฌ์ค ์ปดํจํ : ์๋ฒ ์ธํ๋ผ ๊ด๋ฆฌ ํ์์์ด ์ฝ๋ ์คํ์๋ง ์ง์คํ ์ ์๊ฒ ํด์ฃผ๋ ํด๋ผ์ฐ๋ ์ปดํจํ
- ์์
๋จ์ํ ๐ Python, Node.js ๋ฐํ์ ์ฌ์ฉํด์ ํจ์ ์์ฑ
- ํด์๋ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ์์ ๊ธฐ๋ณธ ์ ๊ณต ์ฝ๋ ํธ์ง๊ธฐ์์ ํจ์ ์ฝ๋ ์ง์ ํธ์ง ๊ฐ๋ฅ
- Java ๋ฐ C#
- ์ปดํ์ผ๋ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ก์ปฌ ๋น๋ ๋จธ์ ์ ๋ฐฐํฌ ํจํค์ง๋ฅผ ์์ฑํ์ฌ Lambda์ ์ ๋ก๋
Amazon EventBridge Scheduler๋ ?
Amazon EventBridge์ ๊ธฐ๋ฅ ์ค ํ๋๋ก, ํน์ ์๊ฐ ๊ฐ๊ฒฉ์ด๋ ์์ฝ๋ ์๊ฐ์ ๋ฐ๋ผ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๊ณ , ์ด๋ฅผ ํตํด ๋ค์ํ AWS ์๋น์ค์ ํตํฉํ ์ ์๊ฒ ํด์ฃผ๋ ์๋น์ค ๐ ์๊ฐ ๊ธฐ๋ฐ์ ์์ ์๋ํ ๊ฐ๋ฅ
๐ท ์ฃผ์ ๊ธฐ๋ฅ
- ์๊ฐ ๊ธฐ๋ฐ ์ด๋ฒคํธ ์์ฑ
- ์ ํด์ง ์๊ฐ์ ์ด๋ฒคํธ ์์ฑํ์ฌ ๋ค์ํ AWS ์๋น์ค๋ก ์ ์ก
- Cron ํํ์์ด๋ ๊ณ ์ ๋ ์๊ฐ ๊ฐ๊ฒฉ(rate expressions) ์ฌ์ฉํด ์ผ์ ์ค์ ๊ฐ๋ฅ
- ์๋ฒ๋ฆฌ์ค ์ํคํ
์ณ
- ์๋ฒ ๊ด๋ฆฌ ํ์ X
- AWS Lambda์ ํจ๊ป ์ฌ์ฉํด ์๋ฒ๋ฆฌ์ค ๋ฐฉ์์ผ๋ก ์ฝ๋ ์คํ
- ๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น
- Amazon CloudWatch๋ฅผ ํตํด ์ค์ผ์ค๋ ์ด๋ฒคํธ์ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น ์ง์
Amazon EventBridge Scheduler์ ํจ๊ป Lambda ์ฌ์ฉํ๊ธฐ
Lambda์ ํจ๊ป EventBridge Scheduler๋ฅผ ์ค์ ํ๋ ๊ฒฝ์ฐ Lambda ํจ์๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ํธ์ถ
EventBridge๋ฅผ ์ฌ์ฉํ์ฌ Lambda ํจ์๋ฅผ ์์ฝํ๋ ์ค์ต์ ํตํด ์ดํดํด๋ณด์.
์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
- Lambda ํจ์ ์์ฑ
- ๊ท์น ๋ฐ ์ผ์ ์์ฑ
- ์ฑ๊ณต ํ์ธ
- ๋ฆฌ์์ค ์ ๋ฆฌ
๐ท Lambda ํจ์ ์์ฑ
- AWS Lambda ์ฝ์์ ์ด์ด ํจ์ ์์ฑ
๐ "์๋ก ์์ฑ"์ ์ ํํ๊ณ , Lambda ํจ์์ ์ด๋ฆ์ ์ ๋ ฅํ๋ค. ๋๋จธ์ง ์ต์ ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋์๊ณ , ํจ์ ์์ฑ ์ ํ
- "์ฝ๋" ํญ์์ ์ฝ๋ ์์ ํ Deploy ์ ํ์ ํ๋ฉด ์ ๋ฐ์ดํธ๋์๋ค๋ ์๋ฆผ์ด ๋ฌ๋ค.
๐ท ๊ท์น ์์ฑ ๋ฐ ์ผ์ ์์ฑ
- Amazon EventBridge ์ฝ์์์ "๊ท์น" ์ ํ
- "๊ท์น ์์ฑ"์ ์ ํํด ๊ท์น์ ๋ํ ์ด๋ฆ๊ณผ ์ค๋ช ์ ๋ ฅ
- "๊ท์น ์ ํ"์ "์ผ์ "์ผ๋ก ์ ํ
๐ "EventBridge Scheduler์์ ๊ณ์" ํด๋ฆญ ์ ํด๋น ์ฝ์๋ก ์ง์
๐ "๊ท์น ์์ฑ์ผ๋ก ์ด๋" ํด๋ฆญ ์ ์ผ์ ์ ์ ๊ฐ๋ฅ
๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ค์ผ์ค๋ง ์ค์ ์ ํ ์ ์๋ค.
1. "๊ท์น ์์ฑ์ผ๋ก ์ด๋" ํด๋ฆญ ์
2. "EventBridge Scheduler์์ ๊ณ์" ํด๋ฆญ ์
- ์ผ์ ์ต์
์ 2๊ฐ์ง ์กด์ฌ
- ์ผํ์ฑ ์ผ์ : ์ฌ์ฉ์๊ฐ ์ง์ ํ๋ ๋ ์ง์ ์๊ฐ์ ํ ๋ฒ๋ง ๋์์ ๊ฐ์ ์ ์ผ๋ก ํธ์ถ
- ๋ฐ๋ณต ์ผ์ : cron ํํ์ ๋๋ rate ํํ์์ ์ฌ์ฉํด ์ง์ ํ ์๋๋ก ๋์์ ๊ฐ์ ์ ์ผ๋ก ํธ์ถ
๐ ์ผ์ ์๊ฐ์ ์ ๋๋ก ๋์ํ๋์ง ๋นจ๋ฆฌ ํ์ธํ๊ธฐ ์ํด 5๋ถ๋ง๋ค ์คํ๋๊ฒ๋ ์ค์ = rate ๊ธฐ๋ฐ ์ผ์
๐ "๋ค์" ํด๋ฆญ ์ ๋์ ์ ํ
- Lambda ํจ์๋ฅผ ์ ํํ๊ณ ํจ์๋ ์ด์ ์ ์์ฑํ๋ LogScheduledEvent_sbTest ์ ํ
๐ ๊ทธ ๋ค์ ์ ํ์ฌํญ๋ค์ ๊ทธ๋ฅ ์๋์ง ์๊ณ ๋์ด๊ฐ ํ ์ผ์ ์์ฑ
๋๋จธ์ง ๊ท์น ์์ฑ์ ๊ท์น์์ฑ(AWS CLI) ์ ์ฐธ๊ณ ํด์ ์งํ
๐ท ์ฑ๊ณต ํ์ธ
- CloudWatch ์ฝ์์์ "๋ก๊ทธ"๋ฅผ ์ ํํ๊ณ , "๋ก๊ทธ ๊ทธ๋ฃน" ์ด๋ฆ์ /aws/lambda/LogScheduledEvent_sbTest๋ก ์ ํํ๋ฉด ์ ๊ณต๋ ๋ฐ์ดํฐ ํ์ธ ๊ฐ๋ฅ
๐ 5๋ถ๋ง๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๐ท ๋ฆฌ์์ค ์ ๋ฆฌ
- EventBridge ๊ท์น ์ญ์
- Lambda ํจ์ ์ญ์
๋ค์์๋ ์ค์ ๋ก ์ด๋ป๊ฒ ํ์ฉ๋๋์ง ์ ๋ฆฌํด๋ณด๊ฒ ๋ค.
์ฐธ๊ณ ์๋ฃ
https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/with-eventbridge-scheduler.html
https://docs.aws.amazon.com/ko_kr/eventbridge/latest/userguide/eb-run-lambda-schedule.html