본문 바로가기
반응형

server7

Redis와 Spring Scheduler를 사용해서 사이트 일일 방문자 저장하기 AWS ElasticCache Redis 를 생성해놓고 어디에 쓸지 째려보기만한지 어언 한달... 드디어 결단의 시간이 왔다. Redis를 사용해서 사이트 일일방문자수를 확인하는데 사용하려고 한다. 왜 Redis를 사용하냐면, 실시간으로 접속하는 모든 방문자를 캐치하여 즉시 DB에 저장하는 것은 DB Connection과 I/O를 많이 발생시켜 비효율적으로 보였기 때문이다. 따라서, Redis라는 캐시를 두어 실시간으로 접속하는 방문자를 캐시에 저장해두고 일정시간마다 DB에 저장하여 DB I/O를 줄여보고자 한다. 로직은 다음과 같이 작성하려고 한다. 1. 특정 경로로 온 요청에 대해 방문자 Interceptor 작동. 2. Redis에 ip_date 를 key값으로 존재여부 확인 후 저장. 3. Sch.. 2023. 2. 3.
AWS[Elasti Cache] ElastiCache for Redis란? 노드/샤드/클러스터 Redis? Redis(Remote Dictionary Server)는 오픈 소스 기반 인 메모리 데이터 저장소이다. 데이터를 key-value 형식으로 저장하고 strings, hashes, lists, sets, and sorted sets와 같은 다양한 데이터 구조를 지원한다. 또한 데이터 노드의 Master-Slave 복제, Lua 스크립팅, 키 만료 등 다양한 고급기능을 사용할 수 있다. Redis는 인 메모리 기반 데이터 저장소로 사용되지만 RDB(특정 시점 스냅샷), AOF(쓰기 작업 로그) 방식의 백업을 통해 데이터를 디스크에 저장할 수 있다. 따라서 재부팅이나 충돌이 발생해도 데이터를 보존시켜 계속 사용할 수 있다. Redis는 고성능, 확장성 및 low latency로 유명하므로 실시간.. 2023. 1. 14.
AWS[Elasti Cache] - Redis 생성 및 Ec2에서 접속 미루고 미룬 Redis에 대해 슬슬 다뤄보려 한다. 이미 Ec2에서 was, nginx, jenkins, postgresql까지 돌리고 있어 Redis까지 설치하면 미안한 감정이 들어 Aws에서 제공하는 Elastic Cache를 사용하려고 한다. 바아로 생성해보자. AWS - Elastic Cache 생성 AWS - Elastic Cache검색 후 접속 클러스터 생성 - Redis 클러스터 클러스터 설정 새 클러스터 구성 및 생성 클러스터 모드 비활성화 free-tier는 t2.micro 노드 1개에 대해 무료로 제공하기때문에 동적으로 노드갯수가 늘어나서 요금이 발생하지 않을까하는 우려심에 비활성화 했다. Free-tier를 사용한다면 노드유형을 t2.micro로 셋팅해야 별도로 요금이 부과되지 않는다.. 2023. 1. 12.
Nginx로 Rate limit 설정 멍청함엔 끝이 없다 머리가 멍청하면 몸이 고생하더라,,, 옛 어르신들 말 틀린게 하나 없다. Nginx를 Webserver로 구축하면서 rate limit을 설정이 있는 걸 확인했다. 기존에 Application단에서 Filter로 구현하기 전에 nginx로 구현 가능한지 찾아봤으면 이렇게 두 번 일하는 일이 없을 텐데 이렇게 몸이 고생하는 것도 능력이다. 하하하 Java filter로 rate limit 구현은 아래 링크를 확인하면 된다. https://foot-develop.tistory.com/52 그럼 바로 Nginx에서 rate limit을 어떻게 다루는지 알아보자. Nginx에서 rate limit을 구현하기 위해 네트워킹에서 많이 사용 되는 누수 버킷(leaky bucket) 알고리즘을 사용.. 2023. 1. 4.
반응형