ํ ์ค ์์ฝ: ์ด ๋ฌธ์๋ ๋ก์ปฌ ์ค์ฌ์ผ๋ก ์ฐ๋ ์ฌ์ฉ์๊ฐ ํ์ ์ ํด๋ผ์ฐ๋๊น์ง ํ์ฅํ ๋์ ํ๋จ ๊ธฐ์ค์ ์ ๋ฆฌํ ๊ฐ์ด๋์ด๋ฉฐ, 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) ๋ก์ปฌ ์ฌ์ฉ์ ๊ด์ ์์ ์ ์ด ๋ฌธ์๊ฐ ํ์ํ๊ฐ
๋ก์ปฌ๋ก ์์ ์ ์ผ๋ก ์ฐ๊ณ ์๋ค๋ฉด ํด๋ผ์ฐ๋ ์ด์ผ๊ธฐ๊ฐ ๋ฌ๊ธ์๊ฒ ๋๊ปด์ง ์ ์๋ค. ๊ทธ ๊ฐ๊ฐ์ด ๋ง๋ค.
ํต์ฌ์ โ์ง๊ธ ๋น์ฅ ์ฎ๊ธฐ์โ๊ฐ ์๋๋ผ, ์ธ์ ๋ก์ปฌ๋ง์ผ๋ก ์ถฉ๋ถํ๊ณ ์ธ์ ํ์ฅ์ด ํ์ํ์ง ๊ธฐ์ค์ ๋ฏธ๋ฆฌ ๊ฐ์ถ์๋ ๋ฐ ์๋ค.
๋ก์ปฌ ์ ์ง๊ฐ ๋ง๋ ์ํฉ
- ๊ฐ์ธ ์ฌ์ฉ ์ค์ฌ์ด๊ณ , ์ ์ ๋ฒ์๊ฐ ๋ณธ์ธ ๋๋ฐ์ด์ค/์ฌ์ค๋ง์ ๋จธ๋ฌด๋ฅผ ๋
- ๋ณด์ ์ ์ฑ ์ ์ธ๋ถ ๋ ธ์ถ์ ๊ทน๋๋ก ์ค์ฌ์ผ ํ ๋
- ์ฅ์ ๋์์ ๋ณธ์ธ์ด ์ฆ์ ํ ์ ์๊ณ ์ด์ ๊ท๋ชจ๊ฐ ์์ ๋
ํด๋ผ์ฐ๋ ๊ฒํ ๊ฐ ํ์ํ ์ ํธ
- ์ฅ์๊ฐ/์ ์ ์์ (๋ฐฐ์นยท์๋ํ)์ด ๋์ด ๋ก์ปฌ ๊ฐ๋ ์์กด์ด ์ปค์ง ๋
- ํ์ ์๊ฐ ๋์ด ์ ๊ทผ ์ ์ด/๋ก๊ทธ ์ถ์ /๊ถํ ๋ถ๋ฆฌ๊ฐ ํ์ํ ๋
- โ๋ด ๋ ธํธ๋ถ์ด ๊บผ์ง๋ฉด ์ ๋ฌด๋ ๋ฉ์ถคโ ๊ตฌ์กฐ๋ฅผ ๋๊ณ ์ถ์ ๋
- ์ฅ์ ์ ๋ณต๊ตฌ๋ฅผ ๊ฐ์ธ์ด ์๋ ํ ์ฒด๊ณ๋ก ๊ด๋ฆฌํด์ผ ํ ๋
์ค์ ๊ถ์ฅ ํ๋ ์
- ๊ธฐ๋ณธ์ ๋ก์ปฌ ์ ์ง
- ํ์ ๊ธฐ๋ฅ๋ง ํด๋ผ์ฐ๋๋ก ๋ถ๋ฆฌ(์: ์ค์ผ์ค๋ฌ, webhook ์์ )
- ํ์ด๋ธ๋ฆฌ๋ ์ด์ ํ ์ ์ฒด ์ ํ ์ฌ๋ถ ํ๋จ
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์ฃผ)
- ๋์ผ ์๋๋ฆฌ์ค๋ก AWS/Cloudflare PoC ๊ฐ 1์ฃผ
- ๋์ผ ์ฒดํฌ๋ฆฌ์คํธ๋ก ์ ์ํ
- ๋ฐฐํฌ ์๋
- ์ฅ์ ๋ณต๊ตฌ ์๊ฐ
- ๋ก๊ทธ ์ถ์ ์ฑ
- ์ด์์ ํผ๋ก๋
- ํ์ด ์ค์ ๋ก ์ค๋ ์ ์งํ ์ ์๋ ์ชฝ์ผ๋ก ๊ฒฐ์
7) ํ์ฌ ๊ตฌ์กฐ์ ์ฐ๊ฒฐํด๋ณด๋ฉด
- OpenClaw ๋ฉ์ธ ๊ตฌ์กฐ๋ ์ง๊ธ์ฒ๋ผ ๋ก์ปฌ ์์ ์ฑ ์ค์ฌ์ผ๋ก ์ ์งํ๋ค.
- ํด๋ผ์ฐ๋๋ โ๋ฉ์ธ ๋์ฒดโ๋ณด๋ค ๋ถํ ๋ถ์ฐ์ฉ ์คํ ๋ ์ด์ด๋ก ์ ์ง ๋์ ํ๋ค.
- ํต์ฌ์ ํ๋ซํผ ์ ํ๋ณด๋ค **์ด์ ํ์ค(๊ถํยท๋ก๊ทธยท๋ณต๊ตฌ)**์ ๋จผ์ ๊ณ ์ ํ๋ ๊ฒ์ด๋ค.
์ถ์ฒ ๋จ๊ณ(๋ก์ปฌ ์ฌ์ฉ์์ฉ)
- 1๋จ๊ณ(ํ์ฌ): ๋ก์ปฌ ๋จ๋ ์ด์ + API/cron ์์ ํ
- 2๋จ๊ณ(ํ์ด๋ธ๋ฆฌ๋): ์ค์ผ์ค/์นํ ๊ฐ์ 1~2๊ฐ ๊ธฐ๋ฅ๋ง ํด๋ผ์ฐ๋ ๋ถ๋ฆฌ
- 3๋จ๊ณ(ํ์ฅ): ํ์ ยท๊ถํ๋ถ๋ฆฌ ์๊ตฌ๊ฐ ๋ช ํํ ๋๋ง ๋ณธ๊ฒฉ ์ ํ ๊ฒํ
AI ํ์ฉ ๊ณ ์ง
์ด ๋ฌธ์๋ ์์ฑํ AI๋ฅผ ํ์ฉํด ์ด์ ์์ฑ๊ณผ ๊ตฌ์กฐ ์ ๋ฆฌ๋ฅผ ์ํํ์ผ๋ฉฐ, ์ต์ข ๊ณต๊ฐ ์ ์ฌ๋์ด ๊ฒํ ํ๋ค.
๐ ๋ค์ ์ฝ๊ธฐ
- ๐ฆ 05. Mac Mini + Ollama โ ๋ก์ปฌ ํ๋์จ์ด ์ด์
- ๐ฆ 20. ์ด์์ํคํ ์ฒ ๊ท์น์ด์ ๋ฆฌ โ ์ ์ฒด ์ํคํ ์ฒ ๊ธฐ์ค
- ๐ฆ 01. ์ค์น โ ์ค์น ๊ฐ์ด๋๋ก ๋์๊ฐ๊ธฐ