잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻
개발/테스트 목적의 단일 노드 Redis(Remote Dictionary Server)를 구축하는 5가지 방법을 소개합니다.
(1. 로컬, 2. docker-compose, 3. Embedded Redis, 4. Testcontainers, 5. AWS ElastiCache, Terraform)
운영 목적의 아키텍처(Replication, Sentinel, Cluster)는 아닙니다.
글 목록
[Redis] 레디스를 5가지 방법으로 설치/구축하기 : 로컬, docker-compose
[Redis] 레디스를 5가지 방법으로 설치/구축하기 : Embedded Redis, Testcontainers
현재글 : [Redis] 레디스를 5가지 방법으로 설치/구축하기 : AWS ElastiCache + AWS Console
[Redis] 레디스를 5가지 방법으로 설치/구축하기 : Terraform + AWS ElastiCache
이번 글에서는 AWS ElastiCache 서비스를 활용하여 구축하고자 합니다. 구축은 AWS Console에서 진행됩니다.
주의) 실습 후 AWS 서비스 종료하지 않으면 비용이 발생할 수 있습니다.
5. AWS ElastiCache
AWS ElastiCache란 완전관리형 인-메모리 캐싱 서비스로 확장 가능하고 비용 효율적인 고성능 캐싱 솔루션, 서비스입니다.
지원하는 캐싱 서비스는 Redis와 Memcached를 지원합니다. 개발/테스트 목적의 레디스를 넘어 운영에도 적합한 환경을 보다 손쉽게 구축할 수 있는 특징이 있습니다. 보다 자세한 내용은 공식문서 Amazon ElastiCache for Redis란 무엇입니까? 를 참고해주세요.
비용
AWS ElastiCache는 프리티어에 해당됩니다. t2.micro, 월 750시간을 지원합니다.
+a) ElastiCache 외부 접속에 관하여
기본적으로 AWS ElastiCache는 private subnet 네트워크에 구축됩니다. 따라서 일반적인 외부 접속이 제한됩니다.
다시 말하면 같은 VPC 내에 있는 ec2를 통해서만 접속할 수 있습니다. 만약 외부에서 접속하려면 별도의 VPC 피어링이나 Transit Gateway을 사용해야 합니다. 이 예제에서는 외부 접속이 아닌 같은 VPC 내에 있는 ec2에서 접속합니다.
실습 사전 조건
- VPC, subnet, security group의 기본적인 이해
- 1개의 ec2 서비스
구축 순서
5.1. ElastiCache가 사용할 Security Group 설정
5.2. ElastiCache 생성
5.3. 같은 VPC에 있는 ec2를 통하여 ElastiCache 접속
5.1. ElastiCache가 사용할 Security Group 설정
먼저 ElastiCache에 접근할 수 있는 네트워크 룰을 만들기 위해 Security Group(보안 그룹)을 생성해야 합니다.
5.2. ElastiCache 생성
AWS Console를 통해 ElastiCache 서비스를 생성합니다.
클러스터 모드는 실 서비스 운영을 위해 설정합니다. 현재 서비스는 단일 노드로 설치하기 때문에 비활성화 모드로 생성합니다.
클러스터 이름이나 설명은 자유롭게 설정합니다.
다중 AZ : 운영 입장에서 고가용성 기능 제공을 위해 존재합니다. 현재 위 사진에선 체크가 되어있지만 사용하지 않음을 하셔도 됩니다.
노드 유형 : 프리티어가 지원하는 노드는 cache.t2.micro입니다. 비용 발생을 원하지 않는다면 반드시 체크해주세요
복제본 개수 : 위 사진에서 2개로 적혀있지만 0개로 하시면 됩니다.
ElastiCache는 기본적으로 private subnet에 생성된다고 말씀드렸습니다. 이는 보안상 외부 접속을 막기 위해서입니다.
기존에 관리하고 있는 private subnet이 있다면 생성하고, 없다면 위 사진처럼 VPC에 private subnet을 생성합니다.
이 또한 비용이 발생할 수 있으니 기본 설정 없음으로 선택하면 됩니다.
고급 설정
보안 : 현재 단순히 접속 테스트 목적이기에 암호화는 모두 off 하였습니다.
보안 그룹 선택 : 위에서 생성한 보안 그룹을 선택합니다.
백업 : 위 사진과는 다르게 자동 백업을 사용하지 않아도 됩니다.
5분 정도 시간이 지나면 생성한 클러스터 노드가 생성됩니다. 현재 제가 만든 Redis 노드는 복제본 포함하여 3개를 만들었습니다. 프리티어가 지원하는 것은 월 750시간 cache.t2.micro 이므로 3대이니 10일 정도만 무료로 사용할 수 있습니다.
5.3. 같은 VPC에 있는 ec2를 통하여 ElastiCache 접속
ElastiCacher가 설치되었으니 접속을 해야 합니다.
사전에 설치된 ec2에 ssh 접속하여 redis-cli를 설치합니다.
# ref : https://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/red-ug/GettingStarted.ConnectToCacheNode.html
# amzazon linux2
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 # redis 컴파일
# 설치된 Redis cli를 통해 접속합니다.
# cluster-endpoint는 설치한 ElastiCache DNS 이름입니다.
# src/redis-cli -h [cluster-endpoint] -p [port number]
src/redis-cli -h redis-nonclustermode-ktezlr.ng.0001.apn2.cache.amazon.com -p 6379
마치며
AWS Console 환경에서 AWS ElastiCache을 구축해보았습니다. 다음 글에서는 Terraform을 활용해서 ElastiCache를 구축하고자 합니다.
글 목록
[Redis] 레디스를 5가지 방법으로 설치/구축하기 : 로컬, docker-compose
[Redis] 레디스를 5가지 방법으로 설치/구축하기 : Embedded Redis, Testcontainers
[Redis] 레디스를 5가지 방법으로 설치/구축하기 : AWS ElastiCache + AWS Console
다음글 : [Redis] 레디스를 5가지 방법으로 설치/구축하기 : Terraform + AWS ElastiCache
Reference
Amazon ElastiCache for Redis란 무엇입니까?
2022.08.01 - [👾 Server/☁️AWS] - VPC Peering(피어링)
2022.03.31 - [👾 Server/☁️AWS] - AWS - VPC(Virtual Private Cloud)이란? : AWS에서 독립된 가상 네트워크 만들기
ec2에서 elasticach 연결
- https://devlog-wjdrbs96.tistory.com/314
'🏢 DB > 1️⃣ Redis' 카테고리의 다른 글
[간단 장애 회고] Redis + @Transactional (트랜잭션에서 Redis Get은 항상 null을 리턴한다. 트랜잭션 없는 상위 메서드에서 트랜잭션 있는 하위 메서드 호출은 에러다.) (2) | 2022.12.18 |
---|---|
레디스를 5가지 방법으로 설치/구축하기 : Embedded Redis, Testcontainers (0) | 2022.12.09 |
레디스를 5가지 방법으로 설치/구축하기 : 로컬, docker-compose (2) | 2022.12.08 |
레디스를 학습하며 도움 받았던 레퍼런스 링크 모음 (0) | 2022.12.08 |
댓글