openhands-infra์(๋) ๋ฌด์์ ํ๋์?
๐ AWS์์ AI ์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ์์ฒด ํธ์คํ ํ์ธ์ โ ECS Fargate๋ก ์์ ์๋ฒ๋ฆฌ์ค. ์ ํด ๋น์ฉ ์ ๋ก, ๋ํ๋ณ ๊ฒฉ๋ฆฌ, Bedrock LLM. CDK๋ก ๋ช ๋ถ ๋ง์ ๋ฐฐํฌ.
๊ฐ์
์ด ํ๋ก์ ํธ๋ AWS ์ธํ๋ผ์์ OpenHands AI ์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ์คํํ๊ธฐ ์ํ CDK ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ECS Fargate๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์๋ฒ๋ฆฌ์ค๋ก ์ด์๋๋ฉฐ, ์ ํด ์ํ์์ ๋น์ฉ์ด ๋ฐ์ํ์ง ์์ต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
- ์์ ์๋ฒ๋ฆฌ์ค: ECS Fargate + ALB ์กฐํฉ์ผ๋ก ์ปจํ ์ด๋ ์คํ, ๊ด๋ฆฌ ๋ถํ์
- ์ ํด ๋น์ฉ ์ ๋ก: ์ฌ์ฉํ์ง ์์ ๋๋ ๋ฆฌ์์ค๊ฐ ์๋์ผ๋ก ์ถ์๋์ด ๋น์ฉ์ด ๋ค์ง ์์
- ๋ํ๋ณ ๊ฒฉ๋ฆฌ: ๊ฐ ์ธ์ ์ด ๋ ๋ฆฝ์ ์ธ ์ปจํ ์ด๋์์ ์คํ๋์ด ๋ณด์๊ณผ ์์ ์ฑ ํฅ์
- Bedrock LLM: AWS Bedrock์ ๊ธฐ๋ณธ LLM ์ ๊ณต์๋ก ์ฌ์ฉ, ์ถ๊ฐ API ํค ๋ถํ์
- ๋น ๋ฅธ ๋ฐฐํฌ: AWS CDK๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ๋ถ ์์ ์ ์ฒด ์ธํ๋ผ ๋ฐฐํฌ ๊ฐ๋ฅ
์ฌ์ ์๊ตฌ ์ฌํญ
- AWS ๊ณ์ ๋ฐ ์ ์ ํ IAM ๊ถํ
- AWS CLI ๊ตฌ์ฑ (
aws configure) - Node.js 18 ์ด์
- AWS CDK CLI ์ค์น (
npm install -g aws-cdk) - Docker (๋ก์ปฌ ํ ์คํธ ์ ํ์)
๋น ๋ฅธ ์์
git clone https://github.com/zxkane/openhands-infra.git
cd openhands-infra
npm install
cdk bootstrap
cdk deploy
ํ๊ฒฝ ๋ณ์ ์ค์
cdk.json ๋๋ .env ํ์ผ์ ํตํด ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค:
| ๋ณ์๋ช | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
|---|---|---|
OPENHANDS_BEDROCK_MODEL | Bedrock LLM ๋ชจ๋ธ ID | anthropic.claude-v2 |
OPENHANDS_BEDROCK_REGION | Bedrock ์๋น์ค ๋ฆฌ์ | us-east-1 |
ECS_CPU | Fargate ํ์คํฌ CPU ํ ๋น | 1024 |
ECS_MEMORY | Fargate ํ์คํฌ ๋ฉ๋ชจ๋ฆฌ ํ ๋น | 2048 |
์ํคํ ์ฒ
- ALB: Application Load Balancer๋ก ํธ๋ํฝ ๋ผ์ฐํ
- ECS Fargate: ์๋ฒ๋ฆฌ์ค ์ปจํ ์ด๋ ์คํ, ์๋ ์ค์ผ์ผ๋ง
- Bedrock: LLM ์ถ๋ก ์๋ํฌ์ธํธ (API ํค ๋ถํ์)
- CloudWatch: ๋ก๊น ๋ฐ ๋ชจ๋ํฐ๋ง
๋ณด์
- VPC ๋ด๋ถ์์๋ง ํธ๋ํฝ ํ์ฉ (์ ํ์ ์ผ๋ก ํผ๋ธ๋ฆญ ALB ์ค์ ๊ฐ๋ฅ)
- IAM ์ญํ ์ ํตํ ์ต์ ๊ถํ ๋ถ์ฌ
- Bedrock์ IAM ์ธ์ฆ ์ฌ์ฉ
๋ผ์ด์ ์ค
MIT License