AWS ElastiCache Redis 적용

NCOOKIE·2023년 12월 5일
1

ElastiCache란

개념

ElastiCache는 AWS에서 인 메모리 데이터베이스 캐싱 시스템을 제공하여 애플리케이션이 데이터를 검색 할 수있는 성능, 속도 및 중복성을 향상시키는 클라우드 캐싱 서비스입니다. Memcached 또는 Redis와 호환되는 서버 노드를 쉽게 배포 및 실행할 수 있다.(Memcached, Redis는 이미 널리 쓰이고 있는 인 메모리 데이터베이스 시스템이다.)

인 메모리 환경의 관리, 모니터링 및 운영을 간소화하여 부담을 덜어주므로 애플리케이션 개발에 엔지니어링 리소스를 집중할 수 있습니다.

인 메모리 캐싱

인 메모리 캐싱 기능을 이용하면 읽기 작업이 많은 애플리케이션 워크로드(소셜 네트워킹, 게임, 미디어 공유, Q&A 포털 등) 또는 컴퓨팅 집약적 워크로드(추천 엔진 등)의 지연 시간과 처리량(throughput)이 비약적으로 향상된다. 인 메모리 캐싱은 핵심 데이터 조각을 메모리에 저장해 액세스 지연 시간을 줄여주므로 애플리케이션 성능이 향상된다. 캐싱된 정보에는 I/O 집약적 데이터베이스 쿼리 결과 또는 컴퓨팅 집약적 계산 결과가 포함될 수 있다.

프리티어

프리티어 환경에서도 ElastiCache를 사용할 수 있다. 월 750 시간 ElastiCache의 cache.t2.micro 또는 cache.t3.micro 노드 사용량을 할당 받는다. ElastiCache 노드 자체에서 송수신한 트래픽에 대해서는 ㅇ데이터 전송 요금이 부담되지 않는다. 다만 일부 설정에 대해 요금이 청구될 수 있으므로 유의가 필요하다.

ElastiCache 적용하기

보안그룹 생성

ElastiCache에서 사용할 보안그룹을 생성한다. EC2 인스턴스가 속해있는 VPC를 선택하고 인바운드 규칙에 EC2의 서브넷 그룹을 선택한다. 포트는 아래에서 적용할 6379 포트를 사용한다.

Redis 캐시 생성

Amazon ElastiCache - Redis 캐시 - Redis 캐시 생성 버튼을 클릭한다.

현재 프로젝트에서는 Redis를 사용 중이므로 클러스터 유형은 Redis, 커스텀을 선택하고 클러스터 모드는 비활성화 한다. 추가 요금이 발생할 수 있기 때문이다.

이름과 엔진은 임의로 정해주고, 노드 유형은 프리티어에서 사용 가능한 cache.t2.micro 또는 cache.t3.micro을 선택한다. 복제본 수는 0으로 설정한다. 마찬가지로 추가 요금 때문이다.

연결 설정 사용자 지정을 선택하고 포트는 Redis에서 기본으로 사용하는 6379 포트, 서브넷 그룹은 새로 생성해준다.

서브넷 관리에서 가용영역은 EC2, RDS를 생성했던 ap-northeasst-2c를 선택했다.

EC2 인스턴스가 속해있는 VPC를 선택한다.

위에서 생성했던, EC2 인스턴스의 인바운드 규칙을 설정한 보안그룹을 선택한다.

생성 요청 후 잠시 기다리면 (나는 10~20분 정도 기다렸던 것 같다.) ElastiCache의 엔드포인트 구성이 완료된 것을 확인할 수 있다.

연결 테스트

EC2에서 정상적으로 Redis에 접속이 가능한지 확인하기 위해서 redis를 설치해볼 것이다. 참고로 여기서는 EC2 인스턴스에 Amazon Linux를 설치해 사용 중이다.

# GNU 컴파일러 설치
sudo yum install gcc
# redis-cli 설치
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make distclean      # ubuntu에서만 입력
make
# 생성한 클로스터 접속
src/redis-cli -c -h redis-elasticache.tjba4s.ng.0001.apn2.cache.amazonaws.com -p 6379

# 테스트
set a "hello"
# -- 응답값
OK

정상적으로 Redis에 접속 후 데이터 생성까지 된 것을 확인할 수 있다.

yml 설정

spring:
  ...
  redis:
    host: redis-elasticache.tjba4s.ng.0001.apn2.cache.amazonaws.com
    port: 6379

스프링 프로젝트에서 ElastiCache의 Redis에 접속할 수 있도록 설정해주자.

참고

profile
일단 해보자

0개의 댓글