프로젝트 (14) 썸네일형 리스트형 [AWS, 기록] lambda: killed Runtime.ExitError 요약 killed Runtime.ExitError은 lambda 함수에 대한 메모리 할당량 부족으로 인해 발생했을 확률이 높다. 현재 에러가 발생했을 때 로그 상에서 Memory Size 관련 내용을 발견할 수 있다면, lambda 함수에 대한 메모리 할당량을 1.5 ~ 2배 늘려 현재 문제를 해결할 수 있다. 문제 상황 나는 현재 진행 중인 졸업 팀 프로젝트에서 뉴스 기사 데이터 수집 기능과 백엔드 파트를 맡아 개발을 진행하고 있다. 뉴스 기사 데이터 수집 기능의 경우 AWS SQS를 이용하여 작업 범위를 적절한 크기로 쪼개 lambda 함수에서 실행하도록 구현하였고, 여태까지는 잘 동작했다. 그런데, 최근 lambda 함수가 지나치게 여러번 실행되는 현상이 Cloud Watch 로그 상에 나타났다. .. [기록] lambda, 데이터 수집 중 나타난 429 응답 코드 개요 https://blaxsior-repository.tistory.com/245 [HTTP Status] 429 Too Many Requests https://developer.mozilla.org/ko/docs/Web/HTTP/Status/429 429 Too Many Requests - HTTP | MDN HTTP 429 Too Many Requests 응답 상태 코드는 사용자가 주어진 시간 동안 너무 많은 요청을 보냈음을 나타냅니다("속도 제한"). deve blaxsior-repository.tistory.com HTTP 429 응답 코드는 사용자가 일정 시간 동안 너무 많은 요청을 보냈으므로, 요청 전송을 지연 또는 조절하라는 의미를 담고 있다. Retry-After 헤더를 통해 정확히 얼마.. [기록] EventBridge rule, lambda, 시간대 cron 기반 스케줄링 aws lambda에 cron 스케줄러를 적용하려면 EventBridge 서비스를 이용한다. https://aws.amazon.com/ko/eventbridge/ 서버리스 이벤트 라우터 - Amazon EventBridge - Amazon Web Services Amazon EventBridge 이벤트 버스는 이벤트 수신, 필터링, 변환, 라우팅 및 전송에 도움이 되는 서버리스 이벤트 버스입니다. aws.amazon.com eventbridge는 이벤트 기반으로 애플리케이션을 연결하는 서버리스 서비스로, 버스 · 파이프 · 스케줄러 등의 방법을 통해 AWS의 다양한 애플리케이션을 연동하는데 도움을 준다. 현재 나는 네이버 뉴스 사이트로부터 뉴스 목록을 가져오는 기능을 구현했고, 이.. [기록] ec2, lambda, 서버 구성에 대한 고민 최근 졸업 팀 프로젝트에서 백엔드 서버 구현 역할을 맡고 있다. 내가 맡은 역할은 크게 2가지로 나눌 수 있겠다. nest.js 기반 API 백엔드 구성 cron(스케줄) 기반으로 동작하는 데이터 스크래핑 로직 구현 현재 글에서는 2번 항목에 대한 고민을 기록한다. 이전에 네이버 뉴스 URL 분석 및 댓글 API 분석에 대한 글을 작성한 적이 있다. 뉴스 URL 분석: https://blaxsior-repository.tistory.com/235 댓글 API 분석: https://blaxsior-repository.tistory.com/231 두 가지 분석 결과를 기반으로 키워드에 대한 기사 및 댓글 목록을 가져오는 함수를 작성했다. https://github.com/blaxsior/crawler-pro.. [크롤링] 네이버 뉴스 URL 쿼리 파라미터 현재 키워드를 기반으로 네이버 기사 본문 및 댓글 목록을 가져오는 프로젝트를 진행하고 있어 알게된 점을 정리해둔다. 네이버의 뉴스 검색 탭의 경우 옵션 탭을 통해 여러가지 필터 항목을 제시한다. 해당 옵션 목록을 단순 검색 뿐만이 아니라 크롤링에도 활용할 수 있다면 더 효율이 높아질 것이다. 또한 당연하게도 이러한 옵션들은 크롤링 과정에서도 활용할 수 있다. 위 보이는 옵션들은 url의 query parameter 상에 표현된다.일부 검색 항목을 변경해가면서 검색을 진행하면 어떤 쿼리 값이 옵션과 대응되는지 볼 수 있다. 예를 들어 아래와 같이 검색 옵션을 지정하고 "윤석열"을 검색해보자. 위 옵션에서 발생한 URL은 다음과 같다. https://search.naver.com/search.naver?wh.. [크롤링] 네이버 뉴스 댓글 API 분해해보기 네이버 뉴스 댓글은 "더보기 버튼"이 존재해서 댓글을 특정 개수 단위로 가져올 수 있다. 이것만 보면 페이지가 동적으로 동작하므로 셀레니움 기반으로 데이터를 가져오는 프로젝트가 많이 있었다. 처음에는 나도 댓글 수집을 셀레니움 기반으로 해야 하나 고민을 했다. 나는 가능한 한 네이버 댓글을 셀레니움 없이 크롤링 할 수 있기를 원했다. 셀레니움은 브라우저를 직접 조작하는 방식이라 단순 http 통신보다 속도가 느리기 때문이다. 진행 중인 프로젝트에서 하루의 특정 시간마다 뉴스 데이터를 수집 및 가공하여 머신러닝을 돌려야 하는데 데이터 양이 상당할 수도 있다는 점, 사용되는 서버 환경이 기껏해야 EC2 프리티어 수준에서 조금 좋은 수준일 것이라고 예상하는 점을 고려하면 데이터를 최대한 짧은 시간 내에 읽어 .. 이전 1 2 다음