Issue Point
WPS 수집 주기를 30일로 늘리고, 조회수 업데이트용 데이터 수집을 10분 간격으로 하는 get-donga-analytics의 GA_MAX_CONCURRENT_BATCHES 를 Analytics 360 권장량인 15로 늘린 후 12시간 모니터링 결과 → 주기적으로 에러 로그가 발생 → 동아닷컴 데이터 수집 X
•
429 에러
ga4 요청 quota에 비해 너무 잦은 요청이 들어올 경우 too many request 429 에러 발생.
Solution
Lambda의 Reserved Concurrency 값을 3으로 올려서 리소스 확보 후, SQS 트리거의 Maximum Concurrency도 3으로 올려서 GA4 동시 요청이 많을 경우에도 메시지가 밀리지 않게 설정.
그럼에도 오류가 지속적으로 발생하여 MAX_CONCURRENT_BATCHES 값을 기존 15에서 5로 줄임.
GA4의 Concurrent Limit는 50회 인데, 기존 15로 했을때 15 x 요청 3이 들어가서 45, Lambda 리소스 3개면 135개 동시 요청이 뜨기 때문에 한도 초과가 뜸.
→ 5(Lambda) x 3(Batch) x 3(Request) = 45로 조정.
get_donga_view_count Lambda가 실행되지 않아, windows 서버 내의 local-workers .env 내부에 SQS_VIEW_UPDATE_QUEUE_URL=https://sqs.ap-northeast-2.amazonaws.com/715841357940/donga-article-ids-for-view-update 추가해서 view_count 파이프라인도 추가로 활성화.
GA4 concurrent quota를 나눠써야 하기 때문에, 기존 get-donga-anayltics 값 3으로 올린 부분 다시 1로 초기화. MAX_CONCURRENT_BATCHES 도 5 → 4 / 4 → 2 로 수정
•
계산 (GA4 quota : 50)
1.
get-donga-analytics : 2 x 4 x 3 = 24
2.
get-donga-view-count : 2 x 2 x 2 = 8
동시성 총 30 / 50 사용 중
Fix
위와 같이 파라미터를 조정했을 때, 일시적으로 데이터 수집을 해오지만 결국 전체 데이터를 모두 처리하진 못하고 계속 429에러가 생김(GA4 quota limit)
→ 30일 to 7일로 롤백처리
→ quota 초기화는 한국 시간 기준 16~17시 경.
때문에 15시까지 트리거 비활성화 후, quota 초기화되는 시간 맞춰서 다시 활성화 예정
→ 30일치 데이터는 배치처리를 통해 일일 및 시간당 quota 범위 내에서 소량씩 집계

