본문 바로가기
카테고리 없음

실시간 지하철 도착 정보 ELT Architecture 구축

by 리노 Linho 2023. 3. 17.

데이터 파이프라인 아키텍처

Architecture

AWS 서비스 종류별 설명

  • 시간 지하철 도착정보 API, 서울시에서 제공하는 서버이며 JSON으로 데이터를 반환한다.
  • AWS S3, 년/월 기준으로 폴더를 나누며 제공받는 JSON을 파일을 저장한다.
  • AWS Lambda, API요청 후 반환된 JSON파일을 AWS S3 버킷까지 운반한다.
    • Golang, API 요청후 결과값을 S3로 반환한다.
    • Docker, Golang을 Container 형태로 말아서 Lambda에서 실행되도록 한다.
  • AWS EventBridge, Lambda가 실행될 주기와 횟수를 지정한다. ( 1분 주기 )
    • 1분에 한번씩 요청함으로 하루에 1440번 요청한다.

핵심요소

  • JSON 용량은 어느정도인가?
    • 많은 지하철이 운영할때는 JSON 1개의 파일이 약 2.4MB까지 올라간다.
    • 적게 운영하는 새벽때의 시간에는 77KB까지 작아진다.
    • 하루에 약 2.3GB 정도의 JSON 파일을 수집한다.

앞으로 계획

  • Golang Goroutine을 활용하여 사용자가 요청한 조건에 해당하는 JSON 파일을 분석할 수 있는 툴을 개발한다.
  • AWS Athena 서비스가 있으나, 해당 서비스를 직접 개발하여 확장성을 키워갈 예정

API 요청 대상

https://data.seoul.go.kr/dataList/OA-15799/A/1/datasetView.do