우아한테크코스

Server & Infra

Grafana, Loki, Promtail 을 이용한 로그 모니터링 및 알림 시스템

로그 모니터링 시스템의 필요성 Logback을 이용해 날짜별, 로그 레벨별 로그 파일들을 관리하고 있었지만, 로그를 확인하려면 개발, 운영 서버에 직접 들어가서 log 파일을 열어서 확인해야 했습니다. 날짜별로, 레벨 별로도 분리되어 있고, 개발 운영 환경별로도 로그가 분리되어 있어 통합적으로 모니터링하는 것은 상당히 어렵습니다. 또한 최근 일주일 동안 특정 로그가 몇 건 발생했는지와 같은 로그 집계나 특정 시간 내에 어떤 로그가 몇 건 이상 발생 시 알림 전송 기능도 있으면 크게 도움될 것 같습니다. Grafana, Loki, Promtail의 역할 promtail is the agent, responsible for gathering logs and sending them to Loki. loki i..

Server & Infra

천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기

천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 영상을 보고 정리한 포스팅입니다! 포스팅에 첨부된 모든 이미지는 Amazon Web Service Korea에서 업로드한 위 영상 내에 나오는 이미지임을 알립니다~! 천만 사용자를 위한 아키텍처 1,000만명이 사용해도 서비스할 수 있도록 팀의 인프라 아키텍처 개선 방향을 고민한다 (구현 X) 팀 프로젝트 요구사항으로 제시된 문구입니다. 구현은 하지 않아도 되지만, 천만 사용자를 감당할 수 있는 아키텍처에 대해 고민해보라는 것이죠. 최근 카카오의 장애 사례를 겪으면 SPOF를 없애는 것의 중요성을 크게 깨달은 바 있는데요, 천만 사용자를 감당하려면 물리적으로 뛰어난 성능도 중요하지만 SPOF를 없애고, 재난 복구(DR)를 구축하는 것도 중요할 것 같습..

Server & Infra

확장 가능한 알림 시스템 설계 구상

확장 가능한 알림 시스템의 설계는 오랜 시간 저의 지적 호기심을 자극해왔던 주제입니다. WAS를 스케일 아웃 할 경우에, 개별 WAS가 DB에 저장되어 있는 알림 정보를 특정 시간마다 조회해와서 알림을 발송할 경우, 중복 알림 발송이 발생할 수 있기에 수평확장 가능하지 않다고 판단했고, 이에 따라 하나의 큐처럼 동작하는 별도의 알림 서버를 구성해서 그곳으로 알림 요청을 보내야한다고 판단했습니다. 그러나 이 경우, 하나의 큐에서 알림들을 받아 처리하기 때문에, 이 역시 확장가능하지 않다고 생각했었는데요, 쿠팡 Reveal2021과 가상 면접 사례로 배우는 대규모 시스템 설계 기초의 내용을 접한 뒤, 이렇게 구성하면 되겠구나 하는 생각이 들어 도식표를 그려봤습니다. 하나의 알림 큐에 모든 알림 요청을 담고,..

Server & Infra

'Reveal2021 - 쿠팡의 대규모 트래픽을 다루는 백앤드 전략'을 보고

Reveal2021 - 쿠팡의 대규모 트래픽을 다루는 백앤드 전략 영상을 보고 정리해본 포스팅입니다. 최근 이 영상에서 다룬 문제에 대해 고민하고 있었는데, 너무 멋진 대응 예시를 보게 되어 기쁩니다! 이 영상의 해결방법을 지금 진행중인 프로젝트에 바로 적용하기엔 어렵지만 이러한 접근이 가능하다는 것을 들을 수 있어서 감사했습니다. 많은 데이터를 요구하는 화면 위 예시 이미지에서 보여지는 화면에 필요한 데이터를 구현한다면 어떻게 해야 할까요? 카탈로그, 가격, 혜택가격, 재고 수량, 리뷰 수와 평점, 적립액을 응답해줘야할 겁니다. 그 중에 리뷰와 평점만 살펴본다면 어떨까요? 예시 이미지상 카운트가 4300인데요, 상품 아이디로 리뷰들을 카운팅하고, 갯수로 총점을 나눠서 평점을 구할 수 있겠네요. 카운팅과..

Server & Infra

Apache JMeter를 이용한 부하 테스트 및 리포트 생성

서버의 성능을 최적화하기 위해선 어떤 작업이 필요할까요? 어떤 지표를 기준으로 성능을 측정할 것인지, 정의된 지표에 영향을 미치는 변수에는 무엇이 있는지, 해당 변수들의 변화가 성능에 미치는 영향은 어느 정도인지 등 많은 작업이 필요할 것입니다. 그 중에서도 반복해서 요청을 발생시킴으로써 지표를 측정할 수 있게 해주는 테스트 도구는 필수 불가결합니다. 이번 포스팅에선 Apache JMeter를 이용해 부하를 발생시키고, 그 결과를 리포트로 생성해보겠습니다. 부하 테스트를 위한 도구들 어떤 부하 테스트 도구를 사용할까요? 주변에서 가장 많이 접했던 k6, nGrinder, JMeter 세 가지를 고민했습니다. 처음엔 성능 측정을 위해 어떤 지표가 필요하고, 각 도구가 어떤 지표를 제공하는지 등을 고려했는데..

리차드
'우아한테크코스' 태그의 글 목록