Skip to content

WeGoAWS/WGA_production

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

361 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WGA (WeGoAWS) - AWS ν΄λΌμš°λ“œ 운영 정보 챗봇 μ„œλΉ„μŠ€

thumbnail

κ°œμš”

WGAλŠ” AWS ν΄λΌμš°λ“œ 운영 정보λ₯Ό μžμ—°μ–΄λ‘œ μ§ˆμ˜μ‘λ‹΅ν•  수 μžˆλŠ” μ„œλ²„λ¦¬μŠ€ 기반의 AI 챗봇 μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. μ‚¬μš©μžλŠ” λ³΅μž‘ν•œ AWS μ½˜μ†”μ„ 직접 μ‘°μž‘ν•˜λŠ” λŒ€μ‹ , κ°„λ‹¨ν•œ μžμ—°μ–΄ μ§ˆλ¬Έμ„ 톡해 ν΄λΌμš°λ“œ μžμ› μƒνƒœ, λΉ„μš© 뢄석, λ³΄μ•ˆ 이벀트, 둜그 뢄석 λ“±μ˜ 정보λ₯Ό μ¦‰μ‹œ 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

핡심 κ°€μΉ˜

  • κ°„νŽΈν•œ μ ‘κ·Όμ„±: μžμ—°μ–΄ 기반 질의둜 AWS μ „λ¬Έ 지식 없이도 ν΄λΌμš°λ“œ 정보 쑰회 κ°€λŠ₯
  • μ •ν™•ν•œ λ‹΅λ³€: AWS 곡식 λ¬Έμ„œλ₯Ό 기반으둜 μ •ν™•ν•œ λ‹΅λ³€ 제곡
  • μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§: CloudWatch λ‘œκ·Έμ™€ λŒ€μ‹œλ³΄λ“œλ₯Ό ν†΅ν•œ μ‹€μ‹œκ°„ μ‹œμŠ€ν…œ μƒνƒœ νŒŒμ•…
  • λΉ„μš© μ΅œμ ν™”: AWS λΉ„μš© 뢄석 및 μ΅œμ ν™” μ œμ•ˆ
  • λ³΄μ•ˆ κ°•ν™”: λ³΄μ•ˆ 이벀트 λͺ¨λ‹ˆν„°λ§ 및 μ•Œλ¦Ό

μ•„ν‚€ν…μ²˜

전체 μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

WGA μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

기술 μŠ€νƒ

  • Frontend: React 18, TypeScript, Vite, Tailwind CSS
  • Backend: AWS Lambda (Python 3.12), API Gateway
  • AI/ML: Claude Sonnet 4, AWS Bedrock, MCP (Model Context Protocol)
  • Database: DynamoDB
  • Storage: S3 (정적 파일, 둜그 μ €μž₯)
  • Monitoring: CloudWatch Log, CloudWatch Dashboard, Billing and Cost Management
  • Authentication: AWS Cognito
  • Infrastructure: CloudFormation, AWS CDK
  • CI/CD: CodeBuild, Amplify

μ£Όμš” κΈ°λŠ₯

1. μžμ—°μ–΄ 기반 μ§ˆμ˜μ‘λ‹΅

  • 둜그 뢄석: "μ–΄μ œ S3에 μ ‘κ·Όν•œ μ‚¬μš©μžλŠ” λˆ„κ΅¬μΈκ°€μš”?"
  • λΉ„μš© 뢄석: "μ§€λ‚œ μ£Ό Opensearch λΉ„μš©μ΄ μ–Όλ§ˆλ‚˜ λ‚˜μ™”λ‚˜μš”?"
  • λ³΄μ•ˆ 쑰회: "졜근 μ‹€νŒ¨ν•œ 둜그인 μ‹œλ„κ°€ μžˆλ‚˜μš”?"
  • AWS λ¬Έμ„œ 검색: "GuardDuty μ‹¬κ°λ„λŠ” μ–΄λ–€ μ˜λ―ΈμΈκ°€μš”?"

2. μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§ 및 뢄석

  • CloudWatch 둜그 뢄석: μ„œλΉ„μŠ€λ³„ 둜그 쑰회 및 뢄석
  • CloudWatch λŒ€μ‹œλ³΄λ“œ λͺ¨λ‹ˆν„°λ§: μ£Όμš” μ„œλΉ„μŠ€λ₯Ό μ‹€μ‹œκ°„μœΌλ‘œ λͺ¨λ‹ˆν„°λ§
  • CloudTrail 이벀트: AWS API 호좜 이λ ₯ 및 μ‚¬μš©μž ν™œλ™ 좔적
  • GuardDuty λ³΄μ•ˆ 이벀트: λ³΄μ•ˆ μœ„ν˜‘ 뢄석
  • λΉ„μš© 뢄석: μ„œλΉ„μŠ€λ³„, 리전별, 일별 λΉ„μš© 뢄석

3. μ‹œκ°ν™” 및 차트 생성

  • 동적 차트: λ§‰λŒ€ 차트, 라인 차트, 파이 차트, 산점도 λ“±
  • μ•„ν‚€ν…μ²˜ λ‹€μ΄μ–΄κ·Έλž¨: AWS 인프라 μ‹œκ°ν™”
  • ν”Œλ‘œμš°μ°¨νŠΈ: ν”„λ‘œμ„ΈμŠ€ 흐름도 생성
  • λ§ˆμΈλ“œλ§΅: κ΅¬μ‘°ν™”λœ 정보 ν‘œν˜„

4. AWS 곡식 λ¬Έμ„œ 기반 λ‹΅λ³€ 제곡

  • μ‹€μ‹œκ°„ λ¬Έμ„œ 검색: AWS 곡식 λ¬Έμ„œμ—μ„œ ν‚€μ›Œλ“œ 기반 검색
  • μ»¨ν…μŠ€νŠΈ 기반 μΆ”μ²œ: ν˜„μž¬ 질문과 κ΄€λ ¨λœ λ¬Έμ„œ μžλ™ μΆ”μ²œ
  • λ‹€κ΅­μ–΄ 지원: 영문 λ¬Έμ„œλ₯Ό ν•œκ΅­μ–΄λ‘œ μžλ™ λ²ˆμ—­ν•˜μ—¬ 제곡

5. 닀쀑 μΈν„°νŽ˜μ΄μŠ€ 지원

  • μ›Ή μΈν„°νŽ˜μ΄μŠ€: React 기반 λ°˜μ‘ν˜• μ›Ή μ•±
  • Slack 봇: μŠ¬λž™ μ±„λ„μ—μ„œ 직접 질의 κ°€λŠ₯

6. λŒ€ν™” 기둝 관리

  • μ„Έμ…˜ 관리: μ‚¬μš©μžλ³„ λŒ€ν™” νžˆμŠ€ν† λ¦¬ μ €μž₯
  • μ»¨ν…μŠ€νŠΈ μœ μ§€: 이전 λŒ€ν™” λ‚΄μš©μ„ 기반으둜 ν•œ 연속 질의
  • νžˆμŠ€ν† λ¦¬ 검색: κ³Όκ±° 질의 및 λ‹΅λ³€ 검색

7. κ°„νŽΈν•œ 배포

  • 원클릭 배포: 단일 슀크립트둜 전체 인프라 배포
  • CloudFormation 기반: AWS λ„€μ΄ν‹°λΈŒ IaC둜 μ•ˆμ •μ μΈ 인프라 관리
  • μžλ™ν™”λœ λΉŒλ“œ: CodeBuildλ₯Ό ν†΅ν•œ Docker 이미지 μžλ™ λΉŒλ“œ 및 배포
  • ν™˜κ²½λ³„ 뢄리: dev/test/prod ν™˜κ²½ 독립 배포 및 관리

ν”„λ‘œμ νŠΈ ꡬ쑰

WGA_production/
β”œβ”€cloudformation
β”œβ”€frontend
β”‚ β”œβ”€public
β”‚ └─src
β”‚   β”œβ”€assets
β”‚   β”œβ”€components
β”‚   β”œβ”€directives
β”‚   β”œβ”€layouts
β”‚   β”œβ”€router
β”‚   β”œβ”€stores
β”‚   β”œβ”€types
β”‚   β”œβ”€utils
β”‚     └─views
β”œβ”€images
β”œβ”€layers
β”‚  └─common
β”œβ”€mcp
β”‚  └─lambda_mcp
└─services
β”‚   β”œβ”€chat-history
β”‚   β”œβ”€db
β”‚   β”œβ”€llm
β”‚   └─slackbot
β”‚
└── deploy.sh                

μ„€μΉ˜ 및 배포

사전 μš”κ΅¬μ‚¬ν•­

  • AWS CLI μ„€μ • 및 μ μ ˆν•œ κΆŒν•œ
  • Service Quotas -> API Gateway -> Maximum integration timeout in milliseconds -> 180000ms둜 λ³€κ²½ μš”μ²­(μžλ™ 승인)
  • Node.js 18+
  • Python 3.12+

ν™˜κ²½ λ³€μˆ˜ μ„€μ •

# AWS CLI μ„€μ •
aws configure

1단계: κΈ°λ³Έ μ„€μ •

# ν”„λ‘œμ νŠΈ 클둠
git clone https://github.com/WeGoAWS/WGA_production.git
cd WGA_production

# SSM νŒŒλΌλ―Έν„° μ„€μ • (ν•„μš”ν•œ 경우)
aws ssm put-parameter --name "/wga/${Environment}/SlackbotToken" --value "your-slack-token" --type "SecureString"
aws ssm put-parameter --name "/wga/${Environment}/ANTHROPIC_API_KEY" --value "your-anthropic-key" --type "SecureString"

2단계: 톡합 배포

# 개발 ν™˜κ²½ 배포
./deploy.sh dev

# ν”„λ‘œλ•μ…˜ ν™˜κ²½ 배포
./deploy.sh prod

3단계: 배포 확인

배포 μ™„λ£Œ ν›„ λ‹€μŒ 정보가 좜λ ₯λ©λ‹ˆλ‹€:

  • ν”„λ‘ νŠΈμ—”λ“œ URL: https://ENVIRONMENT.xxxxxxxxxxxxx.amplifyapp.com
  • API Gateway URL: https://xxxxxxxxxx.execute-api.AWSREGION.amazonaws.com/ENVIRONMENT
  • MCP Function URL: https://xxxxxxxxxx.lambda-url.AWSREGION.on.aws/

μΆ”κ°€λ‘œ, SSM Parameter 정보도 μ œκ³΅λ©λ‹ˆλ‹€.

μ„€μ • κ°€μ΄λ“œ

Slack 봇 μ„€μ •

  1. Slack μ•± 생성 및 봇 토큰 λ°œκΈ‰
  2. SSM Parameter Store에 토큰 μ €μž₯
  3. Slack 앱에 λ‹€μŒ κΈ°λŠ₯ μΆ”κ°€:
    • Slash Commands: /models
    • Interactive Components
    • Bot Token Scopes: chat:write, im:write

μ‚¬μš© μ˜ˆμ‹œ

μ›Ή μΈν„°νŽ˜μ΄μŠ€

  1. λΈŒλΌμš°μ €μ—μ„œ ν”„λ‘ νŠΈμ—”λ“œ URL 접속
  2. Cognitoλ₯Ό ν†΅ν•œ 둜그인
  3. μ±„νŒ… μΈν„°νŽ˜μ΄μŠ€μ—μ„œ μžμ—°μ–΄ 질문 μž…λ ₯

Slack 봇

# λͺ¨λΈ μ„€μ •
/models

# 질의 μ‹€ν–‰
μ–΄μ œ EC2 μΈμŠ€ν„΄μŠ€λ₯Ό μ‹œμž‘ν•œ μ‚¬μš©μžλŠ” λˆ„κ΅¬μΈκ°€μš”?
μ§€λ‚œ μ£Ό S3 λΉ„μš© λΆ„μ„ν•΄μ£Όμ„Έμš”
GuardDutyμ—μ„œ κ°μ§€λœ λ³΄μ•ˆ μ΄λ²€νŠΈκ°€ μžˆλ‚˜μš”?

핡심 κ΅¬ν˜„ 둜직

React 기반 μ‹€μ‹œκ°„ μ±„νŒ… μ‹œμŠ€ν…œ

React 18κ³Ό TypeScriptλ₯Ό ν™œμš©ν•˜μ—¬ ChatGPT와 μœ μ‚¬ν•œ λŒ€ν™”ν˜• μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. useState와 useEffect 훅을 톡해 λ©”μ‹œμ§€ μƒνƒœλ₯Ό κ΄€λ¦¬ν•˜κ³ , μ‹€μ‹œκ°„μœΌλ‘œ AI 응닡을 μŠ€νŠΈλ¦¬λ°ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄λŠ” 타이핑 μ• λ‹ˆλ©”μ΄μ…˜μ„ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. μ„Έμ…˜ 기반 λŒ€ν™” νžˆμŠ€ν† λ¦¬λ₯Ό μ§€μ›ν•˜μ—¬ μ‚¬μš©μžκ°€ 이전 λŒ€ν™”λ₯Ό μ–Έμ œλ“  λ‹€μ‹œ 확인할 수 있으며, 둜컬 μŠ€ν† λ¦¬μ§€μ™€ μ„œλ²„ 동기화λ₯Ό 톡해 데이터 일관성을 보μž₯ν•©λ‹ˆλ‹€. λ§ˆν¬λ‹€μš΄ λ Œλ”λ§μ„ μ§€μ›ν•˜μ—¬ μ½”λ“œ 블둝, ν‘œ, 링크 등을 μ˜¬λ°”λ₯΄κ²Œ ν‘œμ‹œν•˜κ³ , μ°¨νŠΈμ™€ λ‹€μ΄μ–΄κ·Έλž¨μ€ μ΄λ―Έμ§€λ‘œ μžλ™ λ Œλ”λ§λ©λ‹ˆλ‹€.

Cognito OAuth 2.0 톡합 인증

AWS Cognito User Poolκ³Ό Identity Pool을 ν™œμš©ν•œ μ™„μ „ν•œ 인증 μ‹œμŠ€ν…œμ„ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. OAuth 2.0 Authorization Code Flowλ₯Ό 톡해 μ•ˆμ „ν•œ λ‘œκ·ΈμΈμ„ μ œκ³΅ν•˜κ³ , JWT 토큰 기반의 μ„Έμ…˜ 관리λ₯Ό κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©μž μ •λ³΄λŠ” Context APIλ₯Ό 톡해 μ „μ—­ μƒνƒœλ‘œ κ΄€λ¦¬λ˜λ©°, 토큰 만료 μ‹œ μžλ™ κ°±μ‹  λ‘œμ§μ„ ν¬ν•¨ν•©λ‹ˆλ‹€. ν”„λ‘ νŠΈμ—”λ“œμ—μ„œλŠ” protected routeλ₯Ό κ΅¬ν˜„ν•˜μ—¬ μΈμ¦λ˜μ§€ μ•Šμ€ μ‚¬μš©μžμ˜ 접근을 μ°¨λ‹¨ν•˜κ³ , 둜그인 μƒνƒœμ— 따라 λ‹€λ₯Έ UIλ₯Ό 쑰건뢀 λ Œλ”λ§ν•©λ‹ˆλ‹€.

Lambda 기반 MCP μ„œλ²„ 및 ν΄λΌμ΄μ–ΈνŠΈ κ΅¬ν˜„

κΈ°μ‘΄ MCP ν”„λ‘œν† μ½œμ˜ HTTP+SSE(Server-Sent Events) 방식은 AWS Lambda의 μ œμ•½μ‚¬ν•­κ³Ό ν˜Έν™˜λ˜μ§€ μ•Šμ•„, Streamable HTTP λ°©μ‹μœΌλ‘œ μž¬μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€. Lambda의 μ„œλ²„λ¦¬μŠ€ ν™˜κ²½μ—μ„œ 지속적인 연결을 μœ μ§€ν•  수 μ—†λŠ” νŠΉμ„±μ„ κ³ λ €ν•˜μ—¬, μš”μ²­-응닡 기반의 HTTP ν”„λ‘œν† μ½œλ‘œ MCP μŠ€νŽ™μ„ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ μ „μš© MCP μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό 직접 μ„€κ³„ν•˜κ³  κ°œλ°œν–ˆμœΌλ©°, 기쑴에 μ‘΄μž¬ν•˜λŠ” MCP μ„œλ²„λ“€μ„ 우리의 Streamable HTTP 방식과 ν˜Έν™˜λ˜λ„λ‘ λ¦¬νŒ©ν† λ§ν–ˆμŠ΅λ‹ˆλ‹€. μΆ”κ°€λ‘œ, analyze_log_groups_insights λ“± ν•„μš”ν•œ MCP 도ꡬλ₯Ό 직접 μ„€κ³„ν•˜κ³  κ΅¬ν˜„ν•˜μ˜€κ³ , 기쑴의 MCP 도ꡬ 쀑 fetch_cloudwatch_logs_for_service()의 치λͺ…적인 결함을 발견 ν›„ μˆ˜μ •ν•˜μ˜€μœΌλ©°, μ›μž‘μžμ˜ Github Repo에 ν•΄λ‹Ή λ‚΄μš©μ„ λ°˜μ˜ν•œ Pull Requestλ₯Ό μƒμ„±ν–ˆμŠ΅λ‹ˆλ‹€.

Lambda 기반 μ„œλ²„λ¦¬μŠ€ λ°±μ—”λ“œ μ•„ν‚€ν…μ²˜

전체 λ°±μ—”λ“œ μ‹œμŠ€ν…œμ„ AWS Lambda ν•¨μˆ˜ 기반으둜 κ΅¬ν˜„ν•˜μ—¬ μ„œλ²„λ¦¬μŠ€ μ•„ν‚€ν…μ²˜μ˜ μž₯점을 κ·ΉλŒ€ν™”ν–ˆμŠ΅λ‹ˆλ‹€. 각 λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό 독립적인 Lambda ν•¨μˆ˜λ‘œ λΆ„λ¦¬ν•˜μ—¬ 개발, 배포, ν™•μž₯이 μš©μ΄ν•˜λ„λ‘ μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€. LLM Service, Database Service, Chat History Service, Slackbot Serviceλ₯Ό 각각 λ³„λ„μ˜ Lambda ν•¨μˆ˜λ‘œ κ΅¬ν˜„ν•˜κ³ , API Gatewayλ₯Ό 톡해 ν†΅ν•©λœ RESTful API둜 μ œκ³΅ν•©λ‹ˆλ‹€. Lambda의 이벀트 기반 μ‹€ν–‰ λͺ¨λΈμ„ ν™œμš©ν•˜μ—¬ μš”μ²­μ΄ μžˆμ„ λ•Œλ§Œ μ‹€ν–‰λ˜λ―€λ‘œ λΉ„μš© νš¨μœ¨μ„±μ„ ν™•λ³΄ν–ˆμœΌλ©°, AWS의 κ΄€λ¦¬ν˜• μ„œλΉ„μŠ€μ™€μ˜ λ„€μ΄ν‹°λΈŒ 톡합을 톡해 운영 뢀담을 μ΅œμ†Œν™”ν–ˆμŠ΅λ‹ˆλ‹€. 특히 Lambda Layerλ₯Ό ν™œμš©ν•˜μ—¬ 곡톡 λΌμ΄λΈŒλŸ¬λ¦¬μ™€ 쒅속성을 효율적으둜 κ΄€λ¦¬ν•˜κ³ , μ½œλ“œ μŠ€νƒ€νŠΈ μ΅œμ ν™”λ₯Ό μœ„ν•΄ ν•¨μˆ˜λ³„ λ©”λͺ¨λ¦¬μ™€ νƒ€μž„μ•„μ›ƒμ„ μ„Έλ°€ν•˜κ²Œ μ‘°μ •ν–ˆμŠ΅λ‹ˆλ‹€.

μ„Έμ…˜ 기반 μ»¨ν…μŠ€νŠΈ μœ μ§€ μ‹œμŠ€ν…œ

이전 λŒ€ν™” λ‚΄μš©μ„ ν™œμš©ν•œ 연속적인 μ§ˆμ˜μ‘λ‹΅μ„ μœ„ν•΄ DynamoDB 기반의 μ„Έμ…˜ 관리 μ‹œμŠ€ν…œμ„ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. 각 μ‚¬μš©μžμ˜ λŒ€ν™” νžˆμŠ€ν† λ¦¬λ₯Ό Messages λ°°μ—΄ ν˜•νƒœλ‘œ μ €μž₯ν•˜κ³ , μƒˆλ‘œμš΄ 질의 μ‹œ 이전 μ»¨ν…μŠ€νŠΈμ™€ ν•¨κ»˜ AI λͺ¨λΈμ— μ „λ‹¬ν•˜μ—¬ 더 μ •ν™•ν•œ 닡변을 μƒμ„±ν•©λ‹ˆλ‹€. λ©”λͺ¨λ¦¬ νš¨μœ¨μ„±μ„ μœ„ν•΄ μ„Έμ…˜λ‹Ή μ΅œλŒ€ λ©”μ‹œμ§€ 수λ₯Ό μ œν•œν•˜κ³ , 였래된 μ„Έμ…˜μ€ TTL을 톡해 μžλ™ μ‚­μ œλ˜λ„λ‘ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. 특히 MCP ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ process_user_input_with_history λ©”μ„œλ“œλ₯Ό 톡해 νžˆμŠ€ν† λ¦¬ 기반 μ²˜λ¦¬μ™€ 일반 처리λ₯Ό κ΅¬λΆ„ν•˜μ—¬ μ„±λŠ₯을 μ΅œμ ν™”ν–ˆμŠ΅λ‹ˆλ‹€.

API Gateway 톡합 및 λΌμš°νŒ… μ‹œμŠ€ν…œ

λͺ¨λ“  Lambda ν•¨μˆ˜λ“€μ„ ν†΅ν•©ν•˜λŠ” 단일 API Gatewayλ₯Ό κ΅¬ν˜„ν•˜μ—¬ RESTful API μ—”λ“œν¬μΈνŠΈλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. AWS_PROXY 톡합 방식을 μ±„νƒν•˜μ—¬ Lambda ν•¨μˆ˜μ—μ„œ HTTP μš”μ²­κ³Ό 응닡을 직접 μ²˜λ¦¬ν•  수 μžˆλ„λ‘ ν–ˆμœΌλ©°, 각 μ„œλΉ„μŠ€λ³„λ‘œ λ¦¬μ†ŒμŠ€λ₯Ό λΆ„λ¦¬ν•˜μ—¬ λͺ…ν™•ν•œ API ꡬ쑰λ₯Ό κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€(/llm1, /llm2, /sessions, /execute-query, /create-table, /login, /callback, /models, /req λ“±). CORS 섀정을 톡해 ν”„λ‘ νŠΈμ—”λ“œμ™€μ˜ μ•ˆμ „ν•œ 톡신을 보μž₯ν•˜κ³ , OPTIONS λ©”μ„œλ“œλ₯Ό μ§€μ›ν•˜μ—¬ λΈŒλΌμš°μ €μ˜ preflight μš”μ²­μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€. ν™˜κ²½λ³„ μŠ€ν…Œμ΄μ§€(dev/test/prod) 배포λ₯Ό 톡해 독립적인 API μ—”λ“œν¬μΈνŠΈλ₯Ό κ΄€λ¦¬ν•˜λ©°, CloudFormation을 ν†΅ν•œ μžλ™ν™”λœ API 배포와 버전 관리λ₯Ό κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. 특히 Slack λ΄‡μ˜ 경우 μ„œλ‘œ λ‹€λ₯Έ 인증 방식(OAuth, μŠ¬λž˜μ‹œ μ»€λ§¨λ“œ)에 λŒ€μ‘ν•˜κΈ° μœ„ν•΄ λΌμš°νŒ…λ³„λ‘œ μ„Έλ°€ν•œ κΆŒν•œ 섀정을 μ μš©ν–ˆμŠ΅λ‹ˆλ‹€.

CI/CD νŒŒμ΄ν”„λΌμΈ κ΅¬ν˜„

전체 μ‹œμŠ€ν…œμ˜ 배포와 관리λ₯Ό μžλ™ν™”ν•˜κΈ° μœ„ν•΄ CloudFormation 기반의 IaC(Infrastructure as Code)와 CodeBuildλ₯Ό ν™œμš©ν•œ CI/CD νŒŒμ΄ν”„λΌμΈμ„ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. deploy.sh 슀크립트λ₯Ό 톡해 원클릭 배포가 κ°€λŠ₯ν•˜λ©°, ν™˜κ²½λ³„(dev/test/prod) 독립적인 μŠ€νƒ 관리λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. MCP μ„œλ²„μ˜ 경우 Docker μ»¨ν…Œμ΄λ„ˆν™”ν•˜μ—¬ ECR에 μ €μž₯ν•˜κ³ , Lambda Container Image둜 λ°°ν¬ν•˜λŠ” 방식을 μ±„νƒν–ˆμŠ΅λ‹ˆλ‹€. CloudFormation μŠ€νƒμ˜ μ˜μ‘΄μ„± 관리λ₯Ό 톡해 μ•ˆμ „ν•œ 배포 μˆœμ„œλ₯Ό 보μž₯ν•˜λ©°, 배포 μ‹€νŒ¨ μ‹œ μžλ™ λ‘€λ°± κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

κΈ°μ—¬ κ°€μ΄λ“œ

개발 ν™˜κ²½ μ„€μ •

# 개발 쒅속성 μ„€μΉ˜
cd frontend && npm install
cd ../services/llm && pip install -r requirements.txt

# 둜컬 개발 μ„œλ²„ μ‹€ν–‰
cd frontend && npm run dev

# Lambda ν•¨μˆ˜ 둜컬 ν…ŒμŠ€νŠΈ
cd services/llm && python lambda_function.py

FAQ

Q: μ–΄λ–€ AWS μ„œλΉ„μŠ€λ₯Ό μ§€μ›ν•˜λ‚˜μš”?

A: ν˜„μž¬ CloudWatch, CloudTrail, GuardDuty, Cost Explorer, EC2, Lambda 등을 μ§€μ›ν•˜λ©°, μ§€μ†μ μœΌλ‘œ ν™•μž₯ μ€‘μž…λ‹ˆλ‹€.

Q: λΉ„μš©μ€ μ–Όλ§ˆλ‚˜ λ°œμƒν•˜λ‚˜μš”?

A: μ‚¬μš©λŸ‰μ— 따라 λ‹€λ₯΄μ§€λ§Œ, 일반적으둜 μ›” $10-50 μˆ˜μ€€μž…λ‹ˆλ‹€.

Q: μ˜¨ν”„λ ˆλ―ΈμŠ€μ—μ„œλ„ μ‚¬μš©ν•  수 μžˆλ‚˜μš”?

A: ν˜„μž¬λŠ” AWS ν΄λΌμš°λ“œ μ „μš©μž…λ‹ˆλ‹€.

Q: λ‹€λ₯Έ AI λͺ¨λΈμ„ μ‚¬μš©ν•  수 μžˆλ‚˜μš”?

A: λ„€, Anthropic이 μ œκ³΅ν•˜λŠ” λ‹€μ–‘ν•œ λͺ¨λΈμ„ μ§€μ›ν•˜λ©°, μ„€μ •μ—μ„œ λ³€κ²½ κ°€λŠ₯ν•©λ‹ˆλ‹€.

지원 및 문의

λΌμ΄μ„ μŠ€

이 ν”„λ‘œμ νŠΈλŠ” MIT λΌμ΄μ„ μŠ€ ν•˜μ— λ°°ν¬λ©λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ LICENSE νŒŒμΌμ„ μ°Έμ‘°ν•˜μ„Έμš”.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors