전체 글(71)
-
aws-cli 로 AWS 접속하기
이번 포스팅에서는 aws-cli 를 통해 터미널에 접속하고 로컬의 터미널 창에서 AWS API 를 작동시키는 방법을 알아보겠습니다. IAM 에는 infra-admin 이라는 유저가 있고, 해당 유저는 AdministratorAccess 정책을 가지고 있습니다. 정책이 infra-admin 에게 Directly Attached 되어 있습니다.해당 정책(AdministratorAccess)은 모든 권한이 허용되어 있다고 보면 됩니다. AdminitratorAcess 정책현재 시점에는 415개가 전부 체크되어 있습니다. 해당 유저의 Access Key, Secret Access Key를 발급할 수 있습니다.해당 키를 가지고 ssh 를 통해 AWS-CLI 로 접근할 수 있습니다. AWS-CLI 란?로컬 컴..
2024.06.07 -
[쿠폰] 서버 모니터링 및 부하테스트
https://github.com/Jungsu-lilly/Coupon-Service/issues/13 서버 모니터링 및 배포 · Issue #13 · Jungsu-lilly/Coupon-ServiceDescription 📝 Grafana로 서버 모니터링을 수행합니다. 실제 서비스를 배포하고 성능 테스트를 진행합니다. TODO ✅ grafana로 서버 모니터링 환경 구축 성능 테스트 수행github.com Prometheus + Grafana 를 사용해 서버 매트릭을 수집하고, 모니터링한 과정을 작성하려고 합니다. 실제 AWS 에 배포한 후 CloudWatch로 모니터링도 진행했습니다. 현재 프로젝트는 3가지 모듈로 구성되어 있습니다.coupon-api제일 앞단에서 API 요청을 받는 서버, 응답 또한 ..
2024.05.12 -
레디스 쿼리로 서버 RPS 개선
이전 포스팅에서 이어집니다 (:https://matt1235.tistory.com/73https://matt1235.tistory.com/74 Spring Boot + Redis 로 쿠폰 발급 요청을 적재하고, 발급 내역을 저장하는 서버를 구현했습니다.쿠폰 발급 요청이 들어왔을 때, 처리 순서는 다음과 같습니다. 1. 쿠폰 엔티티 캐싱@Cacheable 어노테이션을 통해 스프링에서 쿠폰 엔티티 조회 결과를 캐싱한다.단기간에 쿠폰 발급을 요청하는 트래픽이 몰릴 때, 캐싱으로 성능을 향상시킬 수 있다.@Service@RequiredArgsConstructorpublic class CouponCacheService { private final CouponIssueService couponIssueSe..
2024.04.29 -
[쿠폰] Redis 기반 비동기 시스템 구현
이전 포스팅에서 이어지는 내용입니다. https://matt1235.tistory.com/73 Redis를 사용해 쿠폰 발급을 요청하는 로직을 비동기로 구현했습니다. 시스템 구조는 다음과 같습니다. 동작 방식 유저의 요청을 API 서버에서 받아서 처리하고, 쿠폰 발급 요청을 Redis 에 던집니다. 레디스에서 쿠폰 발급 요청을 처리할 때 Set에 쿠폰 발급 내역을 저장하고, List로 된 대기열 큐에 쿠폰을 집어넣습니다. 비동기적 방식으로 쿠폰 발급을 처리하며, 레디스를 통한 많은 트래픽 대응이 가능하도록 설계했습니다. Redis 에서 사용한 자료구조는 Set, List 입니다. 시나리오 1. 유저의 쿠폰 발급 요청이 들어온다. (coupon_id, user_id) 2. 발급 수량 조회 및 검증 지정된..
2024.04.21 -
[쿠폰] 트러블 슈팅 - 동시성 처리
대용량 트래픽이 발생했을때의 상황을 가정하여, 부하테스트를 진행하여 발생한 이슈와 트러블 슈팅에 대해 작성하고자 합니다. 서비스에서 중요한 부분은 트래픽이 단시간에 몰릴 때 오류가 없고 다운되지 않는 서버를 설계하는 것입니다.고객 입장에서 서버가 느려지거나 다운된다면 이탈율이 높아지기 때문이겠죠...! 저 같은 경우에도 앱이 먹통이 되거나 오류가 발생하는 일이 잦아지면 다른 대체 앱을 찾고는 합니다. 이것이 대용량 트래픽 경험이 중요한 이유 중 하나일 것입니다. 단기간에 대량의 트래픽이 몰리는 상황은 아래와 같은 경우들이 있습니다.뮤지컬 티켓팅대학교 수강신청배달어플 및 숙박 앱에서 선착순 할인 쿠폰 뿌리기배달 어플에서 선착순으로 할인 쿠폰을 발급받았던 경험을 떠올리면서..
2024.04.15 -
Docker, Github Actions 로 CI/CD 구축하기
본 포스팅에서는 Docker, Github Actions 을 통해 CI/CD를 구축한 과정을 적어보려 합니다. 프로젝트명 - PLAC(Planning-Your-Activities) https://github.com/PLAC-Planning-Your-Activities/plac-server 배포 자동화는 Github Action 을 사용했습니다. 깃허브 리포지토리에서 main 브랜치로 push를 받는 순간 Github Action으로 트리거되어 프로젝트가 정상인지 테스트한 후, 빌드하여 AWS 로 자동 배포하게 됩니다. 도커, Github Action을 사용한 이유 -> 편리하고 강력하다고 생각해서 깃허브 액션은 깃허브 자체에서 제공해주는 것으로 프로젝트 내의 deploy.yml 파일을 작성하는 것만으로 ..
2024.03.11