[AWS] MemoryDB
AWS MemoryDB는 Redis와 호환되는 key-value 메모리 데이터베이스를 제공하는 서비스다.
Elasticache라는 AWS의 다른 서비스에서도 Redis 시스템을 제공하기 때문에, 그렇게 필수적인 서비스까지는 아닌 것 같다.
Elasticache와의 차이점
https://blog.naver.com/sssang97/222462346909
호환용으로 자체구현한 것이라 Elasticache보다 빠를 줄 알았는데, 그건 아닌 것 같다.
읽기/쓰기 성능 자체는 Elasticache보다 조금 떨어진다고 한다.
대신 장애에 대한 대응이나 복구 시스템이 더 잘되어있다고 한다.
정리하자면 이렇다.
- Redis를 보조적인 용도로만 사용하면서, 빠르게 읽고 쓸 필요가 있다면 Elasticache를 사용하면 된다.
- Redis를 데이터 손실 없이 메인 데이터베이스처럼 안정적으로 운용하고 싶으면서, 돈이 많다면 MemoryDB를 사용하면 된다.
비용?
https://aws.amazon.com/ko/memorydb/pricing/?nc1=h_ls
Elasticache로 Redis를 구성했을때보다 비용이 훨씬 더 나온다는 것 같다.
비용을 감수할만큼 안정성이 요구된다면 쓰자.
클러스터 생성
일단 클러스터부터 만들어보자.
Elasticache와 별 차이는 없으나, 무조건 클러스터 형태로만 생성할 수 있다는게 좀 다르다.
이름 잘 짓고
vpc를 잘 골라준다. 해당 vpc 안에서만 접속이 가능하다.
그리고 서브넷을 2개 이상 골라준다.
노드 사이즈는 취향껏 고른다.
저기에 따라 비용이 훅훅 뛰니 유의하길 바란다.
보안그룹도 골라줬다.
기본값으로.
생성 눌러놓고 10분쯤 기다리면 이렇게 다 만들어져서 올라갈 것이다.

아 그리고, 접속을 위해서 아까 넣은 보안그룹의 인바운드에 redis 포트를 추가해준다.

redis-cli 설치 (amazon linux)
그럼 이제 접속이 잘 되나 테스트해보자.
이것도 Elasticache와 마찬가지로 public access가 불가능하다.
우선 ec2 인스턴스를 동일한 보안그룹으로 만들고, 다음 명령들을 입력해 redis를 설치한다.
sudo amazon-linux-extras install epel -y
sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel -y
sudo wget http://download.redis.io/redis-stable.tar.gz
sudo tar xvzf redis-stable.tar.gz
cd redis-stable
sudo make BUILD_TLS=yes
그리고 다음 명령을 사용해 엔드포인트와 포트를 입력해주면

접속이 된다.
그리고 그냥 레디스 쓰듯이 사용을 할 수 있다.
그냥 똑같이 쓰면 된다.
redis 문법에 대한 자세한건 별도 포스트를 참조하길 바란다.
https://blog.naver.com/sssang97/221983126621
참조
https://www.reddit.com/r/aws/comments/pchg4m/elasticache_or_memorydb_which_i_should_i_use/
https://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/red-ug/GettingStarted.ConnectToCacheNode.html