본문 바로가기
CLOUD/AWS

ElastiCache for Redis구성 요소 및 기능

by Rainbound-IT 2021. 8. 6.
반응형

ElastiCache노드

노드는 ElastiCache 배포의 가장 작은 구성 요소입니다. 노드는 격리 형태 또는 다른 노드와 일부 관련되어 존재할 수 있습니다.

노드는 안전한 네트워크에 연결된 RAM의 크기가 고정된 청크입니다. 각 노드는 클러스터를 생성할 때 선택한 엔진 및 버전의 인스턴스를 실행합니다. 필요한 경우 클러스터의 노드를 다른 인스턴스 유형으로 스케일 업하거나 스케일 다운할 수 있습니다. 자세한 내용은 확장ElastiCache for Redis클러스터 단원을 참조하십시오.

클러스터 내 모든 노드는 인스턴스 유형이 동일하며, 동일한 캐시 엔진을 실행합니다. 각 캐시 노드에는 고유한 DNS(Domain Name Service) 이름 및 포트가 있습니다. 여러 유형의 캐시 노드가 지원되며 연결된 메모리 양이 각각 다릅니다. 지원되는 노드 인스턴스 유형의 목록은 지원되는 노드 유형 단원을 참조하십시오.

사용한 노드에 대해서만 비용을 지불하는 "사용한 만큼 지불"을 기준으로 노드를 구입할 수 있습니다. 또는 대폭 인하된 시간당 요금으로 예약 노드를 구입할 수 있습니다. 사용률이 높은 경우, 예약 노드를 구입하면 비용을 절약할 수 있습니다. 클러스터가 항상 사용 중에 있고 사용량 폭증을 처리하기 위해 가끔 노드를 추가하는 경우를 생각해 봅시다. 이 경우, 대부분의 시간을 실행하기 위해 여러 개의 예약된 노드를 구입할 수 있습니다. 그런 다음 노드를 가끔 추가하는 경우에 대해 “사용한 만큼 지불”을 기준으로 노드를 구입할 수 있습니다. 예약 노드에 대한 자세한 내용은 ElastiCache예약 노드 단원을 참조하십시오.

노드에 대한 자세한 내용은 노드 관리 단원을 참조하십시오.

ElastiCache for Redis샤드

Redis 샤드(API 및 CLI에서 노드 그룹이라고 함)는 1~ six 개의 관련 노드 그룹입니다. Redis(클러스터 모드 비활성화됨) 클러스터에는 항상 한 개의 샤드가 있습니다.

Redis(클러스터 모드 활성화됨) 클러스터에는 데이터가 샤드에 분할된 최대 500개의 샤드가 포함될 수 있습니다. Redis 엔진 버전이 5.0.6 이상인 경우 노드 또는 샤드 한도를 클러스터당 최대 500까지 늘릴 수 있습니다. 예를 들어 83개 샤드(샤드당 기본 1개와 복제본 5개)에서 500개 샤드(기본 1개와 복제본 없음) 범위의 500개 노드 클러스터를 구성하도록 선택할 수 있습니다. 증가를 수용할 수 있는 IP 주소가 충분한지 확인해야 합니다. 서브넷 그룹에 있는 서브넷의 CIDR 범위가 너무 작거나 서브넷을 샤드로 분할하여 다른 클러스터에서 과도하게 사용되는 것과 같은 일반적인 함정에 유의합니다. 자세한 내용은 서브넷 그룹 단원을 참조하세요. 5.0.6 이하의 버전에서 한도는 클러스터당 250개입니다.

한도 증가를 요청하려면 AWS 서비스 한도를 참조하고 한도 유형을 인스턴스 유형별 클러스터당 노드로 선택하세요. 

다중 노드 샤드는 읽기/쓰기 기본 노드 하나와 1–5개의 복제본 노드를 통해 복제를 구현합니다. 자세한 내용은 복제 그룹을 사용한 고가용성 단원을 참조하십시오.

샤드에 대한 자세한 내용은 샤드 작업 단원을 참조하십시오.

ElastiCache for Redis 클러스터

Redis 클러스터는 ElastiCache for Redis샤드 하나 이상의 논리적 그룹입니다. 데이터는 Redis(클러스터 모드 활성화됨) 클러스터의 샤드 간에 파티셔닝됩니다.

여러 ElastiCache 작업은 클러스터에서 다음 사항을 대상으로 합니다.

  • 클러스터 생성
  • 클러스터 수정
  • 클러스터의 스냅샷 생성(모든 Redis 버전)
  • 클러스터 삭제
  • 클러스터의 요소 보기
  • 비용 할당 태그를 클러스터에 추가 및 클러스터에서 삭제

자세한 내용은 다음 관련 항목을 참조하십시오.

일반적인 클러스터 구성

다음은 일반적인 클러스터 구성입니다.

Redis 클러스터

Redis(클러스터 모드 활성화됨) 클러스터에는 데이터가 샤드에 분할된 최대 500개의 샤드가 포함될 수 있습니다. Redis 엔진 버전이 5.0.6 이상인 경우 노드 또는 샤드 한도를 클러스터당 최대 500까지 늘릴 수 있습니다. 예를 들어 83개 샤드(샤드당 기본 1개와 복제본 5개)에서 500개 샤드(기본 1개와 복제본 없음) 범위의 500개 노드 클러스터를 구성하도록 선택할 수 있습니다. 증가를 수용할 수 있는 IP 주소가 충분한지 확인해야 합니다. 서브넷 그룹에 있는 서브넷의 CIDR 범위가 너무 작거나 서브넷을 샤드로 분할하여 다른 클러스터에서 과도하게 사용되는 것과 같은 일반적인 함정에 유의합니다. 자세한 내용은 서브넷 그룹 단원을 참조하세요. 5.0.6 이하의 버전에서 한도는 클러스터당 250개입니다.

한도 증가를 요청하려면 AWS 서비스 한도를 참조하고 한도 유형을 인스턴스 유형별 클러스터당 노드로 선택하세요. 

Redis(클러스터 모드 비활성화됨)클러스터에는 항상 한 개의 샤드 (API 및 CLI에서 노드 그룹 하나) 만 있습니다. Redis 샤드에는 1 ~ six개의 노드가 있습니다. 한 샤드에 노드가 두 개 이상 있는 경우 샤드에서는 복제를 지원합니다. 이 경우 한 노드는 읽기/쓰기 기본 노드이고 다른 노드는 읽기 전용 복제 노드입니다.

향상된 내결함성을 위해 Redis 클러스터에 최소 두 개의 노드를 두고, 다중 AZ를 활성화하는 것이 좋습니다. 자세한 내용은 장애 완화 단원을 참조하십시오.

Redis(클러스터 모드 비활성화됨) 클러스터 수요가 변경되면 확장 또는 축소할 수 있습니다. 이렇게 하려면 클러스터를 다른 노드 인스턴스 유형으로 이동합니다. 애플리케이션이 읽기 집약적인 경우 읽기 전용 복제본 Redis(클러스터 모드 비활성화됨) 클러스터를 추가하는 것이 좋습니다 이렇게 하면 보다 적절한 수의 노드로 읽기를 분산할 수 있습니다.

ElastiCache는 Redis(클러스터 모드 비활성화됨) 클러스터의 노드 유형을 더 큰 노드 유형으로 동적으로 변경하는 것을 지원합니다. 스케일 업 또는 스케일 다운에 대한 정보는 에 대한 단일 노드 클러스터 조정Redis(클러스터 모드 비활성화됨) 또는 확장Redis(클러스터 모드 비활성화됨)복제본 노드가 있는 클러스터단원을 참조하십시오.

ElastiCache for Redis복제

ElastiCache 콘솔과 ElastiCache API 및 AWS CLI 간의 기술 차이를 보다 정확하게 이해하려면 계속 읽기 전에 구현 관리를 위한 툴 단원을 참조하십시오.

한 샤드(API 및 CLI에서 노드 그룹이라고 함)에서 2 ~ six개의 노드를 그룹화하여 복제를 구현합니다. 이러한 노드 중 하나는 읽기/쓰기 기본 노드입니다. 다른 모든 노드는 읽기 전용 복제본 노드입니다.

각 복제본 노드는 기본 노드에서 데이터 사본을 유지합니다. 복제본 노드는 비동기식 복제 메커니즘을 사용하여 기본 노드와의 동기화를 유지합니다. 애플리케이션은 클러스터에 있는 모든 노드에서 읽을 수 있지만 기본 노드에만 쓸 수 있습니다. 읽기 전용 복제본은 여러 엔드포인트에 읽기를 분산하여 확장성을 향상합니다. 또한 읽기 전용 복제본은 여러 데이터 사본을 유지 관리하여 내결함성을 개선합니다. 다중 가용 영역에서 읽기 전용 복제본을 찾으면 내결함성이 더욱 개선됩니다. 내결함성에 대한 자세한 내용은 장애 완화 단원을 참조하십시오.

Redis(클러스터 모드 비활성화됨)클러스터가 한 개의 샤드 (API 및 CLI에서노드 그룹).

Redis(클러스터 모드 활성화됨) 클러스터에는 데이터가 샤드에 분할된 최대 500개의 샤드가 포함될 수 있습니다. Redis 엔진 버전이 5.0.6 이상인 경우 노드 또는 샤드 한도를 클러스터당 최대 500까지 늘릴 수 있습니다. 예를 들어 83개 샤드(샤드당 기본 1개와 복제본 5개)에서 500개 샤드(기본 1개와 복제본 없음) 범위의 500개 노드 클러스터를 구성하도록 선택할 수 있습니다. 증가를 수용할 수 있는 IP 주소가 충분한지 확인해야 합니다. 서브넷 그룹에 있는 서브넷의 CIDR 범위가 너무 작거나 서브넷을 샤드로 분할하여 다른 클러스터에서 과도하게 사용되는 것과 같은 일반적인 함정에 유의합니다. 자세한 내용은 서브넷 그룹 단원을 참조하세요. 5.0.6 이하의 버전에서 한도는 클러스터당 250개입니다.

한도 증가를 요청하려면 AWS 서비스 한도를 참조하고 한도 유형을 인스턴스 유형별 클러스터당 노드로 선택하세요. 

API 및 CLI 각각에서의 복제는 다른 용어를 사용하여 이전 버전과의 호환성을 유지하지만, 결과는 동일합니다. 다음 표는 복제 구현을 위한 API 및 CLI 용어를 보여줍니다.

복제 비교: Redis(클러스터 모드 비활성화됨) 및 Redis(클러스터 모드 활성화됨)

다음 표에서 Redis(클러스터 모드 비활성화됨) 복제 그룹과 Redis(클러스터 모드 활성화됨) 복제 그룹의 기능을 비교할 수 있습니다.

  Redis(클러스터 모드 비활성화됨) Redis(클러스터 모드 활성화됨)
각 샤드(노드 그룹)의 복제본 수 0–5 0–5
데이터 파티셔닝 아니요
복제본 추가/삭제
노드 그룹 추가/삭제 아니요
확장 지원
엔진 업그레이드 지원
복제본을 기본 노드로 승격 자동
다중 AZ 선택 필수 여부
백업/복구
참고:
복제본이 없는 기본 노드에서 장애가 발생할 경우 기본 노드에 저장된 데이터가 모두 손실됩니다.
백업 및 복원을 사용하여 Redis(클러스터 모드 활성화됨)로 마이그레이션할 수 있습니다.
백업 및 복원을 사용하여 Redis(클러스터 모드 활성화됨) 클러스터 크기를 조정할 수 있습니다.

 

샤드
 (노드 그룹)
1 1–500   Redis(클러스터 모드 활성화됨) 클러스터에는 데이터가 샤드에 분할된 최대 500개의 샤드가 포함될 수 있습니다.
Redis 엔진 버전이 5.0.6 이상인 경우 노드 또는 샤드 한도를 클러스터당 최대 500까지 늘릴 수 있습니다.
예를 들어 83개 샤드(샤드당 기본 1개와 복제본 5개)에서 500개 샤드(기본 1개와 복제본 없음) 범위의 500개 노드 클러스터를 구성하도록 선택할 수 있습니다.
증가를 수용할 수 있는 IP 주소가 충분한지 확인해야 합니다.
서브넷 그룹에 있는 서브넷의 CIDR 범위가 너무 작거나 서브넷을 샤드로 분할하여 다른 클러스터에서 과도하게 사용되는 것과 같은 일반적인 함정에 유의합니다.
자세한 내용은 서브넷 그룹 단원을 참조하세요. 5.0.6 이하의 버전에서 한도는 클러스터당 250개입니다.

한도 증가를 요청하려면 AWS 서비스 한도를 참조하고 한도 유형을 인스턴스 유형별 클러스터당 노드로 선택하세요.

 

모든 샤드 (API 및 CLI에서 노드 그룹 하나) 및 노드는 동일한AWS리전. 그러나 해당 내의 여러 가용 영역에서 개별 노드를 프로비저닝할 수 있습니다.AWS리전.

읽기 전용 복제본은 데이터가 둘 이상의 노드—(기본 및 하나 이상의 읽기 전용 복제본)에 복제되므로 잠재적인 데이터 손실이 방지됩니다. 안정성과 복구 속도를 높이려면 여러 가용 영역에 읽기 전용 복제본을 하나 이상 생성하는 것이 좋습니다. 또한 Redis AOF(Append Only File)를 사용하는 대신 다중 AZ를 활성화합니다. 다중 AZ가 활성화된 경우 AOF가 비활성화됩니다. 자세한 내용은 의 가동 중지 최소화ElastiCache for Redis다중 AZ와 함께 단원을 참조하십시오.

복제: 제한 및 제외

  • 노드 유형 cache.t1.micro 및 cache.t2.에 대해서는 AOF가 지원되지 않습니다. 이러한 유형의 노드에서는 appendonly 파라미터 값이 무시됩니다.
  • 노드 유형 T1에서는 다중 AZ가 지원되지 않습니다.

AOF 및 다중 AZ에 대한 자세한 내용은 장애 완화 단원을 참조하십시오.

AWS리전 및 가용 영역

Amazon ElastiCache는 여러AWS전 세계 지역입니다. 따라서 비즈니스 요구 사항에 적합한 위치에서 ElastiCache 클러스터를 시작할 수 있습니다. 예를 들어 에서 를 시작할 수 있습니다.AWS리전 또는 특정 법적 요구 사항을 준수해야 합니다.

기본적으로,AWSSDK,AWS CLI,ElastiCacheAPI 및ElastiCache콘솔의 참조미국 서부(오레곤)리전. 로ElastiCache가용성을 새로운AWS리전, 이에 대한 새로운 엔드포인트AWS또한 리전도 사용할 수 있습니다. HTTP 요청에서 이를 사용할 수 있습니다.AWSSDK,AWS CLI, 및ElastiCache콘솔로 이동합니다.

각 AWS 리전은 다른 AWS 지역에서 완전히 격리되도록 설계되었습니다. 각 리전 내에는 가용 영역이 여러 개 있습니다. 서로 다른 가용 영역에서 노드를 시작하면 가능한 최고 수준의 내결함성을 갖출 수 있습니다. 에 대한 자세한 내용AWS리전 및 가용 영역에 대한 자세한 내용은지역 및 가용 영역 선택. 다음 다이어그램에서는 방법의 상위 수준보기를 볼 수 있습니다.AWS리전 및 가용 영역이 작동합니다.

자세한 정보AWS에서 지원하는 리전ElastiCache및 엔드포인트는 단원을 참조하십시오.지원되는 리전 및 엔드포인트.

ElastiCache for Redis 엔드포인트

엔드포인트는 애플리케이션이 ElastiCache 노드 또는 클러스터에 연결하는 데 사용하는 고유한 주소입니다.

단일 노드 엔드포인트Redis(클러스터 모드 비활성화됨)

단일 노드 Redis 클러스터에 대한 엔드포인트는 읽기 및 쓰기 모두를 위해 클러스터에 연결하는 데 사용됩니다.

다중 노드 엔드포인트는Redis(클러스터 모드 비활성화됨)

다중 노드 Redis(클러스터 모드 비활성화됨) 클러스터에는 두 가지 유형의 엔드포인트가 있습니다. 기본 엔드포인트는 기본 역할의 특정 노드가 변경된 경우에도 항상 클러스터의 기본 노드에 연결됩니다. 클러스터에 대한 모든 쓰기를 위해 기본 엔드포인트를 사용합니다.

Redis(클러스터 모드 비활성화됨) 클러스터의 읽기 엔드포인트는 항상 특정 노드를 가리킵니다. 읽기 전용 복제본을 추가 또는 제거할 때마다 애플리케이션에서 관련된 노드 엔드포인트를 업데이트해야 합니다.

Redis(클러스터 모드 활성화됨) 엔드포인트

Redis(클러스터 모드 활성화됨) 클러스터에는 단일 구성 엔드포인트가 있습니다. 구성 엔드포인트에 연결되면 애플리케이션이 클러스터의 각 샤드에 대한 기본 및 읽기 엔드포인트를 찾을 수 있습니다.

자세한 내용은 연결 엔드포인트 찾기 단원을 참조하십시오.

ElastiCache 파라미터 그룹

캐시 파라미터 그룹은 지원되는 엔진 소프트웨어에 대한 런타임 설정을 관리하는 간단한 방법입니다. 메모리 사용량, 제거 정책, 항목 크기 등을 제어하는 데 여러 가지 파라미터가 사용됩니다. ElastiCache 파라미터 그룹이란 클러스터에 적용할 수 있는 엔진별 파라미터의 이름이 지정된 모음을 말합니다. 이를 통해 해당 클러스터에 있는 모든 노드가 정확히 동일한 방법으로 구성되게 할 수 있습니다.

지원되는 파라미터의 목록, 해당 기본값 및 수정할 수 있는 사항은 DescribeEngineDefaultParameters 단원(CLI: describe-engine-default-parameters)을 참조하십시오.

ElastiCache 파라미터 그룹에 대한 자세한 내용은 파라미터 그룹을 사용하여 엔진 파라미터 구성 단원을 참조하십시오.

ElastiCache for Redis 보안

향상된 보안을 위해 ElastiCache for Redis 노드 액세스는 허용하는 Amazon EC2 인스턴스에 실행되는 애플리케이션으로 제한됩니다. 클러스터 보안 그룹에 액세스할 수 있는 Amazon EC2 인스턴스를 제어할 수 있습니다.

기본적으로 모든 새 ElastiCache for Redis 클러스터는 Amazon Virtual Private Cloud(Amazon VPC) 환경에서 시작됩니다. 다음을 수행할 수 있습니다.서브넷 그룹에서 클러스터 액세스 권한을 부여하려면Amazon EC2인스턴스가 특정 서브넷에서 실행 중인지 확인합니다. Amazon VPC 외부에서 클러스터를 실행하도록 선택한 경우 보안 그룹을 생성할 수 있습니다. 이를 통해 특정 Amazon EC2 보안 그룹 내에서 실행되는 Amazon EC2 인스턴스를에 권한을 부여할 수 있습니다.

ElastiCache for Redis는 노드 액세스를 제한하는 것 외에 지정된 버전의 ElastiCache for Redis를 실행 중인 노드의 TLS 및 실행 중 암호화를 지원합니다. 자세한 내용은 다음 자료를 참조하십시오.

ElastiCache 보안 그룹

참고

ElastiCache 보안 그룹은 Amazon Virtual Private Cloud(Amazon VPC) 환경에서 실행되지 않는 클러스터에만 적용됩니다. Amazon VPC를 기반으로 Virtual Private Cloud (VPC)에서 ElastiCache 노드를 실행하는 경우 Amazon VPC 보안 그룹으로 캐시 클러스터에 대한 액세스를 제어할 수 있습니다. 이는 ElastiCache 보안 그룹과는 다릅니다. Amazon VPC에서 ElastiCache을 사용하는 방법에 대한 자세한 내용은 Amazon VPCs 및ElastiCache보안 단원을 참조하십시오.

ElastiCache를 사용하면 보안 그룹을 통해 클러스터에 대한 액세스를 제어할 수 있습니다. 보안 그룹은 클러스터에 대한 네트워크 액세스를 제어하는 방화벽 역할을 합니다. 기본적으로 클러스터로 액세스하는 네트워크는 해제되어 있습니다. 애플리케이션이 클러스터에 액세스하도록 하려면 특정 Amazon EC2 보안 그룹의 호스트에서 액세스를 명시적으로 활성화해야 합니다. 수신 규칙이 구성되면 동일한 규칙이 해당 보안 그룹과 관련된 모든 클러스터에 적용됩니다.

클러스터에 대한 네트워크 액세스를 허용하려면 먼저 보안 그룹을 생성합니다. 그런 다음 AuthorizeCacheSecurityGroupIngress API 작업 또는 authorize-cache-security-group-ingress AWS CLI 명령을 사용하여 원하는 Amazon EC2 보안 그룹을 승인합니다. 이렇게 하면 결과적으로 허용되는 Amazon EC2 인스턴스가 지정됩니다. 생성 시 보안 그룹을 클러스터에 연결할 수 있습니다. ElastiCache 관리 콘솔, ModifyCacheCluster API 작업 또는 modify-cache-cluster AWS CLI 명령을 사용하여 이 작업을 수행할 수도 있습니다.

중요

IP 범위 기반 액세스 제어는 클러스터에 사용할 수 없습니다. 클러스터에 액세스하는 모든 클라이언트는 Amazon EC2 네트워크 내에 있어야 하며, 이전에 설명한 대로 보안 그룹을 사용해 승인을 받아야 합니다.

보안 그룹에 대한 자세한 내용은 보안 그룹: EC2-Classic 단원을 참조하십시오.

ElastiCache서브넷 그룹

서브넷 그룹은 Amazon VPC 환경에서 실행 중인 클러스터에 대해 지정할 수 있는 서브넷(일반적으로 프라이빗 서브넷) 모음입니다.

Amazon VPC에서 클러스터를 생성할 경우 캐시 서브넷 그룹을 지정해야 합니다. ElastiCache는 해당 캐시 서브넷 그룹을 사용하여 캐시 노드에 연결된 서브넷 내의 서브넷 및 IP 주소를 선택합니다.

Amazon VPC 환경에서 캐시 서브넷 그룹을 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

ElastiCache for Redis백업

백업은 Redis 클러스터의 특정 시점 복사입니다. 백업을 사용하여 기존 클러스터를 복원하거나 새 클러스터를 시드할 수 있습니다. 백업은 클러스터의 모든 데이터와 일부 메타데이터로 구성됩니다.

클러스터에서 실행되는 Redis 버전에 따라 백업 프로세스를 완료하는 데 필요한 예약된 메모리의 양이 달라집니다. 자세한 내용은 다음 자료를 참조하십시오.

ElastiCache 이벤트

캐시 클러스터에서 중요 이벤트가 발생하면 ElastiCache는 특정 Amazon SNS 주제에 알림을 전송합니다. 이러한 이벤트로는 노드 추가 실패 또는 성공, 보안 그룹 수정 등을 들 수 있습니다. 주요 이벤트를 모니터링하면 클러스터의 현재 상태를 파악할 수 있으며, 많은 경우에 교정 작업을 수행할 수도 있습니다.

ElastiCache 이벤트에 대한 자세한 내용은 모니터링ElastiCache이벤트 단원을 참조하십시오.

반응형

'CLOUD > AWS' 카테고리의 다른 글

AWS CLI 설치 및 접속 설정 방법(MAC)  (0) 2021.08.09
ElastiCache for Redis용어  (0) 2021.08.06
Amazon ElastiCache for Redis 란?  (0) 2021.08.06
AWS 자습서 사이트  (0) 2021.08.06
Amazon CloudFront 에서 콘텐츠 제공하는 방법  (0) 2021.08.06

댓글