AWS

[AWS] Amazon EventBridge Scheduler์™€ AWS Lambda ์‚ฌ์šฉํ•˜๊ธฐ

soogoori 2024. 7. 10. 13:05

 

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 ํ•จ์ˆ˜๋ฅผ ์˜ˆ์•ฝํ•˜๋Š” ์‹ค์Šต์„ ํ†ตํ•ด ์ดํ•ดํ•ด๋ณด์ž.

์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

  1. Lambda ํ•จ์ˆ˜ ์ƒ์„ฑ
  2. ๊ทœ์น™ ๋ฐ ์ผ์ • ์ƒ์„ฑ
  3. ์„ฑ๊ณต ํ™•์ธ
  4. ๋ฆฌ์†Œ์Šค ์ •๋ฆฌ

๐Ÿ”ท Lambda ํ•จ์ˆ˜ ์ƒ์„ฑ

  • AWS Lambda ์ฝ˜์†”์„ ์—ด์–ด ํ•จ์ˆ˜ ์ƒ์„ฑ

๐Ÿ‘‰ "์ƒˆ๋กœ ์ž‘์„ฑ"์„ ์„ ํƒํ•˜๊ณ , Lambda ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ๋‹ค. ๋‚˜๋จธ์ง€ ์˜ต์…˜์€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋‘์—ˆ๊ณ , ํ•จ์ˆ˜ ์ƒ์„ฑ ์„ ํƒ

 

  • "์ฝ”๋“œ" ํƒญ์—์„œ ์ฝ”๋“œ ์ˆ˜์ • ํ›„ Deploy ์„ ํƒ์„ ํ•˜๋ฉด ์—…๋ฐ์ดํŠธ๋˜์—ˆ๋‹ค๋Š” ์•Œ๋ฆผ์ด ๋œฌ๋‹ค.

index.mjs -> index.js๋กœ ๋ณ€๊ฒฝ


๐Ÿ”ท ๊ทœ์น™ ์ƒ์„ฑ ๋ฐ ์ผ์ • ์ƒ์„ฑ

  • Amazon EventBridge ์ฝ˜์†”์—์„œ "๊ทœ์น™" ์„ ํƒ

  • "๊ทœ์น™ ์ƒ์„ฑ"์„ ์„ ํƒํ•ด ๊ทœ์น™์— ๋Œ€ํ•œ ์ด๋ฆ„๊ณผ ์„ค๋ช… ์ž…๋ ฅ
  • "๊ทœ์น™ ์œ ํ˜•"์€ "์ผ์ •"์œผ๋กœ ์„ ํƒ

๐Ÿ‘‰ "EventBridge Scheduler์—์„œ ๊ณ„์†" ํด๋ฆญ ์‹œ ํ•ด๋‹น ์ฝ˜์†”๋กœ ์ง„์ž…

๐Ÿ‘‰ "๊ทœ์น™ ์ƒ์„ฑ์œผ๋กœ ์ด๋™" ํด๋ฆญ ์‹œ ์ผ์ • ์ •์˜ ๊ฐ€๋Šฅ 


 

๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์Šค์ผ€์ค„๋ง ์„ค์ •์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1. "๊ทœ์น™ ์ƒ์„ฑ์œผ๋กœ ์ด๋™" ํด๋ฆญ ์‹œ

5๋ถ„๋งˆ๋‹ค ์ด๋ฒคํŠธ ๋ฐœ์ƒ
๋Œ€์ƒ ์œ ํ˜• ์„ ํƒ ๐Ÿ‘‰ Lambda ํ•จ์ˆ˜

 

2. "EventBridge Scheduler์—์„œ ๊ณ„์†" ํด๋ฆญ ์‹œ

 

  • ์ผ์ • ์˜ต์…˜์€ 2๊ฐ€์ง€ ์กด์žฌ
    • ์ผํšŒ์„ฑ ์ผ์ • : ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•˜๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์— ํ•œ ๋ฒˆ๋งŒ ๋Œ€์ƒ์„ ๊ฐ„์ ‘์ ์œผ๋กœ ํ˜ธ์ถœ
    • ๋ฐ˜๋ณต ์ผ์ • : cron ํ‘œํ˜„์‹ ๋˜๋Š” rate ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•ด ์ง€์ •ํ•œ ์†๋„๋กœ ๋Œ€์ƒ์„ ๊ฐ„์ ‘์ ์œผ๋กœ ํ˜ธ์ถœ

๐Ÿ‘‰ ์ผ์ • ์‹œ๊ฐ„์— ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ๋นจ๋ฆฌ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด 5๋ถ„๋งˆ๋‹ค ์‹คํ–‰๋˜๊ฒŒ๋” ์„ค์ • = rate ๊ธฐ๋ฐ˜ ์ผ์ •

๐Ÿ‘‰ "๋‹ค์Œ" ํด๋ฆญ ์‹œ ๋Œ€์ƒ ์„ ํƒ 

 

 

  • Lambda ํ•จ์ˆ˜๋ฅผ ์„ ํƒํ•˜๊ณ  ํ•จ์ˆ˜๋Š” ์ด์ „์— ์ƒ์„ฑํ–ˆ๋˜ LogScheduledEvent_sbTest ์„ ํƒ

๐Ÿ‘‰ ๊ทธ ๋‹ค์Œ ์„ ํƒ์‚ฌํ•ญ๋“ค์€ ๊ทธ๋ƒฅ ์†๋Œ€์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ„ ํ›„ ์ผ์ • ์ƒ์„ฑ

์ผ์ • ์ƒ์„ฑ ์™„๋ฃŒ

 

 

๋‚˜๋จธ์ง€ ๊ทœ์น™ ์ƒ์„ฑ์€ ๊ทœ์น™์ƒ์„ฑ(AWS CLI) ์„ ์ฐธ๊ณ ํ•ด์„œ ์ง„ํ–‰

 


๐Ÿ”ท ์„ฑ๊ณต ํ™•์ธ

  • CloudWatch ์ฝ˜์†”์—์„œ "๋กœ๊ทธ"๋ฅผ ์„ ํƒํ•˜๊ณ , "๋กœ๊ทธ ๊ทธ๋ฃน" ์ด๋ฆ„์„ /aws/lambda/LogScheduledEvent_sbTest๋กœ ์„ ํƒํ•˜๋ฉด ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ ํ™•์ธ ๊ฐ€๋Šฅ

์ด๋ฒคํŠธ
5๋ถ„๋งˆ๋‹ค ๋ฐœ์ƒ ํ™•์ธ

๐Ÿ‘‰ 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