분류 전체보기

· AWS
개요 이번 실무에 투입할 Redis를 공부해 보며 AWS 상에 구축하려고 하다가 ElasticCache를 경험해보고 싶다는 생각이 문득 들어 구축을 진행해 보았습니다. 로컬에서는 Docker를 활용하여 쉽게 Redis를 구축해서 개발할 수 있지만 운영환경에서는 복제나 고가용성까지 신경 써서 구축하고 관리해야 하므로... 다들 아시듯이 실무에서는 러닝커브를 뛰어넘을만한 시간을 주지 안.... 핑계입니다. 어쨌든 그래서 ElasticCache를 사용할 것이라고 생각은 하고 있었기 때문에 이번에 구축을 간단하게라도 해보았습니다. Amazon ElasticCache란? Amazon ElastiCache는 클라우드에서 인 메모리 데이터 스토어 또는 캐시를 손쉽게 배포, 운영 및 확장할 수 있게 해주는 웹 서비스입..
· Redis
개요 Spring 프로젝트 같은 멀티 쓰레드 환경에서는 동시성 처리가 필요한 상황이 발생합니다. 서버가 1대라면 쓰레드 동기화를 통해 처리가 가능하지만, 서버가 여러대로 늘어난다면 요청이 분산되기 때문에 무용지물이 됩니다. 만약 쇼핑몰에서 재고가 1개인 상품을 2명의 회원의 동시에 주문한 경우 2번에 요청에서 상품을 조회 당시에는 재고가 1개이므로 2명의 회원 모두 주문에 성공하는 경우가 발생할 수 있습니다. ZooKeeper나 MySQL 분산락을 사용할 수 있지만 Redis를 도입하고있고, 예정이라면 Redis를 통해 분산락으로 동시성 처리가 가능합니다. 라이브러리 선택 Redis를 이용해 분산락을 사용하기 전에 고려해야 할 것이 있는데 어떠한 라이브러리를 사용할 것인가 입니다. Spring에서 제공하..
· Redis
HA(High availability)와 Sentinel Redis 서버를 한 대로만 서비스할 경우 단순히 캐시 용도로만 사용하거나 클라이언트에서 해싱해서 사용한다면 장비에 이상이 발생해 데이터 일부가 사라진다고 하더라도 문제가 없지만 유실되어서는 안 되는 데이터에 경우에는 큰 문제가 발생할 수 있습니다. 이러한 문제들을 방지하지 위해 Redis 서비스를 운영할 때는 기본적으로 마스터/슬레이브 형태로 서비스하는데, Redis 2.6 버전부터 슬레이브의 slave-read-only가 yes로 설정되어 있어서 쓰기 요청은 모두 실패하므로 슬레이브의 전환 기능은 꼭 필필요합니다. 또한 장애가 발생하더라도 제대로 운영하려면 마스터의 장애를 정확히 판별하고 슬레이브를 마스터로 승격해야 시켜야 합니다. 그다음 해당..
· Redis
Redis 복제 Redis 주요 특징 중 하나가 DBMS에서 제공하는 유사한 복제 기능이 있다는 것입니다. 복제 기능은 장애 발생 시 빠른 서버 교체나 장비 교체 등에 사용할 수 있습니다. Redis 복제 모델 Redis는 마스터/슬레이브 형태의 복제 모델을 제공합니다. 이를 통해서 마스터의 변경이 슬레이브로 전파됩니다. 한 대의 슬레이브는 오직 한 대에 마스터만 가질 수 있고 슬레이브는 다른 장비의 마스터로도 동작할 수 있습니다. Docker Compose를 이용한 Redis 마스터 슬레이브 구성하기 1. 네트워크 생성 $ docker network create redis-network --driver bridge $ docker network ls NETWORK ID NAME DRIVER SCOPE ..
· 독서
아티스트와 기업가의 공통점 아티스트는 본질에 집중한다. 그 본질은 옳고 그름의 영역이 아니고 해석의 영역이다. 그 해석에 혼이 담겨 있으면 그뿐이다. 기업가도 그렇다. 본질은 타고나는 것도 아니고 주어지는 것도 아니다. 해석하고 선택하고 결정하는 것이다. 개인이 먼저 할 일은 본질이 아님이 분명한 것을 제거하는 것이다. 무엇을 하지 않을 것인가를 결정하는 것은 무엇을 할 것인가를 결정하는 만큼 중요하다. 피곤해도 굳이 해야 하는 것, 돈이 들어도 굳이 해야 하는 것, 사람들이 이해해주지 않아도 굳이 해야 하는 것이 나의 본질이다. 학생도 바쁘고, 직장인도 바쁘고, 주부도 바쁘다. 주어지는 시간도 24시간으로 똑같다. 왜 바쁜가 하면 굳이 안 해도 되는 걸 하고 있기 때문이다. 그러니까 굳이 해야 할 일을..
· 회고
벌써 블로그를 운영한 지 2년이 넘었다. 매년 회고록을 쓰자고 다짐했지만 2022년은 그냥 넘어간 듯한데... 어쨌든 2년 전 회고록을 작성하던 장소에서 2023년 회고록을 작성하고 있다. 2021년 회고록을 보면서 그때부터 지금까지 무엇을 성장시켰고 배웠는지 알 수 있었다. 이래서 다들 회고록을 써야 한다 하는구나.. 첫 회고록을 작성할 때 누적 방문자 수가 3천 명 정도 되었는데 지금은 30만 명이 다 돼 간다. 누구에겐 누적 방문자 수는 별 의미 없는 숫자일 수 있지만 나에게는 노력했고 성장했다는 증거이기 때문에 뿌듯하다! 전에는 기술적인 생각만 고민했다면 지난 2년 동안은 많은 새로운 사람들을 만났고 여러 가지 경험도 해보고 기술적이 아닌 다른 쪽에서 느낀 것이 참 많았다. 앞으로 나는 어떻게 내..
· 독서
꿈은 없다 동물은 욕구는 있지만 욕망은 없다. 욕망은 인간만이 가진 고도의 정신활동이다. 그런 욕망을 훈련한 소수의 사람들이 인간을 달에 가게 했고, 자동차를 만들었고, 백신을 만들었고, 컴퓨터와 인터넷, 휴대폰을 만들었다. 지금 우리가 살고 있는 세상은 취업한 사람들이 아니라 자신의 꿈을 지키고 키워온 사람들이 만들었다. 나만의 세계를 구축해가는 것 나는 꿈을 이렇게 정의한다. 꿈에 대한 나의 해석이다. 다르게 말하면 인생에 대한 나의 해석이다. 당신 잘못이 아니다, 아직까지는 "여기 사과와 배가 있습니다. 사과와 배 중 어느 것을 드시겠습니까?" 둘 중 하나를 선택했다면 미끼를 물어버린 것이다. 둘 중 하나를 선택하라는 요구를 받으면 사람은 쉽게 다른 과일을 잊어버린다. 과일 외에 다른 먹거리도 떠올..
· AWS
RDS가 private subnet에 구축되어 있을때 외부에서는 RDS에 접속할 수 없습니다. 보안을 위해서 이렇게 구축하고는 하는데 실제 개발하는 도중에 직접 RDS에 접속하는 일이 많습니다. 이런 상황에 매우 간단한 방법으로 EC2를 터널링으로 사용해 private subnet에 있는 RDS에 접속이 가능합니다. 1. EC2 생성 먼저 사용할 EC2를 생성합니다. EC2 이름을 설정하고 Amazon Linux로 생성하겠습니다. 꼭 Amazon Linux가 아니여도 됩니다. 키 페어를 선택하거나 새로 생성합니다. 요 키 페어로 ssh 터널에 접속하니 분실하거나 외부로 유출되서는 안됩니다! 네트워크 설정에서 편집 버튼을 클릭해 외부에서 접속할 수 있는 public subnet을 선택하고 터널링을 위해 보..
· Redis
Redis는 싱글 스레드 Redis를 사용하다 보면 장애가 발생하거나 성능이 예측한대로 나오지 않는 경우가 종종 발생합니다. 이들은 모두 Redis가 싱글 스레드라는 것을 잊어버리거나 모르고 있기 때문에 발생하는 현상입니다. 싱글 스레드인 Redis는 시간이 오래 걸리는 명령어를 호출하면 그 명령어를 처리하는 동안 다른 클라이언트의 요청을 처리할 수가 없습니다. 이로인한 실무에서 흔히 하는 실수의 사례를 살펴보겠습니다. 1. 서버에서는 Keys 명령어를 사용하지 말자. Redis 명령어 중에, 현재 서버에 저장된 Key 목록을 볼 수 있는 keys 명령어가 있습니다. 모든 Key를 가져올 때는 "*"를 사용하고 특정한 문자가 들어가 있는 Key를 가져올때는 "*문자*"를 사용합니다. 127.0.0.1:6..
· Redis
1. Redis의 이해 Redis란 무엇인가? Remote Dictionary Server로 key-value 형태로 데이터를 저장하고 관리하는 서버를 의미합니다. Redis의 주요 사용자들은 이미 대규모 서비스를 운영하고 있는 큰 기업들이다. 여러가지 Red devbksheen.tistory.com 1. Redis의 이해글에서 Redis가 무엇인지 특성은 무엇인지 이해해 보았다면 이번글에는 Docker로 Redis를 실행하는 방법에 대해 정리해보겠습니다. 해당 글은 Redis를 실행하는 내용이므로 Docker에 대한 자세한 설명글은 기재하지 않았습니다. 1. Docker Image Pull docker hub에 접속해 redis를 검색해보면 버전을 확인할 수 있습니다. redis Tags | Docke..
beekei
'분류 전체보기' 카테고리의 글 목록