본문 바로가기
🏢 DB/1️⃣ Redis

레디스를 5가지 방법으로 설치/구축하기 : AWS ElastiCache

by kukim 2022. 12. 9.

잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻

 

개발/테스트 목적 단일 노드 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(보안 그룹)을 생성해야 합니다.

AWS Console -> EC2 -> 네트워크 및 보안 -> 보안 그룹
보안그룹 이름 지정 / ElastiCache가 설치될 VPC 선택
인바운드 규칙 : 0.0.0.0:6379
아웃바운드 규칙 : 모든 트래픽

 

5.2. ElastiCache 생성

AWS Console를 통해 ElastiCache 서비스를 생성합니다.

AWS Console - Amazon ElastiCache - 지금 시작
클러스터 생성 - Redis 클러스터 생성
클러스터 모드 / 정보 설정

클러스터 모드는 실 서비스 운영을 위해 설정합니다. 현재 서비스는 단일 노드로 설치하기 때문에 비활성화 모드로 생성합니다.

클러스터 이름이나 설명은 자유롭게 설정합니다.

다중 AZ / 클러스터 설정

다중 AZ : 운영 입장에서 고가용성 기능 제공을 위해 존재합니다. 현재 위 사진에선 체크가 되어있지만 사용하지 않음을 하셔도 됩니다.

노드 유형프리티어가 지원하는 노드는 cache.t2.micro입니다. 비용 발생을 원하지 않는다면 반드시 체크해주세요

복제본 개수 : 위 사진에서 2개로 적혀있지만 0개로 하시면 됩니다.

 

private subnet 생성

ElastiCache는 기본적으로 private subnet생성된다고 말씀드렸습니다. 이는 보안상 외부 접속을 막기 위해서입니다.

기존에 관리하고 있는 private subnet이 있다면 생성하고, 없다면 위 사진처럼 VPC에 private subnet을 생성합니다.

 

가용 영역 배치

이 또한 비용이 발생할 수 있으니 기본 설정 없음으로 선택하면 됩니다.

고급 설정

고급 설정

보안 : 현재 단순히 접속 테스트 목적이기에 암호화는 모두 off 하였습니다.

보안 그룹 선택 : 위에서 생성한 보안 그룹을 선택합니다.

백업 : 위 사진과는 다르게 자동 백업을 사용하지 않아도 됩니다. 

 

생성중
생성중 - 보통 5분 정도면 서비스 생성이 완료됩니다.

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

ElastiCache 엔드포인트를 통해 ec2에서 접속하기


마치며

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란 무엇입니까?

프리티어 t2.micro, 월 750시간

Transit Gateway

2022.08.01 - [👾 Server/☁️AWS] - VPC Peering(피어링)

2022.03.31 - [👾 Server/☁️AWS] - AWS - VPC(Virtual Private Cloud)이란? : AWS에서 독립된 가상 네트워크 만들기

ec2에서 elasticach 연결

- https://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/red-ug/GettingStarted.ConnectToCacheNode.html

- https://devlog-wjdrbs96.tistory.com/314

 

 

댓글