Redis 클러스터를 구성하면 데이터를 여러 노드에 분산 저장하여 성능을 향상시키고 데이터 가용성을 높일 수 있습니다. 이번 가이드에서는 EC2 인스턴스 3대를 사용해 Redis 클러스터를 설정하는 방법을 단계별로 설명하겠습니다.
목차
- EC2 인스턴스 준비
- Redis 설치
- Redis 클러스터 설정
- Redis 클러스터 생성
- 클러스터 테스트
1. EC2 인스턴스 준비
Redis 클러스터를 구성하기 위해 EC2 인스턴스 3대가 필요합니다. AWS Management Console에서 다음과 같은 설정으로 인스턴스를 생성하세요.
- 인스턴스 유형: t2.micro (테스트 환경일 경우 적합)
- 운영체제: Amazon Linux 2 또는 Ubuntu
- 보안 그룹: 각 인스턴스가 서로 통신할 수 있도록 TCP 포트 6379 (Redis 기본 포트)를 열어야 합니다.
보안 그룹 설정:
- 인바운드 규칙: 포트 6379을 EC2 인스턴스의 IP 범위로 허용
2. Redis 설치
각 EC2 인스턴스에 Redis를 설치해야 합니다. SSH로 각 인스턴스에 접속한 후 다음 명령을 실행하여 Redis를 설치합니다.
Amazon Linux 2:
sudo yum update -y
sudo amazon-linux-extras install epel
sudo yum install redis -y
Ubuntu:
sudo apt update
sudo apt install redis-server -y
설치가 완료되면 Redis가 제대로 설치되었는지 확인합니다.
redis-server --version
3. Redis 클러스터 설정
Redis 클러스터를 사용하려면 각 Redis 인스턴스의 설정 파일을 수정해야 합니다. 각 EC2 인스턴스에서 /etc/redis/redis.conf 파일을 열어 다음 설정을 추가 또는 변경합니다.
# 클러스터 활성화
cluster-enabled yes
# 클러스터 구성 파일 위치
cluster-config-file nodes.conf
# 클러스터 노드 타임아웃
cluster-node-timeout 5000
# Redis가 포트 6379에서 실행되도록 설정
port 6379
# 외부에서 접근 가능하게 바인딩 (필요시 내부 IP나 0.0.0.0 사용)
bind 0.0.0.0
설정 파일을 수정한 후 Redis 서버를 재시작합니다.
sudo systemctl restart redis
4. Redis 클러스터 생성
Redis 클러스터를 만들기 위해, 각 인스턴스의 Redis 서버가 실행 중이어야 합니다. 이제 Redis 클러스터 생성 명령을 실행해봅시다. 먼저, 클러스터를 만들 인스턴스들의 IP 주소를 확인하세요. 예를 들어, 아래와 같은 형식입니다:
- EC2 1: 10.0.0.1
- EC2 2: 10.0.0.2
- EC2 3: 10.0.0.3
클러스터 생성 명령은 아래와 같습니다. 각 인스턴스의 Redis 포트와 IP 주소를 사용해 명령을 실행하세요.
redis-cli --cluster create 10.0.0.1:6379 10.0.0.2:6379 10.0.0.3:6379 --cluster-replicas 0
--cluster-replicas 0은 복제본을 사용하지 않겠다는 의미입니다. 만약 복제본을 사용하려면 --cluster-replicas 1로 설정하면 됩니다.
5. 클러스터 테스트
클러스터가 정상적으로 구성되었는지 확인하려면, 각 인스턴스에서 Redis CLI를 통해 클러스터 정보를 확인할 수 있습니다.
redis-cli -h 10.0.0.1 -p 6379 cluster info
또한, 클러스터 내의 각 노드를 확인하려면 다음 명령을 사용할 수 있습니다.
redis-cli -h 10.0.0.1 -p 6379 cluster nodes
이 명령을 사용하여 클러스터의 모든 노드가 정상적으로 연결되었는지 확인하세요.
결론
이로써 Redis 클러스터 구성이 완료되었습니다. Redis 클러스터는 데이터 분산 저장 및 성능 향상을 제공하므로 대규모 데이터 처리에 적합합니다. EC2 인스턴스 3대를 활용해 클러스터를 설정하고, 추가적인 요구에 따라 복제본을 설정해 데이터 가용성을 더욱 높일 수 있습니다.
궁금한 점이 있으면 언제든지 문의하세요!