ElastiCache
AWS 에서 지원해주는 서비스중 하나로 메모리DB Redis에 적합하게 서비스를 제공하고 있다.
먼저 아래의 Redis 구조를 보면 알수 있다. 아래의 구조는 설정을 따로 지정해야 사용할수 있는데 AWS ElastiCache 에서 아래의 구조를 지원해주고 있어서 편리하다.
ElastiCache 생성 방법
ElastiCache 클릭!
Redis 클러스터 생성 클릭!
위와 같이 뜨는데, 간편한 생성보다는 모든 옵션 설정으로 원하는 Redis 구조를 선택하기 위해 2번째 ( 새 클러스터 구성 및 생성 ) 을 클릭해준다.
클러스터 모드 해당 모드를 활성화를 하게 되면 아래의 구조로 설정된다. 다만, 현재 이정도의 Redis 구조는 필요 없기 때문에 Sentinel 구조로 만들려고 한다.
참고 내용
만약 위와 같은 방법으로 Cluster 로 사용할시 Spring 에서 RedisConfig 가 조금 달라지니 주의하자!
이름은 알아서...
여기 부분에는 자동 장애조치을 유심히 보면 될것 같다. 다만 온프레미스는 잘 모르지만 AWS 클라우드에서 지원해주는 자동 장애 조치와 다중 AZ 방식에서는 아래의 구조를 뜻한다.
Master 가 죽을시 Slave 로 대체하고 Master 가 다시 장애복구가 되면 Slave 가 되는 방식이다. 이 설정을 안하고 직접 설정한다면 매우 복잡하지만 AWS 에서 지원해주니 너무 편리하다. 다만 AWS 에 의존성이 높아지니 서비스 확장성이나 통합 관리에는 따로 설정이나 방법이 필요할것 같다.
만약 자동 장애 조치를 선택 안할시에는 아래의 구조처럼 되니 주의하자!
위에도 알아서 설정하면 되지만 복제본 개수는 Slave 의 개수이다. 보통은 Master 가 쓰기 작업을 처리하고 변경사항을 Slave에 복제하며 주로 읽기 작업을 처리한다.
다음은 서브넷이다. 이 서브넷은 EC2 와 연결을 해놔야지만 EC2 에서 접근이 된다. 특히 ElastiCache 특성상 외부에서 접근이 안되니 같은 서브넷으로 둬야 접근이 가능하다. AWS 내에서!
이 다음은 복원 방식이나 로그나 이런 설정이라 원하는 설정을 통해 설정하면 된다.
생성하기 누르면 이제 만들어진다. 보통 10분에서 20분내로 만들어지는것 같다..
참고로 보안 규칙도 업데이트를 해서 원하는 포트로 접근 할수 있도록 해야 한다.
ElastiCache ec2 연결
해당 ec2 에서 ElastiCache 으로 연결을 해서 확인을 할수 있다.
sudo apt-get install redis-tools
이 명령어를 통해 redis-tools 을 설치해주자.
설치가 끝난뒤 아래의 명령어를 통해 연결을 해보자.
redis-cli -h your-elasticache-endpoint -p port
your-elasticache-endpoint : 아마 내가 말한 설정을 했다면, 기본 엔드포인트의 주소를 입력하면 된다.
port : 설정한 포트를 쓰면 된다.
접속이 되는것을 확인했으면 이제 끝이다.
Local 에서 연결하고 싶다면!?
Local 에서 연결을해서 확인을 하고 싶다면 ssh 터널을 만들어서 사용할수 있다. 저는 Redis Desktop Manager 를 쓰기 때문에 연결을 하기 위해 ssh 터널을 설정하였다.윈도우 기준 터미널을 열고 아래의 명령어로 ssh 연결을 해두자
ssh -i "your-keypair.pem" -N -L 6380:your-elasticache-endpoint:6380 ubuntu@your-ec2-ip
이렇게 입력하게 되면 다른 터미널창을 열고 확인한다. 아래의 명령어를 치면 확인할수 있다.
저는 6379 포트로 해뒀지만 원하면 포트 변경도 가능하다. 다만 쓰지 않은 포트를 써야 한다.
netstat -an | findstr 6380
확인해보면 아래와 같이 뜬다면 성공이다.
이제 localhost:6380 에 접근하게 된다면 ElastiCache 에 접근 할수 있도록 터널을 하나 만든거다. 해당 터널이 연결되어있는 시간은 localhost:6380 으로 접근하게 되면 설정해놓은 ElastiCache 에 접근할수 있다. 즉,
로컬 -> EC2 -> ElastiCache 이러한 터널을 만든것이다.
'AWS' 카테고리의 다른 글
AWS Cloud9 IDE (0) | 2023.09.19 |
---|---|
LoadBalancer (1) | 2023.08.31 |
AWS scale-up (0) | 2023.08.24 |
Swap (0) | 2023.08.18 |
AWS ECR (0) | 2023.07.31 |