공공 API 크롤러 개발기
두줄요약
공공 API 만료일을 자동 확인하기 위해 Puppeteer 기반 Lambda 크롤러와 알림을 구현했습니다. 배포 용량, 메모리, Chromium 샌드박스 문제의 대응 과정도 공유했습니다.
문제 상황
- 공공데이터포털 구독 API의 2년 갱신 만료일을 별도 알림 없이 수동 확인해야 하는 불편
- 구독 API 목록 제공 API 부재와 클라이언트 렌더링 페이지 구조
해결 방법
- Puppeteer 기반 로그인·DOM 파싱으로 구독 API와 당월 만료 대상 수집
- EventBridge 기반 Lambda 호출, 잔디 웹훅과 Nodemailer 이메일 알림 연동
- 폰트·이미지·스타일시트 요청 차단과 alert dismiss 처리로 브라우저 작업 경량화
성능/운영 포인트
- Lambda 패키지 크기 제한 대응을 위한 puppeteer-core·chrome-aws-lambda 조합
- CloudFormation 이벤트로 Serverless 배포 실패의 실제 원인 확인
- 브라우저 실행 실패 대응을 위한 Lambda 메모리 증설과 --no-sandbox 플래그 적용
적용해볼 점
- 접근 차단 상황 대비 puppeteer-stealth-plugin, anti-captcha, user-agent 전략 검토

