Redis를 사용하여 고가용성 분산 캐시 배치

Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스 인메모리 데이터 구조 저장소입니다. 문자열, 해시, 목록, 집합, 범위 질의가 있는 정렬된 집합, 비트맵, HyperLogLogs, 반지름 질의가 있는 지리 공간 인덱스 및 스트림과 같은 데이터 구조를 지원합니다.

주:

OCI는 자체 완전 관리형 Redis 서비스도 제공합니다. Redis가 포함된 OCI 캐시 서비스 페이지에서 자세한 내용을 확인할 수 있습니다.

구조

이 참조 아키텍처는 Oracle Cloud Infrastructure 컴퓨트 인스턴스에서 Redis 클러스터의 일반적인 6노드 배치를 보여줍니다.

다음 다이어그램은 이 참조 아키텍처를 보여 줍니다.

아래 링크를 누르면 redis-oci-png.png에 대한 설명을 볼 수 있습니다.
redis-oci-png.png 그림에 대한 설명

이 아키텍처에는 다음과 같은 구성 요소가 있습니다:

  • 지역

    Oracle Cloud Infrastructure 지역은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 지역화된 지역입니다. 지역은 다른 지역과 독립적이며 방대한 거리는 국가 또는 대륙에서 분리할 수 있습니다.

  • 가용성 도메인

    가용성 도메인은 영역 내의 독립적인 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용 한도를 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원, 냉각 또는 내부 가용성 도메인 네트워크와 같은 인프라를 공유하지 않습니다. 따라서 한 가용성 도메인의 실패는 영역의 다른 가용성 도메인에 영향을 주지 않을 수 있습니다.

  • 결함 도메인

    결함 도메인은 가용성 도메인 내의 하드웨어와 기반구조를 그룹화한 것입니다. 각 가용성 도메인에는 독립적인 전원 및 하드웨어가 있는 3개의 장애 도메인이 있습니다. 여러 결함 도메인에 리소스를 배포할 경우 응용 프로그램에서 결함 도메인 내의 물리적 서버 오류, 시스템 유지 관리 및 전원 오류를 허용할 수 있습니다.

  • VCN(가상 클라우드 네트워크) 및 서브넷

    VCN는 Oracle Cloud Infrastructure 지역에서 설정하는 사용자정의 가능한 소프트웨어 정의 네트워크입니다. 기존의 데이터 센터 네트워크와 마찬가지로 VCN에서는 사용자가 네트워크 환경을 완전히 제어할 수 있습니다. VCN 에는 VCN를 생성한 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. 영역 또는 가용성 도메인으로 범위를 지정할 수 있는 서브넷으로 VCN를 세그먼트화할 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 서브넷을 생성한 후 서브넷 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

    이 아키텍처에서는 Redis 클러스터를 호스트하는 모든 컴퓨트 인스턴스가 단일 지역별 서브넷에 연결됩니다.

  • 보안 목록

    각 서브넷에 대해 서브넷에서 허용되어야 하는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다.

    이 구조에서는 TCP 포트 16379및 6379에 대한 수신 규칙을 추가합니다. 포트 6379는 Redis 클라이언트를 서비스하며 포트 16379는 Redis 클러스터 버스에서 사용됩니다.

권장 사항

요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다. 다음 권장 사항을 시작점으로 사용하십시오.

  • 컴퓨트 구성

    이 아키텍처는 VM.Standard2.2 구성의 Oracle Linux 7 . 6 OS 이미지를 사용합니다. 응용 프로그램에 더 많은 메모리, 코어 또는 네트워크 대역폭이 필요한 경우 다른 구성을 선택할 수 있습니다.

  • VCN

    VCN를 생성할 때 VCN의 서브넷에 연결할 리소스 수에 따라 필요한 CIDR 블록 수 및 각 블록 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.

    전용 접속을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온-프레미스 데이터 센터 또는 다른 클라우드 제공자) 와 겹치지 않는 CIDR 블록을 선택합니다.

    VCN를 생성한 후 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.

    서브넷을 설계할 때 트래픽 흐름 및 보안 요구사항을 고려하십시오. 특정 계층 또는 역할 내의 모든 리소스를 동일한 서브넷에 연결합니다. 이 서브넷은 보안 경계 역할을 할 수 있습니다.

    지역 서브넷을 사용합니다.

고려 사항

  • 확장성

    Redis 클러스터의 가용성을 확인하는 데 필요한 최소 노드 수는 세 개의 마스터 노드입니다. 이 구조는 세 개의 마스터 노드와 세 개의 복제본 노드를 배치합니다. 응용 프로그램의 성능 또는 고가용성 요구 사항을 충족하기 위해 더 많은 노드가 필요할 수 있습니다.

    컴퓨트 노드를 더 추가하여 Redis 클러스터를 가로로 확장할 수 있습니다.

    각 컴퓨트 노드의 VM 구성을 변경하여 Redis 클러스터를 세로로 확장할 수 있습니다. 코어 수가 더 높은 구성을 선택하면 컴퓨트 인스턴스 및 네트워크 대역폭에 할당된 메모리도 늘어납니다.

  • 애플리케이션 가용성

    결함 도메인은 단일 가용성 도메인 내에서 최상의 복원성을 제공합니다. 이 아키텍처는 고가용성을 위해 또 다른 접근 방식을 사용하며, 여러 가용성 도메인이 있는 영역에서 동일한 작업을 수행하는 컴퓨트 인스턴스를 배치합니다. 이 설계는 중복성을 도입하여 단일 실패 지점을 제거합니다.

    구조가 배치된 후 PuTTY 또는 Git Bash와 같은 SSH 툴을 사용하여 Redis 노드의 공용 IP 주소에 접속할 수 있습니다. Redis 명령줄 인터페이스 redis-cli를 사용하여 Redis 배치와 상호 작용할 수 있습니다.

  • COSTS

    데이터베이스에 필요한 코어, 메모리 및 네트워크 대역폭을 기반으로 VM(가상 머신) 구성을 선택합니다. Redis 노드에 대해 더 많은 성능, 메모리 또는 네트워크 대역폭이 필요한 경우 나중에 1코어 구성으로 시작하여 VM 구성을 변경할 수 있습니다.

배치

이 참조 구조를 배치하는 데 필요한 코드는 GitHub에서 사용할 수 있습니다. 한 번의 클릭으로 코드를 Oracle Cloud Infrastructure Resource Manager로 가져와서 스택을 생성하고 배치할 수 있습니다. 또는 Terraform CLI를 사용하여 GitHub에서 컴퓨터로 코드를 다운로드하고, 코드를 사용자정의하고, 구조를 배치합니다.

  • Oracle Cloud Infrastructure Resource Manager를 사용하여 배치:
    1. Oracle Cloud에 배치누릅니다.

      아직 사인인하지 않은 경우 테넌시 및 사용자 인증서를 입력합니다.

    2. 조건 및 조항을 검토하고 수락합니다.
    3. 스택을 배치할 영역을 선택합니다.
    4. 화면의 프롬프트 및 지침에 따라 스택을 만듭니다.
    5. 스택을 생성한 후 Terraform 작업 을 누르고 계획 을 선택합니다.
    6. 작업이 완료될 때까지 기다렸다가 계획을 검토합니다.

      변경하려면 스택 세부정보 페이지로 돌아가서 스택 편집 을 누르고 필요한 사항을 변경합니다. 그런 다음 계획 작업을 다시 실행합니다.

    7. 더 이상 변경할 필요가 없는 경우 스택 세부 정보 페이지로 돌아가서 Terraform 작업 을 누르고 적용 을 선택합니다.
  • Terraform CLI를 사용하여 배치합니다:
    1. GitHub로 이동합니다.
    2. 코드를 로컬 컴퓨터에 다운로드하거나 복제합니다.
    3. README. md의 지침을 따릅니다.

변경 로그

이 로그에는 중요한 변경사항만 나열됩니다: