0. redis란?
REmote DIctionary Server
‘키-값’ 구조의 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 in-momory data structure store
특징
○ In-memory data structure
문자열, hash, list, set, sorted set, stream 등의 자료형을 지원하는 “data structure server”
○ Programmability
Lua를 사용한 server-side scripting과 Redis Functions를 이용한 server-side 저장 과정
○ Persistence
빠른 액세스를 위해 데이터 세트를 메모리에 보관하지만, 재부팅 및 시스템 오류가 발생해도 영구 스토리지에 대한 모든 쓰기를 유지할 수도 있다.
○ Clusturing
해시 기반 샤딩을 통한 수평적 확장성, 클러스터 성장 시 자동 재파티션을 통해 수백만 개의 노드로 확장.
○ High availability
독립 실행형 및 클러스터된 배포 모두에 대해 자동 장애 조치가 포함된 replication.
1. EC2에 Redis 설치
$ sudo apt-get install redis-server
$ sudo apt-get install redis-cli
2. redis-cli에서 AUTH 설정하기
redis는 서버가 기본포트 6379로 열려있고 인증없이 접근이 가능하므로 보안상 매우 취약하다.
따라서 requirepass를 설정하거나 acl을 설정해주면 보안을 높일 수 있다.
1. requirepass 설정
$ redis-cli
127.0.0.1:6379> AUTH 비밀번호 (따옴표 없이 작성) // 없는 비밀번호는 접속 불가능
(error) ERR AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?
127.0.0.1:6379> CONFIG SET requirepass 비밀번호 // 따옴표 없이 작성
OK
127.0.0.1:6379> AUTH 비밀번호
OK
참고로 기호에 @를 사용하면 인식을 하지 못한다!
3. Redis 설정.
외부에서도 EC2 인스턴스에 설치된 redis에 접근할 수 있게 설정해야 한다.
$ sudo vi /etc/redis/redis.conf
입력하면 아래와 같은 화면이 나온다

기존에는 bind 127:0:0:1 ::1 이라고 기본적으로 설정이 되어있다.
이를 bind 0:0:0:0 으로 설정해준다!

또한 위와 같이 원격 접속 시 protected mode로 실행되므로 설정에서 protected-mode를 'yes'에서 'no'로 변경하여 보호 모드 비활성화한다.

4. EC2에서 Redis 실행
redis는 인메모리 데이터베이스이기 때문에 실행 중이어야 사용 가능하다.
따라서 ec2 인스턴스를 닫아도 사용할 수 있게 백그라운드 실행을 해주어야 한다.
$ sudo systemctl (re)start redis-server
service와는 달리 systemctl을 사용하면 백그라운드로 redis-server를 실행할 수 있다.
4. Redis 원격 접속
$ redis-cli -h <redis 서버 ip> -p <redis port> -a <password>
5. Redis 사용법
key, value는 따옴표 없이 입력 가능!
데이터 삽입, 조회, 삭제
value 삽입 : set [key] [value]
value 조회 : get [key]
value 삭제 : del [key]
모든키 조회 : keys *
모든키 삭제 : flushall
만료일 조회 : ttl [key]
참고
[Spring, Redis] AWS EC2환경 spring boot에서 redis 연결방법, 연결 안될때 (connection refused)
로컬에서는 redis 서버를 키고 스프링 부트 서버 실행 후 api 테스트를 진행하면 정상 작동하나, ec2환경에서는 정상작동하지 않았다. 결론적으로 redis 외부 접속을 허용해주어야 한다. 아래 전체
0m1n.tistory.com
[Redis] AWS EC2에 redis-server setup 하기
이번 글에서는 AWS EC2에 외부에서 접속 가능한 redis-server를 setup 하는 과정을 정리해보겠습니다. EC2 인스턴스 생성 우선, redis-server를 설치할 EC2 인스턴스를 만듭니다. 저는 jony라는 이름의 ubuntu 18.
wookgu.tistory.com
https://xn--lg3bu39b.xn--mk1bu44c/96
redis-cli 비밀번호 설정하기
redis-cli redis 127.0.0.1:6379> AUTH "비밀번호" (error) ERR Client sent AUTH, but no password is set redis 127.0.0.1:6379> CONFIG SET requirepass "비밀번호" OK redis 127.0.0.1:6379> AUTH "비밀번호" OK
xn--lg3bu39b.xn--mk1bu44c
https://jang8584.tistory.com/290
redis 접속 방법 및 몇가지 명령어
접속 : redis-cli -h 서버주소 -p 포트 -a redis-cli --- 참고 1. 맥에서 redis 설치 -> brew install redis 2. 설치된 경로 2-1. redis 실행파일: /usr/local/bin/redis-server, redis-cli ... 2-2. redis 설정파일: /usr/local/etc/redis.conf
jang8584.tistory.com
[Redis] Redis의 특징과 사용법
REmote DIctionary Server‘키-값’ 구조의 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 in-momory data structure storeIn-Memory Data Strucrue storeOpen Source (BSD 3 License)Su
velog.io
'Infra & Cloud > AWS' 카테고리의 다른 글
[AWS] AWS RDS vs AWS Aurora 비교 분석 (2) | 2024.11.20 |
---|---|
[AWS] EC2와 RDS 연결하기 (0) | 2024.07.25 |
[AWS] EC2에 MySQL 적용 및 사용하기 (0) | 2024.06.15 |
[AWS] S3 이미지 업로드 및 EC2 연결하기 (0) | 2024.06.13 |
[AWS] EC2에서 https 프로토콜 적용하기 (0) | 2024.05.25 |