Weather-Fit Project Team 2 AWS Serverless Architecture 리전: us-east-1

기상 및 대기질 정보 AI 가이드라인 서비스

EventBridge, Lambda, DynamoDB, Bedrock AI를 활용한 데이터 파이프라인 및 프롬프트 캐싱 설계 구조

코어 데이터 수집 및 서비스 아키텍처

  • 데이터 수집 (30분마다 + 매시간)

    EventBridge + Lambda 두 종류로 운영합니다. inhatc-team2-5-real-time-dataAPI는 rate(30 minutes)로 실시간 날씨·대기질 수집, inhatc-team2-5-dataAPI는 rate(1 hour)로 raw 데이터 수집합니다.

  • Raw 데이터 저장

    수집된 원본 데이터는 Amazon S3(inhatc-team2-5-raw-data)에 원본 그대로 적재됩니다.

  • 최신 상태 저장 (캐시 DB)

    현재 날씨 상태는 inhatc-team2-5-weather-cache(PK: region_code)에, 현재 대기 상태는 inhatc-team2-5-air-cache(PK: stationKey)에 분리 저장합니다.

  • 프론트엔드 및 API 제공

    S3(inhatc-team2-3-frontend)에 배포된 정적 웹은 CloudFront(엣지 캐싱)와 WAF(보안 방화벽) 환경에서 제공됩니다. 브라우저 단에서 inhatc-team2-1-recommendAPI Lambda URL을 직접 비동기 호출하여 데이터를 렌더링합니다.

AI 가이드라인 및 캐싱 파이프라인

기능: 대기질 및 기상 상태에 따른 의상, 마스크, 우산 착용 가이드라인과 한줄평 제공

  • 가이드라인 캐싱 (inhatc-team2-1-recommend-cache)

    PK = weather_pattern으로 캐싱. TTL 없음(영구 보관).

  • 일일 배치 프로세스 (24시간 주기)
    • 수집된 모든 데이터의 중복을 제거하여 유니크한 기상패턴 추출
    • 기존 inhatc-team2-1-recommend-cache 캐시 데이터 초기화
    • 새로운 기상 패턴들을 Bedrock AI (프롬프트 캐싱 적용)에 일괄 전송
    • 생성된 AI 답변을 캐시 DB에 적재

서비스 아키텍처 데이터 흐름도

1. 실시간 수집 파이프라인 (rate(30 minutes) — inhatc-team2-5-real-time-trigger)

외부 API
기상청 초단기실황 / 에어코리아
inhatc-team2-5-real-time-dataAPI
Lambda (Timeout: 600s)
inhatc-team2-5-weather-cache
PK: region_code
inhatc-team2-5-air-cache
PK: stationKey

2. 정기 수집 파이프라인 (rate(1 hour))

외부 API (4개)
기상청, 에어코리아 등
inhatc-team2-5-dataAPI
Lambda
Amazon S3
inhatc-team2-5-raw-data

3. 사용자 요청 처리

CloudFront + WAF 보안 라우팅
클라이언트 (브라우저)
1. inhatc-team2-3-frontend (S3)에서 웹앱 로드
2. 비동기로 날씨 정보 요청
inhatc-team2-1-recommendAPI
1. weather-cache / air-cache 조회
2. 메모리에서 기상패턴 동적 조립
3. inhatc-team2-1-recommend-cache 조회
inhatc-team2-1-recommend-cache
Hit 시 즉시 반환
Miss 시 (패턴 미존재)
Bedrock (Claude 3.5 Haiku)
생성 → DB 저장 후 반환

4. 일일 배치 파이프라인 (24시간 주기)

데이터 중복 제거
유니크한 기상패턴 추출
Bedrock AI
프롬프트 캐싱 / 일괄 생성
DynamoDB
inhatc-team2-1-recommend-cache
PK: weather_pattern

상세 컴포넌트 설명

  • 날씨 캐시 (inhatc-team2-5-weather-cache)

    PK: region_code. 30분마다 최신 초단기실황 데이터로 갱신됩니다.

  • 대기 캐시 (inhatc-team2-5-air-cache)

    PK: stationKey(sidoName#stationName). 30분마다 최신 대기질 데이터로 갱신됩니다.

  • 추천 캐시 (inhatc-team2-1-recommend-cache)

    PK: weather_pattern. AI가 생성한 가이드라인 저장. TTL 없음(영구 보관).

  • 동적 조립 로직 (inhatc-team2-1-recommendAPI)

    요청 시 weather-cache / air-cache를 읽어 메모리 상에서 기상패턴을 즉시 조립하여 recommend-cache를 조회합니다.

AI 생성 및 최적화 전략

  • 실시간 Fallback (Miss Handling)

    요청된 기상패턴이 inhatc-team2-1-recommend-cache에 없을 경우, 즉시 Bedrock AI를 호출하여 결과를 생성하고 DB에 저장 후 반환합니다.

  • 프롬프트 캐싱 (Prompt Caching)

    Bedrock AI 호출 시 공통된 가이드라인 규칙 프롬프트를 캐싱하여 응답 속도를 높이고 API 호출 비용을 절감합니다.

  • 일일 배치 처리 비용 절감

    24시간 동안 수집된 데이터 중 중복을 제거한 유니크 패턴만 일괄 생성하여 Bedrock 호출 비용을 극소화합니다.

← 문서 포털로 돌아가기