현업에서는 EC2에 Redis를 직접 설치해서 사용하지 않고,
데이터베이스를 RDS를 활용하는 것처럼 Redis도 AWS의 ElastiCache를 활용해서 사용하고 있다고 한다.
설정이 쉽고 부가적인 기능도 많고 안정성이 높은 이유 때문이다.
따라서 AWS ElasticCache를 마지막으로 활용해보자!
1. 아키텍처 구성
이전 아키텍처
기존의 아키텍처 구조는 취준생 레벨 또는 비용을 극단적으로 관리해야 하는 초기 스타트업에 적합한 구성이다.
실제로 규모가 조금이라도 커지면 서비스를 이렇게 구성하는 경우는 드물다.
ElasticCache 도입 아키텍처
따라서 이런 식으로 구성하는게 실제 서비스 현업에 가까운 아키텍처 구조라 할 수 있다.
우리는 현업에 가까운 배포 환경을 경험해야 하지 않겠는가?
지금부터 AWS 인프라 구성을 변경해서 ElastiCache를 도입해보자!
2. ElastiCache 생성
홈페이지에서 ElastiCache를 검색해서 사이트를 이동하자.
지금 시작을 클릭하고 Redis OSS를 선택하자.
클러스터 설정 단계에서 구성은 자체 캐시 설계와 클러스터 캐시를 선택한다.
클러스터가 뭔데?
클러스터는 여러 개의 Cache 서버들을 묶고 있는 하나의 그룹을 뜻한다.
여기서 하나의 Cache 서버를 노드(Node)라고 부른다.
클러스터 정보에서 이름을 입력해준다.
나는 이번에도 강사님 정하신 instagram-cache-server로 정했다.
위치는 AWS 클라우드를 선택하고 다중 AZ는 체크를 해제, 자동 장애 조치는 사용하는 것으로 선택한다.
참고
다중 AZ와 자동 장애 조치에 대해서 알고 넘어가자
- 다중 AZ: 리전에 재난이 발생해 서비스가 중단될 수 있는 상황을 미연에 방지하고나 여러 리전에 Cache 서버를 분산해 세팅해두는 것을 의미한다.
- 자동 장애 조치: failover라고도 하는데 클러스터 내부에서 특정 노드에 장애가 발생하면 정상 노드로 교체해주는 기능으로, 자동으로 장애를 처리해주는 기능이다.
클러스터 설정 부분에서 노드 유형을 t3.micro로 설정해준다. 프리티어이기 때문에!
복제본 개수는 클러스터 내 Cache 서버의 개수를 의미하는데 0으로 지정할 경우 failover 처리가 불가능하다.
참고
ElastiCache는 노드(Node)당 가격을 책정한다.
또한 failover는 1개 이상의 복제본 개수를 선택해야 처리가 가능하다.
최소한의 비용으로 테스트를 진행하기 위해 복제본 개수를 0으로 지정했지만, 실제로는 1개 이상 만드는 경우가 많다.
연결 부분에서 서브넷 그룹의 이름을 작성해준다.
이 부분도 나는 강사님이 정하신 instagram-subnet-group으로 정했다.
클러스터 설정은 다 했으니 이제 다음 단계로 넘어가자.
ElastiCache에 접근할 수 있도록 보안 그룹을 설정해줘야 해서 EC2로 이동해서 보안 그룹을 생성하자.
오른쪽 상단에 있는 보안 그룹 생성을 클릭한다.
보안 그룹은 위와 같이 설정하고 보안 그룹 생성을 진행한다.
참고로 인바운드 규칙 소스 부분은 Anywhere-IPv4를 선택한 것이다.
다시 ElastiCache로 돌아와서 위에 생성한 보안 그룹을 선택해준다.
데이터를 영구적으로 보존하기 위해서 사용하는 것이 아니기 때문에 자동 백업 사용은 체크 해제한 후 나머지는 그대로 유지한채 다음 단계로 넘어간다.
마지막 단계는 검토 및 생성하는 단계로 바로 ElastiCache를 생성한다.
상태를 보니 열심히 생성하고 있다 😆
Reference.
'Redis' 카테고리의 다른 글
[Redis] AWS ElasticCache를 활용하자! (2) (2) | 2024.10.26 |
---|---|
[Redis] Docker Compose로 Redis + Spring Boot 띄우기 (AWS) (0) | 2024.10.26 |
[Redis] Docker Compose로 Redis + Spring Boot 띄우기 (로컬) (0) | 2024.10.26 |
[Redis] Redis 적용 전,후 부하 테스트도 진행해볼까? (2) | 2024.10.25 |
[Redis] AWS EC2에서 Redis를 활용해보자! (2) (0) | 2024.10.25 |