ํ•œ ์ค„ ์š”์•ฝ: ์ด ๋ฌธ์„œ๋Š” ๋กœ์ปฌ ์ค‘์‹ฌ์œผ๋กœ ์“ฐ๋˜ ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š” ์‹œ ํด๋ผ์šฐ๋“œ๊นŒ์ง€ ํ™•์žฅํ•  ๋•Œ์˜ ํŒ๋‹จ ๊ธฐ์ค€์„ ์ •๋ฆฌํ•œ ๊ฐ€์ด๋“œ์ด๋ฉฐ, AWS/Cloudflare ์„ ํƒ๋„ ๊ธฐ์ˆ  ์šฐ์—ด๋ณด๋‹ค ์šด์˜ ์Šต๊ด€ยท๋ณด์•ˆ ์š”๊ตฌยท์žฅ์•  ๋Œ€์‘ ๋ฐฉ์‹์œผ๋กœ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒŒ ๋งž๋‹ค.

flowchart TD
  A[์šฐ๋ฆฌ ํŒ€ ์šด์˜ ๋ฐฉ์‹] --> B{AWS IAM/CloudWatch ์ต์ˆ™?}
  B -->|Yes| C[AWS Serverless ์šฐ์„ ]
  B -->|No| D{Cloudflare ์—ฃ์ง€ ์šด์˜ ์ต์ˆ™?}
  D -->|Yes| E[Cloudflare ๊ณ„์—ด ์šฐ์„ ]
  D -->|No| F[๋™์ผ ์‹œ๋‚˜๋ฆฌ์˜ค 1์ฃผ PoC ๋น„๊ต]

0) ๋จผ์ € ๊ฒฐ๋ก 

  • AWS๊ฐ€ ๋งž๋Š” ํŒ€: IAM/๊ถŒํ•œ๋ถ„๋ฆฌ/๊ฐ์‚ฌ๋กœ๊ทธ/๊ณ„์ • ๋ถ„๋ฆฌ ์šด์˜์ด ์ค‘์š”ํ•œ ํŒ€
  • Cloudflare๊ฐ€ ๋งž๋Š” ํŒ€: ๋น ๋ฅธ ๋ฐฐํฌ, ๊ฒฝ๋Ÿ‰ ์šด์˜, ์—ฃ์ง€ ์‘๋‹ต์„ฑ์ด ์ค‘์š”ํ•œ ํŒ€
  • ๋ชจ๋ฅด๋ฉด ์ •๋‹ต: ๋‘ ํ”Œ๋žซํผ ๋ชจ๋‘ ๊ฐ™์€ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ 1์ฃผ PoC ํ›„ ์šด์˜ ํ”ผ๋กœ๋„ ๊ธฐ์ค€์œผ๋กœ ๊ฒฐ์ •

0-1) ๋กœ์ปฌ ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์™œ ์ด ๋ฌธ์„œ๊ฐ€ ํ•„์š”ํ•œ๊ฐ€

๋กœ์ปฌ๋กœ ์•ˆ์ •์ ์œผ๋กœ ์“ฐ๊ณ  ์žˆ๋‹ค๋ฉด ํด๋ผ์šฐ๋“œ ์ด์•ผ๊ธฐ๊ฐ€ ๋œฌ๊ธˆ์—†๊ฒŒ ๋А๊ปด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ๊ฐ๊ฐ์ด ๋งž๋‹ค.
ํ•ต์‹ฌ์€ โ€œ์ง€๊ธˆ ๋‹น์žฅ ์˜ฎ๊ธฐ์žโ€๊ฐ€ ์•„๋‹ˆ๋ผ, ์–ธ์ œ ๋กœ์ปฌ๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๊ณ  ์–ธ์ œ ํ™•์žฅ์ด ํ•„์š”ํ•œ์ง€ ๊ธฐ์ค€์„ ๋ฏธ๋ฆฌ ๊ฐ–์ถ”์ž๋Š” ๋ฐ ์žˆ๋‹ค.

๋กœ์ปฌ ์œ ์ง€๊ฐ€ ๋งž๋Š” ์ƒํ™ฉ

  • ๊ฐœ์ธ ์‚ฌ์šฉ ์ค‘์‹ฌ์ด๊ณ , ์ ‘์† ๋ฒ”์œ„๊ฐ€ ๋ณธ์ธ ๋””๋ฐ”์ด์Šค/์‚ฌ์„ค๋ง์— ๋จธ๋ฌด๋ฅผ ๋•Œ
  • ๋ณด์•ˆ ์ •์ฑ…์ƒ ์™ธ๋ถ€ ๋…ธ์ถœ์„ ๊ทน๋„๋กœ ์ค„์—ฌ์•ผ ํ•  ๋•Œ
  • ์žฅ์•  ๋Œ€์‘์„ ๋ณธ์ธ์ด ์ฆ‰์‹œ ํ•  ์ˆ˜ ์žˆ๊ณ  ์šด์˜ ๊ทœ๋ชจ๊ฐ€ ์ž‘์„ ๋•Œ

ํด๋ผ์šฐ๋“œ ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•œ ์‹ ํ˜ธ

  • ์žฅ์‹œ๊ฐ„/์ •์‹œ ์ž‘์—…(๋ฐฐ์น˜ยท์ž๋™ํ™”)์ด ๋Š˜์–ด ๋กœ์ปฌ ๊ฐ€๋™ ์˜์กด์ด ์ปค์งˆ ๋•Œ
  • ํ˜‘์—…์ž๊ฐ€ ๋Š˜์–ด ์ ‘๊ทผ ์ œ์–ด/๋กœ๊ทธ ์ถ”์ /๊ถŒํ•œ ๋ถ„๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ
  • โ€œ๋‚ด ๋…ธํŠธ๋ถ์ด ๊บผ์ง€๋ฉด ์—…๋ฌด๋„ ๋ฉˆ์ถคโ€ ๊ตฌ์กฐ๋ฅผ ๋Š๊ณ  ์‹ถ์„ ๋•Œ
  • ์žฅ์•  ์‹œ ๋ณต๊ตฌ๋ฅผ ๊ฐœ์ธ์ด ์•„๋‹Œ ํŒ€ ์ฒด๊ณ„๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•  ๋•Œ

์‹ค์ „ ๊ถŒ์žฅ ํ”„๋ ˆ์ž„

  1. ๊ธฐ๋ณธ์€ ๋กœ์ปฌ ์œ ์ง€
  2. ํ•„์š” ๊ธฐ๋Šฅ๋งŒ ํด๋ผ์šฐ๋“œ๋กœ ๋ถ„๋ฆฌ(์˜ˆ: ์Šค์ผ€์ค„๋Ÿฌ, webhook ์ˆ˜์‹ )
  3. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์šด์˜ ํ›„ ์ „์ฒด ์ „ํ™˜ ์—ฌ๋ถ€ ํŒ๋‹จ

1) AWS Serverless OpenClaw ๊ตฌ์กฐ ์š”์•ฝ

flowchart TD
  U[์‚ฌ์šฉ์ž] --> W[์›น ์ฑ„ํŒ…]
  U --> T[ํ…”๋ ˆ๊ทธ๋žจ]
  W --> A[API Gateway]
  T --> L[Lambda]
  A --> L
  L --> F[Fargate OpenClaw ์ปจํ…Œ์ด๋„ˆ]
  F --> D[DynamoDB]
  F --> S[S3]
  • ์š”์ฒญ ์‹œ ์‹คํ–‰๋˜๋Š” ์˜จ๋””๋งจ๋“œ ๊ตฌ์กฐ๋กœ ์œ ํœด ์‹œ๊ฐ„ ๋น„์šฉ์„ ๋‚ฎ์ถ”๊ธฐ ์‰ฌ์›€
  • AWS ํ‘œ์ค€(๊ถŒํ•œ, ๋กœ๊ทธ, ๋ฐฐํฌ)๊ณผ ๊ฒฐํ•ฉํ•˜๊ธฐ ์‰ฌ์›€

2) ๋น„๊ตํ‘œ (์‹ค๋ฌดํ˜•)

ํ•ญ๋ชฉAWS(Serverless OpenClaw)Cloudflare(Worker/MoltWorker ๊ณ„์—ด)
์ง„์ž… ๋‚œ์ด๋„์ค‘๊ฐ„๋‚ฎ์Œ~์ค‘๊ฐ„
๋ฐฐํฌ ์†๋„์ค‘๊ฐ„๋น ๋ฆ„
๊ถŒํ•œ/๋ณด์•ˆ ์„ธ๋ถ„ํ™”๋งค์šฐ ๊ฐ•ํ•จ(IAM)์ƒ๋Œ€์ ์œผ๋กœ ๋‹จ์ˆœ
๋กœ๊ทธ/๊ด€์ธกCloudWatch ์ค‘์‹ฌํ”Œ๋žซํผ ๋„๊ตฌ ์ค‘์‹ฌ
์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์šด์˜์ ํ•ฉ๋†’์Œ์ค‘๊ฐ„
๋น ๋ฅธ ์‹คํ—˜/๋ฐ˜๋ณต์ค‘๊ฐ„๋†’์Œ

3) ์„ ํƒ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

AWS ์šฐ์„ธ ์กฐ๊ฑด

  • IAM ์ตœ์†Œ๊ถŒํ•œ/๊ฐ์‚ฌ ์ถ”์ ์ด ํ•„์ˆ˜๋‹ค
  • ๊ณ„์ •/ํ™˜๊ฒฝ ๋ถ„๋ฆฌ(dev/stage/prod)๊ฐ€ ์ค‘์š”ํ•˜๋‹ค
  • ์ด๋ฏธ AWS ์šด์˜ํŒ€/์šด์˜ ํ‘œ์ค€์ด ์žˆ๋‹ค

Cloudflare ์šฐ์„ธ ์กฐ๊ฑด

  • ๋ฐฐํฌ ๋‹จ์ˆœ์„ฑ๊ณผ ์†๋„๊ฐ€ ์ตœ์šฐ์„ ์ด๋‹ค
  • ์—ฃ์ง€ ๊ธฐ๋ฐ˜ ์‘๋‹ต ํŠน์„ฑ์ด ์ค‘์š”ํ•˜๋‹ค
  • ํŒ€์ด Cloudflare ๋„๊ตฌ์— ๋” ์ต์ˆ™ํ•˜๋‹ค

4) AWS ๋„์ž… ์‹œ ์ตœ์†Œ ์‹คํ–‰ ์ˆœ์„œ

git clone https://github.com/serithemage/serverless-openclaw.git
cd serverless-openclaw
npm install
cp .env.example .env
npm run build
npm run lint
npm run test
cdk deploy

์‹ค์ œ ๋ฐฐํฌ ์ „์—๋Š” ๋ฆฌ์ „/๊ถŒํ•œ/๋น„์šฉ ๊ฒฝ๊ณ„์กฐ๊ฑด์„ ๋ฐ˜๋“œ์‹œ ์‚ฌ์ „ ์ ๊ฒ€ํ•œ๋‹ค.

5) ์šด์˜ ๊ด€์ ์—์„œ ์ž์ฃผ ํ‹€๋ฆฌ๋Š” ํฌ์ธํŠธ

  • ๋น„์šฉ ์ˆซ์ž๋งŒ ๋ณด๊ณ  ๊ฒฐ์ •ํ•˜๊ณ , ์šด์˜ ๋‚œ์ด๋„๋ฅผ ๊ณผ์†Œํ‰๊ฐ€ํ•จ
  • โ€œ๋ฐฐํฌ ์„ฑ๊ณตโ€์„ โ€œ์šด์˜ ์„ฑ๊ณตโ€์œผ๋กœ ์ฐฉ๊ฐํ•จ
  • ์‹œํฌ๋ฆฟ/๊ถŒํ•œ ๋ชจ๋ธ ์ •๋ฆฌ ์ „์— ์šด์˜ ์ „ํ™˜ํ•จ
  • ์žฅ์•  ์‹œ ๋กค๋ฐฑ/๋ณต๊ตฌ ๊ฒฝ๋กœ๋ฅผ ๋ฌธ์„œํ™”ํ•˜์ง€ ์•Š์Œ

6) ์ถ”์ฒœ ๋„์ž… ์ „๋žต (2์ฃผ)

  1. ๋™์ผ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ AWS/Cloudflare PoC ๊ฐ 1์ฃผ
  2. ๋™์ผ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋กœ ์ ์ˆ˜ํ™”
    • ๋ฐฐํฌ ์†๋„
    • ์žฅ์•  ๋ณต๊ตฌ ์‹œ๊ฐ„
    • ๋กœ๊ทธ ์ถ”์ ์„ฑ
    • ์šด์˜์ž ํ”ผ๋กœ๋„
  3. ํŒ€์ด ์‹ค์ œ๋กœ ์˜ค๋ž˜ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์ชฝ์œผ๋กœ ๊ฒฐ์ •

7) ํ˜„์žฌ ๊ตฌ์กฐ์™€ ์—ฐ๊ฒฐํ•ด๋ณด๋ฉด

  • OpenClaw ๋ฉ”์ธ ๊ตฌ์กฐ๋Š” ์ง€๊ธˆ์ฒ˜๋Ÿผ ๋กœ์ปฌ ์•ˆ์ „์„ฑ ์ค‘์‹ฌ์œผ๋กœ ์œ ์ง€ํ•œ๋‹ค.
  • ํด๋ผ์šฐ๋“œ๋Š” โ€œ๋ฉ”์ธ ๋Œ€์ฒดโ€๋ณด๋‹ค ๋ถ€ํ•˜ ๋ถ„์‚ฐ์šฉ ์‹คํ–‰ ๋ ˆ์ด์–ด๋กœ ์ ์ง„ ๋„์ž…ํ•œ๋‹ค.
  • ํ•ต์‹ฌ์€ ํ”Œ๋žซํผ ์„ ํƒ๋ณด๋‹ค **์šด์˜ ํ‘œ์ค€(๊ถŒํ•œยท๋กœ๊ทธยท๋ณต๊ตฌ)**์„ ๋จผ์ € ๊ณ ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ถ”์ฒœ ๋‹จ๊ณ„(๋กœ์ปฌ ์‚ฌ์šฉ์ž์šฉ)

  • 1๋‹จ๊ณ„(ํ˜„์žฌ): ๋กœ์ปฌ ๋‹จ๋… ์šด์˜ + API/cron ์•ˆ์ •ํ™”
  • 2๋‹จ๊ณ„(ํ•˜์ด๋ธŒ๋ฆฌ๋“œ): ์Šค์ผ€์ค„/์›นํ›… ๊ฐ™์€ 1~2๊ฐœ ๊ธฐ๋Šฅ๋งŒ ํด๋ผ์šฐ๋“œ ๋ถ„๋ฆฌ
  • 3๋‹จ๊ณ„(ํ™•์žฅ): ํ˜‘์—…ยท๊ถŒํ•œ๋ถ„๋ฆฌ ์š”๊ตฌ๊ฐ€ ๋ช…ํ™•ํ•  ๋•Œ๋งŒ ๋ณธ๊ฒฉ ์ „ํ™˜ ๊ฒ€ํ† 

AI ํ™œ์šฉ ๊ณ ์ง€

์ด ๋ฌธ์„œ๋Š” ์ƒ์„ฑํ˜• AI๋ฅผ ํ™œ์šฉํ•ด ์ดˆ์•ˆ ์ž‘์„ฑ๊ณผ ๊ตฌ์กฐ ์ •๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์œผ๋ฉฐ, ์ตœ์ข… ๊ณต๊ฐœ ์ „ ์‚ฌ๋žŒ์ด ๊ฒ€ํ† ํ–ˆ๋‹ค.

๐Ÿ“š ๋‹ค์Œ ์ฝ๊ธฐ