

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 노드 기반 ElastiCache 클러스터 생성 및 관리
<a name="designing-elasticache-cluster"></a>

ElastiCache 클러스터를 세밀하게 제어해야 하는 경우 노드 기반 클러스터를 생성할 수 있습니다. ElastiCache를 사용하면 클러스터의AWS가용 영역에서 노드 유형, 노드 수 및 노드 배치를 선택하여 노드 기반 클러스터를 운영할 수 있습니다. ElastiCache는 완전관리형 서비스이므로 클러스터의 하드웨어 프로비저닝, 모니터링, 노드 교체 및 소프트웨어 패치를 자동으로 관리합니다.

설정 방법에 대한 자세한 설명은 [ElastiCache 설정](set-up.md) 섹션을 참조하세요. 노드나 클러스터의 관리, 업데이트 또는 삭제에 대한 세부 사항은 [ElastiCache에서 노드 관리](CacheNodes.md) 섹션을 참조하세요. 노드 기반 ElastiCache 클러스터를 생성할 때 Amazon ElastiCache 배포의 주요 구성 요소의 개요를 볼 수 있는 [주요 개념](WhatIs.corecomponents.md)을 참조하세요.

**Topics**
+ [ElastiCache 구성 요소 및 기능](WhatIs.Components.md)
+ [ElastiCache 용어](WhatIs.Terms.md)
+ [자습서: 노드 기반 ElastiCache 클러스터를 생성하는 방법](SubnetGroups.designing-cluster-pre.md)
+ [클러스터 삭제](Clusters.Delete-gs.redis.md)
+ [기타 ElastiCache 자습서 및 동영상](Tutorials.md)
+ [ElastiCache에서 노드 관리](CacheNodes.md)
+ [ElastiCache에서 클러스터 관리](Clusters.md)
+ [노드 기반 Valkey, Memcached 및 Redis OSS 클러스터 비교](SelectEngine.md)
+ [Valkey 또는 Redis OSS의 온라인 마이그레이션](OnlineMigration.md)
+ [ElastiCache에 대한 리전 및 가용 영역 선택](RegionsAndAZs.md)

# ElastiCache 구성 요소 및 기능
<a name="WhatIs.Components"></a>

다음은 Amazon ElastiCache 배포의 주요 구성 요소를 개괄적으로 설명한 것입니다.

**Topics**
+ [ElastiCache 노드](#WhatIs.Components.Nodes)
+ [ElastiCache 샤드](#WhatIs.Components.Shards)
+ [ElastiCache 클러스터](#WhatIs.Components.Clusters)
+ [ElastiCache 복제](#WhatIs.Components.ReplicationGroups)
+ [ElastiCache 엔드포인트](#WhatIs.Components.Endpoints)
+ [ElastiCache 파라미터 그룹](#WhatIs.Components.ParameterGroups)
+ [ElastiCache 보안](#WhatIs.Components.Security)
+ [ElastiCache 서브넷 그룹](#WhatIs.Components.SubnetGroups)
+ [ElastiCache 백업](#WhatIs.Components.Snapshots)
+ [ElastiCache 이벤트](#WhatIs.Components.Events)

## ElastiCache 노드
<a name="WhatIs.Components.Nodes"></a>

*노드*는 ElastiCache 배포의 가장 작은 구성 요소입니다. 노드는 다른 노드와 독립적으로 존재하거나 다른 노드와 일부 관련되어 존재할 수 있습니다.

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

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

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

노드에 대한 자세한 내용은 [ElastiCache에서 노드 관리](CacheNodes.md) 섹션을 참조하세요.

## ElastiCache 샤드
<a name="WhatIs.Components.Shards"></a>

Valkey 또는 Redis OSS *샤드*(API 및 CLI에서 *노드 그룹*이라고 함)는 1\$16개의 관련 노드 그룹입니다. 클러스터 모드가 활성화된 Valkey 또는 Redis OSS 클러스터에는 항상 샤드가 하나 이상 있습니다.

샤딩은 데이터 샤드라고 하는 더 작고 빠르며 쉽게 관리되는 부분으로 대규모 데이터베이스를 분리하는 데이터베이스 파티셔닝 방법입니다. 이렇게 하면 여러 별도의 섹션에 작업을 분산하여 데이터베이스 효율성을 높일 수 있습니다. 샤드를 사용하면 성능, 확장성 및 비용 효율성 향상 등 다양한 이점을 얻을 수 있습니다.

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

한도 증가를 요청하려면 [AWS서비스 한도](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)를 참조하고 한도 유형을 **인스턴스 유형별 클러스터당 노드**로 선택하세요.

*다중 노드 샤드*는 읽기/쓰기 기본 노드 하나와 1\$15개의 복제본 노드를 통해 복제를 구현합니다. 자세한 내용은 [고가용성을 위한 복제 그룹 사용](Replication.md) 단원을 참조하십시오.

샤드에 대한 자세한 내용은 [ElastiCache의 샤드 작업](Shards.md) 섹션을 참조하세요.

## ElastiCache 클러스터
<a name="WhatIs.Components.Clusters"></a>

*클러스터*는 하나 이상의 [노드](CacheNodes.md)로 구성된 논리적 그룹입니다. 데이터는 Memcached 클러스터의 노드와 클러스터 모드가 활성화된 Valkey 또는 Redis OSS 클러스터의 샤드 간에 분할됩니다.

여러 ElastiCache 작업은 클러스터에서 다음 사항을 대상으로 합니다.
+ 클러스터 생성
+ 클러스터 수정
+ 클러스터의 스냅샷 생성(모든 Redis 버전)
+ 클러스터 삭제
+ 클러스터의 요소 보기
+ 비용 할당 태그를 클러스터에 추가 및 클러스터에서 삭제

자세한 내용은 다음 관련 항목을 참조하세요.
+ [ElastiCache에서 클러스터 관리](Clusters.md) 및 [ElastiCache에서 노드 관리](CacheNodes.md)

  클러스터, 노드 및 관련 작업에 대한 정보입니다.
+ [AWS서비스 제한: Amazon ElastiCache](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_elasticache)

  노드 또는 클러스터의 최대 수와 같은 ElastiCache 제한에 대한 정보입니다. 이러한 제한을 초과해야 할 경우 [Amazon ElastiCache 캐시 노드 요청 양식](https://aws.amazon.com/contact-us/elasticache-node-limit-request/)을 사용하여 요청하세요.
+ [장애 완화](disaster-recovery-resiliency.md#FaultTolerance)

  클러스터 및 Valkey 또는 Redis OSS 복제 그룹의 내결함성 향상에 대한 정보입니다.

### 일반적인 클러스터 구성
<a name="WhatIs.Components.Clusters.TypicalConfigurations"></a>

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

#### Valkey 또는 Redis OSS 클러스터
<a name="WhatIs.Components.Clusters.TypicalConfigurations.Redis"></a>

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

향상된 내결함성을 위해 Valkey 또는 Redis OSS 클러스터에 최소 두 개의 노드를 두고, 다중 AZ를 활성화하는 것이 좋습니다. 자세한 내용은 [장애 완화](disaster-recovery-resiliency.md#FaultTolerance) 단원을 참조하십시오.

Valkey 또는 Redis OSS 클러스터 수요가 변경되면 스케일 업 또는 스케일 다운할 수 있습니다. 이렇게 하려면 클러스터를 다른 노드 인스턴스 유형으로 이동하세요. 애플리케이션이 읽기 집약적인 경우 클러스터에 읽기 전용 복제본을 추가하는 것이 좋습니다. 이렇게 하면 보다 적절한 수의 노드로 읽기를 분산할 수 있습니다.

데이터 계층화를 사용할 수도 있습니다. 자주 액세스하는 데이터는 메모리에 저장되고 자주 액세스하지 않는 데이터는 디스크에 저장됩니다. 데이터 계층화를 사용하면 메모리 요구 사항이 줄어들 수 있다는 장점이 있습니다. 자세한 내용은 [ElastiCache의 데이터 계층화](data-tiering.md) 단원을 참조하십시오.

ElastiCache는 Valkey 또는 Redis OSS 클러스터의 노드 유형을 더 큰 노드 유형으로 동적으로 변경하는 것을 지원합니다. 스케일 업 또는 스케일 다운에 대한 정보는 [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 클러스터 규모 조정](scaling-redis-classic.md#Scaling.RedisStandalone) 또는 [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 복제본 노드 규모 조정](Scaling.RedisReplGrps.md) 섹션을 참조하세요.

#### Memcached에 대한 일반적인 클러스터 구성
<a name="WhatIs.Components.Clusters.TypicalConfigurations"></a>

Memcached는 각AWS리전에 대해 고객당 최대 300개의 노드를 지원하며 각 클러스터에는 1\$160개의 노드가 있습니다. 사용자는 데이터를 Memcached 클러스터의 노드에 두루 분할합니다.

Memcached 엔진을 실행할 때 클러스터는 1\$160개의 노드로 구성될 수 있습니다. 사용자는 데이터베이스를 노드에 두루 분할합니다. 애플리케이션은 각 노드의 엔드포인트를 읽고 씁니다. 자세한 내용은 [Auto Discovery](AutoDiscovery.md)를 참조하세요.

내결함성을 개선하려면 클러스터AWS리전 내의 다양한 가용 영역(AZs)에서 Memcached 노드를 찾습니다. 이렇게 하면 한 AZ에서 발생한 오류가 전체 클러스터 및 애플리케이션에 미치는 영향을 최대한 줄일 수 있습니다. 자세한 내용은 [장애 완화](disaster-recovery-resiliency.md#FaultTolerance) 단원을 참조하십시오.

Memcached 클러스터 변경 시 요구 사항에 따라 노드를 추가 또는 제거하여 확장 또는 축소할 수 있습니다. 이로써 데이터는 새 노드 수에 두루 재분할됩니다. 데이터를 분할할 때 일관적 해싱을 사용하는 것이 좋습니다. 일관적 해싱에 대한 자세한 내용은 [효율적인 로드 밸런싱을 위해 ElastiCache 클라이언트 구성(Memcached)](BestPractices.LoadBalancing.md) 섹션을 참조하세요.

## ElastiCache 복제
<a name="WhatIs.Components.ReplicationGroups"></a>

Valkey 및 Redis OSS의 경우, 한 샤드(API 및 CLI에서 노드 그룹이라고 함)에서 2\$16개의 노드를 그룹화하여 복제를 구현합니다. 이러한 노드 중 하나는 읽기/쓰기 기본 노드입니다. 다른 모든 노드는 읽기 전용 복제본 노드입니다. 복제는 ElastiCache for Valkey 및 Redis OSS에만 사용할 수 있으며 ElastiCache for Memcached에는 사용할 수 없습니다.

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

 Valkey 또는 Redis OSS 클러스터는 한 개의 샤드(API 및 CLI에서 *노드 그룹*)를 지원합니다.

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

**복제 비교: Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 및 Valkey 또는 Redis OSS(클러스터 모드 활성화됨)--> 클러스터 모드가 활성화된 Valkey 또는 Redis OSS 클러스터와 클러스터 모드가 비활성화된 Valkey 또는 Redis OSS 클러스터 비교**

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


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/WhatIs.Components.html)

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

읽기 전용 복제본은 데이터가 둘 이상의 노드(기본 및 하나 이상의 읽기 전용 복제본)에 복제되므로 잠재적인 데이터 손실이 방지됩니다. 안정성과 복구 속도를 높이려면 여러 가용 영역에 읽기 전용 복제본을 하나 이상 생성하는 것이 좋습니다.

글로벌 데이터 스토어를 활용할 수도 있습니다. Global Datastore for Redis OSS 기능을 사용하면AWS리전 간에 완전 관리형의 빠르고 안정적이며 안전한 복제를 수행할 수 있습니다. 이 기능을 사용하면 ElastiCache용 리전 간 읽기 전용 복제본 클러스터를 생성하여AWS리전 간 지연 시간이 짧은 읽기 및 재해 복구를 활성화할 수 있습니다. 자세한 내용은 [글로벌 데이터 스토어를 사용하여AWS리전 간 복제를 참조하세요](Redis-Global-Datastore.md).

**복제: 제한 및 제외**
+ 노드 유형 T1에서는 다중 AZ가 지원되지 않습니다.

## ElastiCache 엔드포인트
<a name="WhatIs.Components.Endpoints"></a>

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

### 클러스터 모드가 비활성화된 Valkey 또는 Redis OSS에 대한 단일 노드 엔드포인트
<a name="WhatIs.Components.Endpoints.Redis"></a>

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

### 클러스터 모드가 비활성화된 Valkey 또는 Redis OSS에 대한 다중 노드 엔드포인트
<a name="WhatIs.Components.Endpoints.Redis.Multi"></a>

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

리더 엔드포인트를 사용하여 모든 읽기 전용 복제본 사이에 수신 연결을 고르게 분할합니다. 읽기 작업에는 개별 노드 엔드포인트(API/CLI에서는 읽기 엔드포인트라고 함)를 사용하세요.

### Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 엔드포인트
<a name="WhatIs.Components.Endpoints.Redis.Cluster"></a>

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

자세한 내용은 [ElastiCache에서 연결 엔드포인트 찾기](Endpoints.md) 단원을 참조하십시오.

### ElastiCache for Memcached 엔드포인트
<a name="WhatIs.Components.Endpoints.Memcached"></a>

Memcached 클러스터의 각 노드에는 고유한 엔드포인트가 있습니다. 클러스터에도 *구성 엔드포인트*라는 엔드포인트가 있습니다. Auto Discovery를 사용하기로 설정하고 구성 엔드포인트를 연결한 경우에는 클러스터에서 노드를 추가하거나 제거한 후에도 애플리케이션이 자동으로 각 노드 엔드포인트를 *파악*합니다. 자세한 내용은 [Auto Discovery](AutoDiscovery.md)를 참조하세요.

자세한 내용은 [ElastiCache에서 연결 엔드포인트 찾기](Endpoints.md) 단원을 참조하십시오.

## ElastiCache 파라미터 그룹
<a name="WhatIs.Components.ParameterGroups"></a>

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

지원되는 파라미터의 목록, 해당 기본값 및 수정할 수 있는 사항은 [DescribeEngineDefaultParameters](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEngineDefaultParameters.html) 섹션(CLI: [describe-engine-default-parameters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-engine-default-parameters.html))을 참조하세요.

ElastiCache 파라미터 그룹에 대한 자세한 내용은 [ElastiCache 파라미터 그룹을 사용해 엔진 파라미터 구성](ParameterGroups.md) 섹션을 참조하세요.

## ElastiCache 보안
<a name="WhatIs.Components.Security"></a>

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

기본적으로 모든 새 ElastiCache 클러스터는 Amazon Virtual Private Cloud(Amazon VPC) 환경에서 시작됩니다. *서브넷 그룹*을 사용하여 특정 서브넷에서 실행 중인 Amazon EC2 인스턴스에서의 액세스 권한을 클러스터에 부여할 수 있습니다.

ElastiCache는 노드 액세스를 제한하는 것 외에 지정된 버전의 ElastiCache를 실행 중인 노드의 TLS 및 실행 중 암호화를 지원합니다. 자세한 내용은 다음을 참조하세요.
+ [Amazon ElastiCache의 데이터 보안](encryption.md)
+ [Valkey 및 Redis OSS AUTH 명령으로 인증](auth.md)

## ElastiCache 서브넷 그룹
<a name="WhatIs.Components.SubnetGroups"></a>

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

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

Amazon VPC 환경에서 캐시 서브넷 그룹을 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.
+ [Amazon VPC 및 ElastiCache 보안](VPCs.md)
+ [3단계. 클러스터에 대한 액세스 허가](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)
+ [서브넷 및 서브넷 그룹](SubnetGroups.md)

## ElastiCache 백업
<a name="WhatIs.Components.Snapshots"></a>

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

클러스터에서 실행되는 Valkey 또는 Redis OSS 버전에 따라 백업 프로세스를 완료하는 데 필요한 예약된 메모리의 양이 달라집니다. 자세한 내용은 다음을 참조하세요.
+ [스냅샷 및 복원](backups.md)
+ [동기화 및 백업 구현 방법](Replication.Redis.Versions.md)
+ [노드 기반 클러스터 백업이 성능에 미치는 영향](backups.md#backups-performance)
+ [충분한 메모리를 확보하여 Valkey 또는 Redis OSS 스냅샷 생성](BestPractices.BGSAVE.md)

## ElastiCache 이벤트
<a name="WhatIs.Components.Events"></a>

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

ElastiCache 이벤트에 대한 자세한 내용은 [ElastiCache 이벤트에 대한 Amazon SNS 모니터링](ECEvents.md) 섹션을 참조하세요.

# ElastiCache 용어
<a name="WhatIs.Terms"></a>

2016년 10월에 Amazon ElastiCache는 Redis OSS 3.2에 대한 지원을 시작했습니다. 이 시점에서 최대 500개의 샤드(ElastiCache API 및에서 노드 그룹이라고 함)로 데이터를 분할할 수 있는 지원이 추가되었습니다AWS CLI. 이전 버전과의 호환성을 유지하기 위해 새 Redis OSS 기능을 포함하도록 API 버전 2015-02-02 작업을 확장했습니다.

동시에 ElastiCache 콘솔에서 이 새 기능과 업계에서 일반적으로 사용되는 용어를 사용하기 시작했습니다. 이러한 변경 사항은 어떤 경우에 API 및 CLI에서 사용되는 용어가 콘솔에서 사용되는 용어와 다를 수 있다는 것을 의미합니다. 다음 목록에는 API 및 CLI와 콘솔 간에 다를 수 있는 용어가 식별되어 있습니다.

**캐시 클러스터 또는 노드와 노드 비교**  
복제본 노드가 없는 경우 노드와 클러스터 사이에 일대일 관계가 있습니다. 따라서 ElastiCache 콘솔은 종종 상호 교환적으로 용어를 사용했습니다. 콘솔에서는 이제 *노드* 처리량이라는 용어를 사용합니다. 한 가지 예외는 [**Create Cluster**] 버튼입니다. 이 버튼은 복제본 노드를 포함 또는 포함하지 않고 클러스터를 생성하는 프로세스를 시작합니다.  
ElastiCache API 및는 이전과 같은 용어를AWS CLI계속 사용합니다.

**클러스터와 Valkey 또는 Redis OSS 복제 그룹**  
콘솔에서는 이제 모든 ElastiCache for Redis OSS 클러스터에 대해 *클러스터*라는 용어를 사용합니다. 콘솔에서는 다음과 같은 모든 환경에서 클러스터 용어를 사용합니다.  
+ 클러스터가 단일 노드 Valkey 또는 Redis OSS 클러스터인 경우.
+ 클러스터가 단일 샤드(API 및 CLI에서 *노드 그룹*이라고 함) 내에서 복제를 지원하는 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터인 경우.
+ 클러스터가 1\$190개의 샤드 내에서 또는 한도 증가 요청으로 최대 500개까지 복제를 지원하는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터인 경우. 한도 증가를 요청하려면 [AWS서비스 한도](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)를 참조하고 한도 유형을 **인스턴스 유형별 클러스터당 노드**로 선택하세요.
Valkey 또는 Redis OSS 복제 그룹에 대한 자세한 내용은 [고가용성을 위한 복제 그룹 사용](Replication.md) 섹션을 참조하세요.  
다음 다이어그램은 콘솔의 관점에서 바라본 ElastiCache for Redis OSS 클러스터의 다양한 토폴로지를 나타낸 것입니다.  

![\[이미지: ElastiCache 클러스터(콘솔 보기)\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-Clusters-ConsoleView.png)

ElastiCache API 및AWS CLI작업은 여전히 단일 노드 ElastiCache for Redis OSS 클러스터를 다중 노드 Valkey 또는 Redis OSS 복제 그룹과 구별합니다. 다음 다이어그램은 ElastiCache API 및AWS CLI관점에서 바라본 다양한 ElastiCache for Redis OSS 토폴로지를 나타낸 것입니다.  

![\[이미지: ElastiCache for Redis OSS 클러스터 및 Valkey 또는 Redis OSS 복제 그룹(API 및 CLI 보기)\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-Clusters-APIView.png)


**Valkey 또는 Redis OSS 복제 그룹과 글로벌 데이터 저장소 비교**  
글로벌 데이터 저장소는 리전 간에서 서로 복제하는 하나 이상의 클러스터 모음인 반면 Valkey 또는 Redis OSS 복제 그룹은 여러 샤드가 있는 클러스터 모드가 활성화된 클러스터 간에서 데이터를 복제합니다. 글로벌 데이터 스토어는 다음과 같이 구성됩니다.  
+ **기본(활성) 클러스터** - 기본 클러스터는 글로벌 데이터 스토어 내의 모든 클러스터에 복제되는 쓰기를 허용합니다. 기본 클러스터는 읽기 요청도 허용합니다.
+ **보조(수동) 클러스터** - 보조 클러스터는 읽기 요청만 허용하고 기본 클러스터에서 데이터 업데이트를 복제합니다. 보조 클러스터는 기본 클러스터와 다른AWS리전에 있어야 합니다.
글로벌 데이터 스토어에 대한 자세한 내용은 [글로벌 데이터 스토어를 사용하여AWS리전 간 복제](Redis-Global-Datastore.md) 섹션을 참조하세요.

# 자습서: 노드 기반 ElastiCache 클러스터를 생성하는 방법
<a name="SubnetGroups.designing-cluster-pre"></a>

다음은 Valkey, Memcached 및 Redis OSS용 노드 기반 ElastiCache 클러스터를 생성하는 방법입니다.

**Topics**
+ [노드 기반 ElastiCache for Valkey 클러스터 생성](SubnetGroups.designing-cluster-pre.valkey.md)
+ [노드 기반 ElastiCache for Redis OSS 클러스터 생성](SubnetGroups.designing-cluster-pre.redis.md)

# 노드 기반 ElastiCache for Valkey 클러스터 생성
<a name="SubnetGroups.designing-cluster-pre.valkey"></a>

다음은 노드 기반 ElastiCache for Valkey 클러스터를 설계하기 위해 수행해야 하는 일회성 작업입니다.

## 1단계: 서브넷 그룹 생성
<a name="SubnetGroups.Creating-cluster-setup.valkey"></a>

ElastiCache(Valkey) 클러스터를 생성하기 전에 먼저 서브넷 그룹을 생성합니다. *캐시 서브넷 그룹*은 VPC에서 클러스터에 대해 지정할 수 있는 서브넷 모음입니다. VPC에서 클러스터를 시작할 때 캐시 서브넷 그룹을 선택해야 합니다. 그러면 ElastiCache가 해당 캐시 서브넷 그룹을 사용하여 해당 서브넷의 IP 주소를 클러스터의 각 캐시 노드에 할당합니다.

새 서브넷 그룹을 생성할 때 사용 가능한 IP 주소의 수를 기록하세요. 서브넷에 무료 IP 주소가 거의 없는 경우 클러스터에 추가할 수 있는 노드의 수가 제약될 수 있습니다. 이 문제를 해결하기 위해 클러스터의 가용 영역에 충분한 수의 IP 주소가 있도록 서브넷 그룹에 하나 이상의 서브넷을 지정할 수 있습니다. 그 이후 클러스터에 더 많은 노드를 추가할 수 있습니다.

ElastiCache 설정에 대한 자세한 내용은 [ElastiCache 설정](set-up.md) 섹션을 참조하세요.

다음 절차는 `mysubnetgroup`(콘솔)이라는 서브넷 그룹과AWS CLI를 생성하는 방법을 보여 줍니다.

### 서브넷 그룹 생성(콘솔)
<a name="SubnetGroups.Creating.CON.valkey"></a>

다음 절차는 서브넷 그룹을 생성하는 방법을 보여줍니다(콘솔).

**서브넷 그룹을 생성하는 방법(콘솔)**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 탐색 목록에서 [**Subnet Groups**]를 선택합니다.

1. **Create Subnet Group**을 선택합니다.

1. [**Create Subnet Group**] 마법사에서 다음을 수행합니다. 모든 설정이 원하는 대로 설정되었으면 [**Yes, Create**]를 선택합니다.

   1. **Name** 상자에 서브넷 그룹의 이름을 입력합니다.

   1. **Description** 상자에 서브넷 그룹에 대한 설명을 입력합니다.

   1. **VPC ID** 상자에서 생성한 Amazon VPC를 선택합니다.

   1. [**Availability Zone**] 및 [**Subnet ID**] 목록에서 프라이빗 서브넷의 ID와 가용 영역 또는 [ElastiCache에서 로컬 영역 사용](Local_zones.md)을 선택한 다음 [**Add**]를 선택합니다.  
![\[이미지: 서브넷 VPC 생성 화면\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/vpc-03.png)

1. 나타나는 확인 메시지에서 **Close**를 선택합니다.

새 서브넷 그룹이 ElastiCache 콘솔의 **서브넷 그룹** 목록에 나타납니다. 창 하단에서 서브넷 그룹을 선택하여 이 그룹과 연결된 모든 서브넷 등의 상세 내용을 확인할 수 있습니다.

### 서브넷 그룹 생성(AWS CLI)
<a name="SubnetGroups.Creating.CLI.valkey"></a>

명령 프롬프트에서 `create-cache-subnet-group` 명령을 사용하여 서브넷 그룹을 생성합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache create-cache-subnet-group \
    --cache-subnet-group-name mysubnetgroup \
    --cache-subnet-group-description "Testing" \
    --subnet-ids subnet-53df9c3a
```

Windows의 경우:

```
aws elasticache create-cache-subnet-group ^
    --cache-subnet-group-name mysubnetgroup ^
    --cache-subnet-group-description "Testing" ^
    --subnet-ids subnet-53df9c3a
```

이 명령은 다음과 유사한 출력을 생성합니다.

```
{
    "CacheSubnetGroup": {
        "VpcId": "vpc-37c3cd17", 
        "CacheSubnetGroupDescription": "Testing", 
        "Subnets": [
            {
                "SubnetIdentifier": "subnet-53df9c3a", 
                "SubnetAvailabilityZone": {
                    "Name": "us-west-2a"
                }
            }
        ], 
        "CacheSubnetGroupName": "mysubnetgroup"
    }
}
```

자세한 내용은AWS CLI주제를 참조하세요[create-cache-subnet-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-subnet-group.html).

## 2단계: 클러스터 생성
<a name="GettingStarted.CreateCluster.valkey"></a>

프로덕션 용도로 사용할 클러스터를 생성하기 전에 비즈니스 요구 사항에 맞게 클러스터를 구성할 방법을 고려해야 합니다. 이러한 문제에 대해서는 [ElastiCache에서 클러스터 준비](Clusters.Prepare.md) 섹션에서 다룹니다. 이 시작하기 연습의 목적에 따라, 클러스터 모드가 비활성화된 클러스터를 생성하고 적용되는 모든 위치에서 기본 구성 값을 그대로 사용합니다.

생성하려는 클러스터는 활성화되고 샌드박스에서 실행되지 않습니다. 삭제하기 전까지 인스턴스에 대해 표준 ElastiCache 사용 요금이 청구됩니다. 여기에 설명된 연습을 한 번에 끝내고 연습을 마칠 때 클러스터를 삭제하면 총 청구 비용이 가장 적게 듭니다(일반적으로 1달러 미만). ElastiCache 사용 요금에 대한 자세한 내용은 [Amazon ElastiCache](https://aws.amazon.com/elasticache/)를 참조하세요.

Amazon VPC 서비스 기반의 Virtual Private Cloud(VPC)에서 클러스터를 시작합니다.

### Valkey(클러스터 모드 비활성화됨) 클러스터 생성(콘솔)
<a name="Clusters.Create.CON.valkey-gs"></a>

**ElastiCache 콘솔을 사용하여 Valkey(클러스터 모드 사용 중지됨) 클러스터 생성**

1. 에 로그인AWS Management Console하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) Amazon ElastiCache 콘솔을 엽니다.

1. 오른쪽 상단의 목록에서이 클러스터를 시작할AWS리전을 선택합니다.

1. 탐색 창에서 **시작하기(Get started)**를 선택하세요.

1. **VPC 생성(Create VPC)**을 선택하고 [Virtual Private Cloud(VPC) 생성(Creating a Virtual Private Cloud (VPC))](VPCs.CreatingVPC.md)에 설명된 단계를 수행하세요.

1. ElastiCache 대시보드 페이지에서 **Valkey 캐시** 또는 **Redis OSS 캐시**를 선택한 다음 **Valkey 캐시 생성** 또는 **Redis OSS 캐시 생성**을 선택합니다.

1. **클러스터 설정(Cluster settings)**에서 다음을 수행합니다.

   1. **Configure and create a new cluster**(새 클러스터 구성 및 생성)를 선택합니다.

   1. **Cluster mode**(클러스터 모드)에서 **Enabled**(사용 설정됨)를 선택합니다.

   1. **Cluster info**(클러스터 정보)에 **Name**(이름) 값을 입력합니다.

   1. (선택 사항) **설명(Description)** 값을 입력합니다.

1. **Location**(위치)에서 다음을 수행합니다.

------
#### [ AWS Cloud  ]

   1. **AWS Cloud**의 경우 **Multi-AZ**(다중 AZ) 및 **Auto-failover**(자동 장애 조치)의 기본 설정을 수락하는 것이 좋습니다. 자세한 정보는 [다중 AZ로 ElastiCache for Redis OSS의 가동 중지 시간 최소화](AutoFailover.md)를 참조하세요.

   1. **클러스터 설정(Cluster settings)**에서 다음을 수행합니다.

      1. **엔진 버전(Engine version)**의 경우 사용 가능한 버전을 선택합니다.

      1. **포트(Port)**의 경우 기본 포트인 6379를 사용합니다. 다른 포트를 사용해야 하는 경우 포트 번호를 입력합니다.

      1. **파라미터 그룹**에서 파라미터 그룹을 선택하거나 새 파라미터 그룹을 만듭니다. 파라미터 그룹은 클러스터의 런타임 파라미터를 제어합니다. 파라미터 그룹에 대한 자세한 정보는 [Valkey 및 Redis OSS 파라미터](ParameterGroups.Engine.md#ParameterGroups.Redis) 및 [ElastiCache 파라미터 그룹 생성](ParameterGroups.Creating.md) 섹션을 참조하세요.
**참고**  
파라미터 그룹을 선택하여 엔진 구성 값을 설정하면 해당 파라미터 그룹이 글로벌 데이터 스토어의 모든 클러스터에 적용됩니다. **파라미터 그룹** 페이지에서 yes/no **글로벌** 속성은 파라미터 그룹이 글로벌 데이터 스토어의 일부인지 여부를 나타냅니다.

      1. **노드 유형**에서 아래쪽 화살표(![\[Downward-pointing triangle icon, typically used to indicate a dropdown menu.\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-DnArrow.png))를 선택합니다. **노드 유형 변경** 대화 상자에서 원하는 노드 유형의 **인스턴스 패밀리** 값을 선택합니다. 그런 다음 이 클러스터에 사용할 노드 유형을 선택한 다음 **저장**을 선택합니다.

         자세한 정보는 [노드 크기 선택](CacheNodes.SelectSize.md) 섹션을 참조하세요.

         r6gd 노드 유형을 선택하는 경우 데이터 계층화가 자동으로 사용 설정됩니다. 자세한 내용은 [ElastiCache의 데이터 계층화](data-tiering.md) 단원을 참조하십시오.

      1. **Number of replicas**(복제본 개수)의 경우 원하는 읽기 전용 복제본 개수를 선택합니다. 다중 AZ를 사용 설정한 경우 숫자는 1\$15 사이가 되어야 합니다.

   1. **연결** 아래

      1. **네트워크 유형**에서 이 클러스터가 지원할 IP 버전을 선택합니다.

      1. **서브넷 그룹**에서 이 클러스터에 적용할 서브넷을 선택합니다. ElastiCache는 해당 서브넷 그룹을 사용하여 노드에 연결된 서브넷 내의 서브넷 및 IP 주소를 선택합니다. ElastiCache 클러스터가 이중 스택 모드에서 작동하려면 IPv4 및 IPv6 주소가 모두 할당된 이중 스택 서브넷이 필요하고, IPv6 전용으로 작동하려면 IPv6 전용 서브넷이 필요합니다.

         새 서브넷 그룹을 생성할 때 해당 그룹이 속한 **VPC ID**를 입력합니다.

         자세한 내용은 다음을 참조하세요.
         + [ElastiCache에서 네트워크 유형 선택](network-type.md).
         + VPC에서 서브넷 생성

         [ElastiCache에서 로컬 영역 사용](Local_zones.md)를 사용하는 경우 로컬 영역에 있는 서브넷을 선택하거나 생성해야 합니다.

         자세한 내용은 [서브넷 및 서브넷 그룹](SubnetGroups.md) 단원을 참조하십시오.

   1. **가용 영역 배치(Availability zone placements)**의 경우 다음 두 가지 옵션이 있습니다.
      + **기본 설정 없음** – ElastiCache에서 가용 영역을 선택합니다.
      + **가용 영역 지정** – 각 클러스터의 가용 영역을 지정합니다.

        가용 영역을 지정하도록 선택한 경우 샤드에 있는 각 클러스터에 대해 목록에서 가용 영역을 선택합니다.

      자세한 내용은 [ElastiCache에 대한 리전 및 가용 영역 선택](RegionsAndAZs.md) 단원을 참조하십시오.

   1. **다음(Next)**을 선택합니다.

   1. **고급 Valkey 또는 Redis OSS 설정**에서

      1. **보안(Security)**의 경우 

        1. 데이터를 암호화하려면 다음과 같은 옵션이 있습니다.
           + **저장된 데이터 암호화** - 디스크에 저장된 데이터 암호화를 활성화합니다. 자세한 정보는 [저장된 데이터 암호화](at-rest-encryption.md)를 참조하세요.
**참고**  
**고객 관리형AWS KMS 키를 선택하고 키를 선택하여 다른 암호화 키를** 제공할 수 있습니다. 자세한 정보는 [AWS KMS에서 고객 관리형 키 사용](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)을 참조하세요.
           + **전송 중 데이터 암호화** – 전송 데이터 암호화를 활성화합니다. 자세한 정보는 [전송 중 데이터 암호화](in-transit-encryption.md)를 참조하세요. Valkey 및 Redis OSS 6.0 이상의 경우 전송 중 암호화를 활성화하면 다음 **액세스 제어** 옵션 중 하나를 지정하라는 메시지가 표시됩니다.
             + **액세스 제어 안 함** – 기본 설정입니다. 이 옵션은 클러스터에 대한 사용자 액세스를 제한하지 않는다는 의미입니다.
             + **사용자 그룹 액세스 제어 목록** - 클러스터에 액세스할 수 있는 사용자 집합이 정의된 사용자 그룹을 선택합니다. 자세한 내용은 [콘솔 및 CLI를 사용하여 사용자 그룹 관리](Clusters.RBAC.md#User-Groups) 단원을 참조하십시오.
             + **AUTH 기본 사용자** – Redis OSS 서버의 인증 메커니즘입니다. 자세한 정보는 [AUTH](auth.md)를 참조하세요.
           + **AUTH** – Redis OSS 서버의 인증 메커니즘입니다. 자세한 정보는 [AUTH](auth.md)를 참조하세요.
**참고**  
버전 3.2.10을 제외한 3.2.6 이상의 Valkey 및 Redis OSS 버전의 경우 Redis OSS AUTH가 유일한 옵션입니다.

        1. **보안 그룹**에서 이 클러스터에 사용할 보안 그룹을 선택합니다. *보안 그룹*은 클러스터에 대한 네트워크 액세스를 제어하는 방화벽 역할을 합니다. VPC의 기본 보안 그룹을 사용하거나 새 보안 그룹을 만들 수 있습니다.

           보안 그룹에 대한 자세한 정보는 *Amazon VPC 사용 설명서*의 [VPC의 보안 그룹](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)을 참조하세요.

   1. 정기적인 자동 백업을 예약할 경우 **Enable automatic backups(자동 백업 활성화)**를 선택한 후 자동으로 삭제되기 전에 각 자동 백업을 보존할 기간(일)을 입력합니다. 정기적인 자동 백업을 예약하지 않으려면 [**Enable automatic backups**] 확인란의 선택을 취소합니다. 어떤 경우든 수동 백업을 항상 생성할 수 있습니다.

      Redis OSS 백업 및 복원에 대한 자세한 정보는 [스냅샷 및 복원](backups.md) 섹션을 참조하세요.

   1. (선택 사항) 유지 관리 기간을 지정합니다. *유지 관리 기간*은 ElastiCache가 클러스터의 시스템 유지 관리를 예약하는 시간이며 일반적으로 매주 한 시간입니다. ElastiCache에서 유지 관리 기간의 요일과 시간을 선택하도록 허용하거나(*기본 설정 없음*) 요일 시간 및 기간을 직접 선택할 수 있습니다(*유지 관리 기간 지정*). *유지 관리 기간 지정*을 선택할 경우 목록에서 유지 관리 기간의 *시작 요일*, *시작 시간* 및 *기간*을 선택합니다. 모든 시간은 UCT 시간입니다.

      자세한 내용은 [ElastiCache 클러스터 유지 관리](maintenance-window.md) 단원을 참조하십시오.

   1. (선택 사항) **로그**의 경우:
      + **로그 형식**에서 **텍스트** 또는 **JSON**을 선택합니다.
      + **대상 유형(Destination Type)**에서 **CloudWatch Logs** 또는 **Kinesis Firehose**를 선택합니다.
      + **로그 대상**에서 **새로 생성**을 선택하고 CloudWatch Logs 로그 그룹 이름이나 Firehose 스트림 이름을 입력하거나 **기존 항목 선택**을 선택한 다음 CloudWatch Logs 로그 그룹 이름이나 Firehose 스트림 이름을 선택합니다.

   1. **태그(Tags)**의 경우 클러스터 및 기타 ElastiCache 리소스 관리를 돕기 위해 태그 형식으로 각 리소스에 고유한 메타데이터를 할당할 수 있습니다. 자세한 정보는 [ElastiCache 리소스에 태그 지정](Tagging-Resources.md) 섹션을 참조하세요.

   1. **다음**을 선택합니다.

   1. 입력 및 선택한 내용을 모두 검토한 다음 필요한 내용을 수정합니다. 준비가 되었으면 **생성(Create)e**을 선택합니다.

------
#### [ On premises ]

   1. **On premises**(온프레미스)의 경우 **Auto-failover**(자동 장애 조치)를 사용 설정하는 것이 좋습니다. 자세한 정보는 [다중 AZ로 ElastiCache for Redis OSS의 가동 중지 시간 최소화](AutoFailover.md)를 참조하세요.

   1. 클러스터 생성을 완료하려면 [Outposts 사용](ElastiCache-Outposts.md)의 단계를 수행합니다.

------

클러스터 상태가 *사용 가능*이 되면 클러스터에 Amazon EC2 액세스 권한을 부여하고 클러스터에 연결하며 사용할 수 있습니다. 자세한 내용은 [3단계. 클러스터에 대한 액세스 허가](#GettingStarted.AuthorizeAccess.valkey) 및 [4단계. 클러스터의 노드에 연결](#GettingStarted.ConnectToCacheNode.valkey) 섹션을 참조하세요.

**중요**  
클러스터를 사용할 수 있으면 클러스터를 활동적으로사용하지 않더라도 클러스터가 사용 설정되어 있는 매 시간 또는 60분 미만 단위로 비용이 청구됩니다. 이 클러스터의 요금 발생을 중지하려면 클러스터를 삭제해야 합니다. [ElastiCache에서 클러스터 삭제](Clusters.Delete.md)을(를) 참조하세요.

클러스터 모드가 활성화된 상태로 작업하려면 다음 주제를 참조하세요.
+ 콘솔을 사용하려면 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(콘솔)](Clusters.Create.md#Clusters.Create.CON.RedisCluster)을 참조하세요.
+ 를 사용하려면 단원을AWS CLI참조하십시오[Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(AWS CLI)](Clusters.Create.md#Clusters.Create.CLI.RedisCluster).

## 3단계. 클러스터에 대한 액세스 허가
<a name="GettingStarted.AuthorizeAccess.valkey"></a>

 이 섹션에서는 Amazon EC2 인스턴스를 시작하고 연결하는 것에 익숙하다고 가정합니다. 자세한 내용은 *[Amazon EC2 시작 안내서](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)*를 참조하세요.

모든 ElastiCache 클러스터는 Amazon EC2 인스턴스에서 액세스하도록 설계되었습니다. 가장 일반적인 시나리오는 동일한 Amazon Virtual Private Cloud(Amazon VPC)의 Amazon EC2 인스턴스에서 ElastiCache 클러스터에 액세스하는 것이며, 이 연습의 사례도 이에 해당합니다.

기본적으로 클러스터에 대한 네트워크 액세스는 생성할 때 사용한 계정에만 제한됩니다. EC2 인스턴스에서 클러스터에 연결하려면 EC2 인스턴스가 클러스터에 액세스하도록 권한을 부여해야 합니다.

가장 일반적인 사용 사례는 EC2 인스턴스에 배포된 애플리케이션이 같은 VPC에 있는 클러스터에 연결해야 하는 경우입니다. 동일한 VPC에서 EC2 인스턴스와 클러스터 간 액세스를 관리하는 가장 간단한 방법은 다음과 같습니다.

1. 클러스터의 VPC 보안 그룹을 만듭니다. 이 보안 그룹을 사용해 클러스터 인스턴스에 대한 액세스를 제한할 수 있습니다. 예를 들어, 클러스터를 만들 때 할당한 포트와 클러스터에 액세스할 때 이용할 IP 주소를 사용해 TCP 액세스를 허용하는 이 보안 그룹의 사용자 지정 규칙을 만들 수 있습니다.

   Valkey 또는 Redis OSS 클러스터 및 복제 그룹의 기본 포트는 `6379`입니다.
**중요**  
Amazon ElastiCache 보안 그룹은 Amazon Virtual Private Cloud(VPC) 환경에서 실행되지 *않는* 클러스터에만 적용됩니다. Amazon Virtual Private Cloud를 실행하는 경우 콘솔 탐색 창에서 ** 보안 그룹**을 사용할 수 없습니다.  
Amazon VPC에서 ElastiCache 노드를 실행하는 경우, ElastiCache 보안 그룹과 다른 Amazon VPC 보안 그룹으로 클러스터에 대한 액세스를 제어합니다. Amazon VPC에서 ElastiCache를 사용하는 방법에 대한 자세한 내용은 [Amazon VPC 및 ElastiCache 보안](VPCs.md) 섹션을 참조하세요.

1. EC2 인스턴스(웹 및 애플리케이션 서버)의 VPC 보안 그룹을 만듭니다. 이 보안 그룹은 필요할 경우 VPC의 라우팅 테이블을 통한 EC2 인스턴스 액세스를 허용할 수 있습니다. 예를 들어, 이 보안 그룹에서 TCP가 포트 22를 통해 EC2 인스턴스에 액세스하도록 허용하는 규칙을 설정할 수 있습니다.

1. 클러스터에 대한 보안 그룹에서 EC2 인스턴스에 대해 생성한 보안 그룹으로부터의 연결을 허용하는 사용자 지정 규칙을 만듭니다. 그러면 보안 그룹의 모든 구성원이 클러스터에 액세스하도록 허용됩니다.

**참고**  
[Local Zones](Local_zones.md)를 사용할 계획이라면 활성화했는지 확인합니다. 해당 로컬 영역에 서브넷 그룹을 생성하면 VPC가 해당 로컬 영역으로 확장되고 VPC에서 해당 서브넷을 다른 가용 영역의 서브넷처럼 처리합니다. 모든 관련 게이트웨이 및 라우팅 테이블이 자동으로 조정됩니다.

**VPC 보안 그룹에서 다른 보안 그룹으로부터의 연결을 허용하는 규칙을 만들려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/vpc](https://console.aws.amazon.com/vpc) Amazon VPC 콘솔을 엽니다.

1. 탐색 창에서 **Security Groups**를 선택합니다.

1. 클러스터 인스턴스에 사용할 보안 그룹을 선택하거나 만듭니다. [**Inbound Rules**]에서 [**Edit Inbound Rules**]를 선택한 다음 [**Add Rule**]을 선택합니다. 이 보안 그룹은 다른 보안 그룹 멤버에 대한 액세스를 허용합니다.

1. [**Type**]에서 [**Custom TCP Rule**]을 선택합니다.

   1. [**Port Range**]에 대해 클러스터를 만들 때 사용한 포트를 지정합니다.

      Valkey 또는 Redis OSS 클러스터 및 복제 그룹의 기본 포트는 `6379`입니다.

   1. [**Source**] 상자에 보안 그룹 ID를 입력합니다. 목록에서 Amazon EC2 인스턴스에 사용할 보안 그룹을 선택합니다.

1. 완료되면 [**Save**]를 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/VPC-Rules.png)

액세스를 활성화했으면 이제 다음 섹션에 설명된 대로 노드에 연결할 수 있습니다.

다른 Amazon VPC, 다른AWS리전 또는 회사 네트워크에서 ElastiCache 클러스터에 액세스하는 방법에 대한 자세한 내용은 다음을 참조하세요.
+ [Amazon VPC에 있는 ElastiCache 캐시에 액세스하기 위한 액세스 패턴](elasticache-vpc-accessing.md)
+ [외부에서 ElastiCache 리소스에 액세스AWS](accessing-elasticache.md#access-from-outside-aws)

## 4단계. 클러스터의 노드에 연결
<a name="GettingStarted.ConnectToCacheNode.valkey"></a>

계속하기 전에 [3단계. 클러스터에 대한 액세스 허가](#GettingStarted.AuthorizeAccess.valkey) 단계를 완료하세요.

이 섹션에서는 Amazon EC2 인스턴스를 생성했고 이 인스턴스에 연결할 수 있다고 가정합니다. 작업 방법에 대한 지침은 [Amazon EC2 시작 안내서](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)를 참조하세요.

Amazon EC2 인스턴스는 권한을 부여한 경우에만 클러스터 노드에 연결할 수 있습니다.

### 노드 엔드포인트 찾기
<a name="GettingStarted.FindEndpoints.valkey"></a>

클러스터가 *사용 가능*한 상태이고 사용자가 이 클러스터에 액세스할 수 있는 권한을 부여받았다면 Amazon EC2 인스턴스에 로그인하여 클러스터에 연결할 수 있습니다. 이를 수행하려면 먼저 엔드포인트를 결정해야 합니다.

#### Valkey(클러스터 모드 비활성화됨) 클러스터의 엔드포인트 찾기(콘솔)
<a name="Endpoints.Find.valkey-gs"></a>

Valkey(클러스터 모드 비활성화됨) 클러스터에 노드가 하나뿐이면 노드의 엔드포인트가 읽기와 쓰기에 모두 사용됩니다. 클러스터에 여러 노드가 있는 경우 세 가지 유형의 엔드포인트(*기본 엔드포인트*, *리더 엔드포인트* 및 *노드 엔드포인트*)가 있습니다.

기본 엔드포인트는 항상 클러스터의 프라이머리 노드로 확인되는 DNS 이름입니다. 기본 엔드포인트는 읽기 전용 복제본을 기본 역할로 승격하는 것과 같은 클러스터 변경의 영향을 받지 않습니다. 쓰기 활동의 경우 애플리케이션을 기본 엔드포인트에 연결하는 것이 좋습니다.

리더 엔드포인트는 ElastiCache 클러스터의 모든 읽기 전용 복제본 간에 엔드포인트에 대한 수신 연결을 고르게 분할합니다. 애플리케이션이 연결을 생성하는 시기 또는 애플리케이션에서 연결을 다시 사용하는 방법과 같은 추가 요소가 트래픽 분산을 결정합니다. 리더 엔드포인트는 복제본이 추가 또는 제거되는 클러스터의 변경 사항을 실시간으로 반영합니다. ElastiCache 클러스터의 여러 읽기 전용 복제본을 서로 다른AWS가용 영역(AZ)에 배치하여 리더 엔드포인트의 고가용성을 보장할 수 있습니다.

**참고**  
리더 엔드포인트는 로드 밸런서가 아닙니다. 라운드 로빈 방식으로 복제본 노드 중 하나의 IP 주소로 확인되는 DNS 레코드입니다.

읽기 활동의 경우 애플리케이션은 클러스터의 어떤 노드에도 연결할 수 있습니다. 기본 엔드포인트와 달리, 노드 엔드포인트는 특정 엔드포인트로 확인됩니다. 복제본을 추가하거나 삭제하는 것과 같이 클러스터를 변경하면 애플리케이션에서 노드 엔드포인트를 업데이트해야 합니다.

**Valkey(클러스터 모드 비활성화됨) 클러스터의 엔드포인트를 찾으려면**

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 캐시** 또는 **Redis OSS 캐시**를 선택합니다.

   기존 Valkey 또는 Redis OSS 서버리스 캐시, Valkey(클러스터 모드 비활성화됨) 및 Valkey(클러스터 모드 활성화됨) 클러스터의 목록이 있는 클러스터 화면이 나타납니다. [Valkey(클러스터 모드 비활성화됨) 클러스터 생성(콘솔)](#Clusters.Create.CON.valkey-gs) 섹션에서 생성한 클러스터를 선택합니다.

1. 클러스터의 기본 엔드포인트 및/또는 리더 엔드포인트를 찾으려면 클러스터 이름(라디오 버튼 아님)을 선택합니다.  
![\[이미지: Valkey(클러스터 모드 비활성화됨) 클러스터의 기본 엔드포인트\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/Reader-Endpoint.png)

   *Valkey(클러스터 모드 비활성화됨) 클러스터의 기본 및 리더 엔드포인트*

   클러스터에 노드가 하나 뿐이면 기본 엔드포인트가 없으며 다음 단계에서 계속할 수 있습니다.

1. Valkey(클러스터 모드 비활성화) 클러스터에 복제본 노드가 있으면 클러스터 이름을 선택한 후 **노드** 탭을 선택하여 클러스터의 복제본 노드 엔드포인트를 찾을 수 있습니다.

   노드 화면에 클러스터의 각 노드, 기본 및 복제본이 엔드포인트와 함께 나열됩니다.  
![\[이미지: Valkey(클러스터 모드 비활성화됨) 클러스터의 노드 엔드포인트\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-Endpoints-Redis-Node.png)

   *Valkey(클러스터 모드 비활성화됨) 클러스터의 노드 엔드포인트*

1. 엔드포인트를 클립보드에 복사하려면

   1. 한 번에 엔드포인트 하나씩, 복사할 엔드포인트를 찾습니다.

   1. 엔드포인트 바로 앞에 있는 복사 아이콘을 선택합니다.

   엔드포인트가 클립보드에 복사됩니다. 엔드포인트를 사용하여 노드에 연결하는 방법에 대한 자세한 내용은 [노드에 연결](nodes-connecting.md) 섹션을 참조하세요.

Valkey(클러스터 모드 비활성화됨) 기본 엔드포인트는 다음과 같습니다. 전송 중 데이터 암호화가 활성화되어 있는지 여부에 따라 차이가 있습니다.

**전송 중 데이터 암호화가 비활성화된 경우**

```
clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
			
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
```

**전송 중 데이터 암호화가 활성화된 경우**

```
master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port

master.ncit.ameaqx.use1.cache.amazonaws.com:6379
```

사용자의 엔드포인트를 찾는 방법을 더 자세히 알아보려면 엔진과 실행 중인 클러스터 유형에 관한 주제를 참조하세요.
+ [ElastiCache에서 연결 엔드포인트 찾기](Endpoints.md)
+ [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에 대한 엔드포인트 찾기(콘솔)](Endpoints.md#Endpoints.Find.RedisCluster) - 클러스터의 구성 엔드포인트가 필요합니다.
+ [엔드포인트 찾기(AWS CLI)](Endpoints.md#Endpoints.Find.CLI)
+ [엔드포인트 찾기(ElastiCache API)](Endpoints.md#Endpoints.Find.API)

### Valkey 또는 Redis OSS 클러스터 또는 복제 그룹에 연결(Linux)
<a name="GettingStarted.ConnectToCacheNode.Valkey.Linux"></a>

이제 필요한 엔드포인트가 있으므로 EC2 인스턴스에 로그인하여 클러스터 또는 복제 그룹에 연결할 수 있습니다. 다음 예제에서는 *valkey-cli* 유틸리티를 사용하여 클러스터에 연결합니다. 최신 버전의 valkey-cli는 암호화/인증이 활성화된 클러스터에 연결할 수 있도록 SSL/TLS도 지원합니다.

다음 예에서는 Amazon Linux 및 Amazon Linux 2를 실행하는 Amazon EC2 인스턴스를 사용합니다. 다른 Linux 배포판을 사용하여 valkey-cli를 설치하고 컴파일하는 방법에 대한 자세한 내용은 해당 운영 체제의 설명서를 참조하세요.

**참고**  
이 프로세스에서는 valkey-cli 유틸리티를 계획되지 않은 용도로 사용하기 위해 연결을 테스트하는 방법만 다룹니다. 지원되는 Valkey 및 Redis OSS 클라이언트의 목록에 대해서는 [Valkey 설명서](https://valkey.io/)를 참조하세요. ElastiCache에서AWS SDKs[자습서: Python 및 ElastiCache로 시작](ElastiCache-Getting-Started-Tutorials.md).

#### 클러스터 모드가 비활성화된 암호화되지 않은 클러스터에 연결
<a name="Connecting-to-a-cluster-mode-disabled-unencrypted-cluster.valkey"></a>

1. 다음 명령을 실행하여 클러스터에 연결하고 *primary-endpoint* 및 *port number*를 클러스터의 엔드포인트 및 포트 번호로 바꿉니다. (Valkey 또는 Redis OSS의 기본 포트는 6379입니다.)

   ```
   src/valkey-cli -h primary-endpoint -p port number
   ```

   나타나는 Valkey 또는 Redis OSS 명령 프롬프트는 다음과 유사합니다.

   ```
   primary-endpoint:port number
   ```

1. 이제 Valkey 또는 Redis OSS 명령을 실행할 수 있습니다.

   ```
   set x Hello
   OK
   
   get x
   "Hello"
   ```

#### 클러스터 모드가 활성화된 암호화되지 않은 클러스터에 연결
<a name="Connecting-to-a-cluster-mode-enabled-unencrypted-cluster.valkey"></a>

1. 다음 명령을 실행하여 클러스터에 연결하고 *configuration-endpoint* 및 *port number*를 클러스터의 엔드포인트 및 포트 번호로 바꿉니다. (Valkey 또는 Redis OSS의 기본 포트는 6379입니다.)

   ```
   src/valkey-cli -h configuration-endpoint -c -p port number
   ```
**참고**  
이전 명령에서 -c 옵션은 [-ASK 및 -MOVED 리디렉션](https://valkey.io/topics/cluster-spec) 후에 클러스터 모드를 활성화합니다.

   나타나는 Valkey 또는 Redis OSS 명령 프롬프트는 다음과 유사합니다.

   ```
   configuration-endpoint:port number
   ```

1. 이제 Valkey 또는 Redis OSS 명령을 실행할 수 있습니다. 리디렉션은 -c 옵션을 사용하여 활성화했기 때문에 발생합니다. 리디렉션이 활성화되지 않으면 이 명령은 MOVED 오류를 반환합니다. MOVED 오류에 대한 자세한 내용은 [Redis OSS 클러스터 사양](https://valkey.io/topics/cluster-spec) 섹션을 참조하세요.

   ```
   set x Hi
   -> Redirected to slot [16287] located at 172.31.28.122:6379
   OK
   set y Hello
   OK
   get y
   "Hello"
   set z Bye
   -> Redirected to slot [8157] located at 172.31.9.201:6379
   OK
   get z
   "Bye"
   get x
   -> Redirected to slot [16287] located at 172.31.28.122:6379
   "Hi"
   ```

#### 암호화/인증이 활성화된 클러스터에 연결
<a name="Connecting-to-an-Encryption-Authentication-enabled-cluster.valkey"></a>

기본적으로 valkey-cli는 Valkey 또는 Redis OSS에 연결할 때 암호화되지 않은 TCP 연결을 사용합니다. `BUILD_TLS=yes` 옵션은 이전 [명령줄 액세스 다운로드 및 설정](set-up.md#Download-and-install-cli) 섹션에 나와 있는 것처럼 valkey-cli 컴파일 시에 SSL/TLS를 활성화합니다. AUTH 활성화는 선택 사항입니다. 그러나 AUTH를 활성화하려면 전송 중 데이터 암호화를 활성화해야 합니다. ElastiCache 암호화 및 인증에 대한 자세한 내용은 [ElastiCache 전송 중 데이터 암호화(TLS)](in-transit-encryption.md) 섹션을 참조하세요.

**참고**  
valkey-cli에서 `--tls` 옵션을 사용하여 클러스터 모드가 활성화되거나 비활성화된 암호화된 클러스터에 연결할 수 있습니다. 클러스터에 AUTH 토큰이 설정되어 있는 경우 `-a` 옵션을 사용하여 AUTH 암호를 제공할 수 있습니다.

다음 예에서 *cluster-endpoint* 및 *port number*를 클러스터의 엔드포인트 및 포트 번호로 바꾸십시오. (Valkey 또는 Redis OSS의 기본 포트는 6379입니다.)

**클러스터 모드가 비활성화된 암호화된 클러스터에 연결** 

다음은 암호화 및 인증이 활성화된 클러스터에 연결하는 예제입니다.

```
src/valkey-cli -h cluster-endpoint --tls -a your-password -p port number
```

다음은 암호화만 활성화된 클러스터에 연결하는 예제입니다.

```
src/valkey-cli -h cluster-endpoint --tls -p port number
```

**클러스터 모드가 활성화된 암호화된 클러스터에 연결** 

다음은 암호화 및 인증이 활성화된 클러스터에 연결하는 예제입니다.

```
src/valkey-cli -c -h cluster-endpoint --tls -a your-password -p port number
```

다음은 암호화만 활성화된 클러스터에 연결하는 예제입니다.

```
src/valkey-cli -c -h cluster-endpoint --tls -p port number
```

클러스터에 연결한 후 암호화되지 않은 클러스터에 대해 이전 예제와 같이 Valkey 또는 Redis OSS 명령을 실행할 수 있습니다.

#### valkey-cli 대체
<a name="valkey-cli-alternative"></a>

클러스터에 클러스터 모드가 활성화되어 있지 않으며 짧은 테스트를 위해 클러스터에 연결해야 하지만 valkey-cli 컴파일 과정을 거치고 싶지 않은 경우 telnet 또는 openssl을 사용할 수 있습니다. 다음 예제 명령에서 *cluster-endpoint* 및 *port number*를 클러스터의 엔드포인트 및 포트 번호로 바꾸십시오. (Valkey 또는 Redis OSS의 기본 포트는 6379입니다.)

다음은 암호화 및/또는 인증이 활성화되어 있으며 클러스터 모드가 비활성화된 클러스터에 연결하는 예제입니다.

```
openssl s_client -connect cluster-endpoint:port number
```

클러스터에 암호가 설정되어 있으면 먼저 클러스터에 연결합니다. 연결 후 다음 명령을 사용하여 클러스터를 인증한 다음 `Enter` 키를 누릅니다. 다음 예제에서 *your-password*를 클러스터의 암호로 바꿉니다.

```
Auth your-password
```

다음은 암호화 또는 인증이 활성화되어 있지 않으며 클러스터 모드가 비활성화된 클러스터에 연결하는 예제입니다.

```
telnet cluster-endpoint port number
```

### Valkey 또는 Redis OSS 클러스터 또는 복제 그룹에 연결(Windows)
<a name="GettingStarted.ConnectToCacheNode.valkey.Windows"></a>

Valkey CLI 또는 Redis OSS CLI를 사용하여 EC2 Windows 인스턴스에서 Valkey 또는 Redis OSS 클러스터에 연결하려면 *valkey-cli* 패키지를 다운로드하고 *valkey-cli.exe*를 사용하여 EC2 Windows 인스턴스에서 Valkey 또는 Redis OSS 클러스터에 연결해야 합니다.

다음 예제에서는 *valkey-cli* 유틸리티를 사용하여 암호화가 활성화되지 않았고 Valkey 또는 Redis OSS를 실행하는 클러스터에 연결합니다. Valkey 또는 Redis OSS 및 사용 가능한 명령에 대한 자세한 내용은 Valkey 웹 사이트의 [Valkey 또는 Redis OSS 명령](http://valkey.io/commands)을 참조하세요.

***valkey-cli*를 사용하여 암호화가 활성화되지 않은 Valkey 또는 Redis OSS 클러스터에 연결하려면**

1. 선택한 연결 유틸리티를 사용하여 Amazon EC2 인스턴스에 연결하세요. Amazon EC2 인스턴스에 연결하는 방법에 대한 지침은 [Amazon EC2 시작 안내서](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)를 참조하세요.

1. [https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip](https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip) 링크를 복사하고 인터넷 브라우저에 붙여 넣어 GitHub [https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504](https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504)의 사용 가능한 릴리스에서 Valkey 클라이언트에 대한 zip 파일을 다운로드합니다.

   원하는 폴더/경로에 zip 파일의 압축을 풉니다.

   명령 프롬프트를 열고 Valkey 디렉터리로 변경한 다음 `c:\Valkey>valkey-cli -h Redis_Cluster_Endpoint -p 6379` 명령을 실행합니다.

   예제:

   ```
   c:\Valkey>valkey-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379
   ```

1. Valkey 또는 Redis OSS 명령을 실행합니다.

    이제 클러스터에 연결되어 다음과 같이 Valkey 또는 Redis OSS 명령을 실행할 수 있습니다.

   ```
   set a "hello"          // Set key "a" with a string value and no expiration
   OK
   get a                  // Get value for key "a"
   "hello"
   get b                  // Get value for key "b" results in miss
   (nil)				
   set b "Good-bye" EX 5  // Set key "b" with a string value and a 5 second expiration
   "Good-bye"
   get b                  // Get value for key "b"
   "Good-bye"
                          // wait >= 5 seconds
   get b
   (nil)                  // key has expired, nothing returned
   quit                   // Exit from valkey-cli
   ```

## 추가 정보
<a name="GettingStarted.WhereGoFromHere.valkey"></a>

이제 시작하기 연습을 끝마쳤으므로 다음 섹션을 참조하여 ElastiCache 및 사용 가능한 도구에 대한 자세한 내용을 살펴볼 수 있습니다.
+ [시작하기AWS](https://aws.amazon.com/getting-started/)
+ [Amazon Web Services용 도구](https://aws.amazon.com/tools/)
+ [AWS Command Line Interface](https://aws.amazon.com/cli/)
+ [Amazon ElastiCache API 참조](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html)

시작하기 연습을 마친 후에는 다음 섹션을 읽어 ElastiCache 관리에 대해 좀 더 자세히 알아볼 수 있습니다.
+ [노드 크기 선택](CacheNodes.SelectSize.md)

  캐시하려는 모든 데이터를 수용할 만큼의 충분한 캐시를 원하며, 동시에 필요한 것보다 더 많은 캐시의 비용을 지불하고 싶지 않은 경우 이 섹션을 읽어보면 최적의 노드 크기를 선택하는 데 도움이 됩니다.
+ [ElastiCache 모범 사례 및 캐싱 전략](BestPractices.md)

  클러스터의 효율성에 부정적인 영향을 미칠 수 있는 문제를 확인하고 해결하세요.

# 노드 기반 ElastiCache for Redis OSS 클러스터 생성
<a name="SubnetGroups.designing-cluster-pre.redis"></a>

다음은 노드 기반 ElastiCache for Redis OSS 클러스터를 설계하기 위해 수행해야 하는 일회성 작업입니다.

ElastiCache 설정에 대한 자세한 내용은 [ElastiCache 설정](set-up.md) 섹션을 참조하세요.

**Topics**
+ [1단계: 서브넷 그룹 생성](#SubnetGroups.Creating-gs.redis)
+ [2단계: 클러스터 생성](#GettingStarted.CreateCluster.redis)
+ [3단계: 클러스터에 대한 액세스 허가](#GettingStarted.AuthorizeAccess.redis)
+ [4단계: 클러스터 노드에 연결](#GettingStarted.ConnectToCacheNode.redis)

## 1단계: 서브넷 그룹 생성
<a name="SubnetGroups.Creating-gs.redis"></a>

클러스터를 생성하기 전에 먼저 서브넷 그룹을 생성합니다. *캐시 서브넷 그룹*은 VPC에서 클러스터에 대해 지정할 수 있는 서브넷 모음입니다. VPC에서 클러스터를 시작할 때 캐시 서브넷 그룹을 선택해야 합니다. 그러면 ElastiCache가 해당 캐시 서브넷 그룹을 사용하여 해당 서브넷의 IP 주소를 클러스터의 각 캐시 노드에 할당합니다.

새 서브넷 그룹을 생성할 때 사용 가능한 IP 주소의 수를 기록하세요. 서브넷에 무료 IP 주소가 거의 없는 경우 클러스터에 추가할 수 있는 노드의 수가 제약될 수 있습니다. 이 문제를 해결하기 위해 클러스터의 가용 영역에 충분한 수의 IP 주소가 있도록 서브넷 그룹에 하나 이상의 서브넷을 지정할 수 있습니다. 그 이후 클러스터에 더 많은 노드를 추가할 수 있습니다.

다음 절차는 `mysubnetgroup`(콘솔)이라는 서브넷 그룹과AWS CLI를 생성하는 방법을 보여 줍니다.

### 서브넷 그룹 생성(콘솔)
<a name="SubnetGroups.Creating.CON.redis"></a>

다음 절차는 서브넷 그룹을 생성하는 방법을 보여줍니다(콘솔).

**서브넷 그룹을 생성하는 방법(콘솔)**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 탐색 목록에서 [**Subnet Groups**]를 선택합니다.

1. **Create Subnet Group**을 선택합니다.

1. [**Create Subnet Group**] 마법사에서 다음을 수행합니다. 모든 설정이 원하는 대로 설정되었으면 [**Yes, Create**]를 선택합니다.

   1. **Name** 상자에 서브넷 그룹의 이름을 입력합니다.

   1. **Description** 상자에 서브넷 그룹에 대한 설명을 입력합니다.

   1. **VPC ID** 상자에서 생성한 Amazon VPC를 선택합니다.

   1. **가용 영역** 및 **서브넷 ID** 목록에서 가용 영역 또는 [로컬 영역](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Local_zones.html)과 프라이빗 서브넷의 ID를 선택한 다음 **추가**를 선택합니다.  
![\[이미지: 서브넷 VPC 생성 화면\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/vpc-03.png)

1. 나타나는 확인 메시지에서 **Close**를 선택합니다.

새 서브넷 그룹이 ElastiCache 콘솔의 **서브넷 그룹** 목록에 나타납니다. 창 하단에서 서브넷 그룹을 선택하여 이 그룹과 연결된 모든 서브넷 등의 상세 내용을 확인할 수 있습니다.

### 서브넷 그룹 생성(AWS CLI)
<a name="SubnetGroups.Creating.redis.CLI"></a>

명령 프롬프트에서 `create-cache-subnet-group` 명령을 사용하여 서브넷 그룹을 생성합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache create-cache-subnet-group \
    --cache-subnet-group-name mysubnetgroup \
    --cache-subnet-group-description "Testing" \
    --subnet-ids subnet-53df9c3a
```

Windows의 경우:

```
aws elasticache create-cache-subnet-group ^
    --cache-subnet-group-name mysubnetgroup ^
    --cache-subnet-group-description "Testing" ^
    --subnet-ids subnet-53df9c3a
```

이 명령은 다음과 유사한 출력을 생성합니다.

```
{
    "CacheSubnetGroup": {
        "VpcId": "vpc-37c3cd17", 
        "CacheSubnetGroupDescription": "Testing", 
        "Subnets": [
            {
                "SubnetIdentifier": "subnet-53df9c3a", 
                "SubnetAvailabilityZone": {
                    "Name": "us-west-2a"
                }
            }
        ], 
        "CacheSubnetGroupName": "mysubnetgroup"
    }
}
```

자세한 내용은AWS CLI주제를 참조하세요[create-cache-subnet-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-subnet-group.html).

## 2단계: 클러스터 생성
<a name="GettingStarted.CreateCluster.redis"></a>

프로덕션 용도로 사용할 클러스터를 생성하기 전에 비즈니스 요구 사항에 맞게 클러스터를 구성할 방법을 고려해야 합니다. 이러한 문제에 대해서는 [ElastiCache에서 클러스터 준비](Clusters.Prepare.md) 섹션에서 다룹니다. 이 시작하기 연습의 목적에 따라, 클러스터 모드가 비활성화된 클러스터를 생성하고 적용되는 모든 위치에서 기본 구성 값을 그대로 사용합니다.

생성하려는 클러스터는 활성화되고 샌드박스에서 실행되지 않습니다. 삭제하기 전까지 인스턴스에 대해 표준 ElastiCache 사용 요금이 청구됩니다. 여기에 설명된 연습을 한 번에 끝내고 연습을 마칠 때 클러스터를 삭제하면 총 청구 비용이 가장 적게 듭니다(일반적으로 1달러 미만). ElastiCache 사용 요금에 대한 자세한 내용은 [Amazon ElastiCache](https://aws.amazon.com/elasticache/)를 참조하세요.

Amazon VPC 서비스 기반의 Virtual Private Cloud(VPC)에서 클러스터를 시작합니다.

### Redis OSS(클러스터 모드 비활성화됨) 클러스터 생성(콘솔)
<a name="Clusters.Create.CON.Redis-gs"></a>

**ElastiCache 콘솔을 사용하여 Redis OSS(클러스터 모드 사용 중지됨) 클러스터 생성**

1. 에 로그인AWS Management Console하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) Amazon ElastiCache 콘솔을 엽니다.

1. 오른쪽 상단의 목록에서이 클러스터를 시작할AWS리전을 선택합니다.

1. 탐색 창에서 **시작하기(Get started)**를 선택하세요.

1. **VPC 생성(Create VPC)**을 선택하고 [Virtual Private Cloud(VPC) 생성(Creating a Virtual Private Cloud (VPC))](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/VPCs.CreatingVPC.html)에 설명된 단계를 수행하세요.

1. ElastiCache 대시보드 페이지에서 **Valkey 캐시** 또는 **Redis OSS 캐시**를 선택합니다. 이 연습에서는 **Redis OSS 캐시**를 선택한 다음 **Redis OSS 캐시 생성**을 선택합니다.

1. **클러스터 설정(Cluster settings)**에서 다음을 수행합니다.

   1. **Configure and create a new cluster**(새 클러스터 구성 및 생성)를 선택합니다.

   1. **Cluster mode**(클러스터 모드)에서 **Enabled**(사용 설정됨)를 선택합니다.

   1. **Cluster info**(클러스터 정보)에 **Name**(이름) 값을 입력합니다.

   1. (선택 사항) **설명(Description)** 값을 입력합니다.

1. **Location**(위치)에서 다음을 수행합니다.

------
#### [ AWS Cloud  ]

   1. **AWS Cloud**의 경우 **Multi-AZ**(다중 AZ) 및 **Auto-failover**(자동 장애 조치)의 기본 설정을 수락하는 것이 좋습니다. 자세한 정보는 [다중 AZ로 ElastiCache for Redis OSS의 가동 중지 시간 최소화](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoFailover.html)를 참조하세요.

   1. **클러스터 설정(Cluster settings)**에서 다음을 수행합니다.

      1. **엔진 버전(Engine version)**의 경우 사용 가능한 버전을 선택합니다.

      1. **포트(Port)**의 경우 기본 포트인 6379를 사용합니다. 다른 포트를 사용해야 하는 경우 포트 번호를 입력합니다.

      1. **파라미터 그룹**에서 파라미터 그룹을 선택하거나 새 파라미터 그룹을 만듭니다. 파라미터 그룹은 클러스터의 런타임 파라미터를 제어합니다. 파라미터 그룹에 대한 자세한 정보는 [Valkey 및 Redis OSS 파라미터](ParameterGroups.Engine.md#ParameterGroups.Redis) 및 [ElastiCache 파라미터 그룹 생성](ParameterGroups.Creating.md) 섹션을 참조하세요.
**참고**  
파라미터 그룹을 선택하여 엔진 구성 값을 설정하면 해당 파라미터 그룹이 글로벌 데이터 스토어의 모든 클러스터에 적용됩니다. **파라미터 그룹** 페이지에서 yes/no **글로벌** 속성은 파라미터 그룹이 글로벌 데이터 스토어의 일부인지 여부를 나타냅니다.

      1. **노드 유형**에서 아래쪽 화살표(![\[Downward-pointing triangle icon, typically used to indicate a dropdown menu.\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-DnArrow.png))를 선택합니다. **노드 유형 변경** 대화 상자에서 원하는 노드 유형의 **인스턴스 패밀리** 값을 선택합니다. 그런 다음 이 클러스터에 사용할 노드 유형을 선택한 다음 **저장**을 선택합니다.

         자세한 정보는 [노드 크기 선택](CacheNodes.SelectSize.md) 섹션을 참조하세요.

         r6gd 노드 유형을 선택하는 경우 데이터 계층화가 자동으로 사용 설정됩니다. 자세한 내용은 [ElastiCache의 데이터 계층화](data-tiering.md) 단원을 참조하십시오.

      1. **Number of replicas**(복제본 개수)의 경우 원하는 읽기 전용 복제본 개수를 선택합니다. 다중 AZ를 사용 설정한 경우 숫자는 1\$15 사이가 되어야 합니다.

   1. **연결** 아래

      1. **네트워크 유형**에서 이 클러스터가 지원할 IP 버전을 선택합니다.

      1. **서브넷 그룹**에서 이 클러스터에 적용할 서브넷을 선택합니다. ElastiCache는 해당 서브넷 그룹을 사용하여 노드에 연결된 서브넷 내의 서브넷 및 IP 주소를 선택합니다. ElastiCache 클러스터가 이중 스택 모드에서 작동하려면 IPv4 및 IPv6 주소가 모두 할당된 이중 스택 서브넷이 필요하고, IPv6 전용으로 작동하려면 IPv6 전용 서브넷이 필요합니다.

         새 서브넷 그룹을 생성할 때 해당 그룹이 속한 **VPC ID**를 입력합니다.

         자세한 내용은 다음을 참조하세요.
         + [ElastiCache에서 네트워크 유형 선택](network-type.md).
         + VPC에서 서브넷 생성

         [ElastiCache에서 로컬 영역 사용](Local_zones.md)를 사용하는 경우 로컬 영역에 있는 서브넷을 선택하거나 생성해야 합니다.

         자세한 내용은 [서브넷 및 서브넷 그룹](SubnetGroups.md) 단원을 참조하십시오.

   1. **가용 영역 배치(Availability zone placements)**의 경우 다음 두 가지 옵션이 있습니다.
      + **기본 설정 없음** – ElastiCache에서 가용 영역을 선택합니다.
      + **가용 영역 지정** – 각 클러스터의 가용 영역을 지정합니다.

        가용 영역을 지정하도록 선택한 경우 샤드에 있는 각 클러스터에 대해 목록에서 가용 영역을 선택합니다.

      자세한 내용은 [ElastiCache에 대한 리전 및 가용 영역 선택](RegionsAndAZs.md) 단원을 참조하십시오.

   1. **다음(Next)**을 선택합니다.

   1. **고급 Redis OSS 설정**에서 다음을 수행합니다.

      1. **보안(Security)**의 경우 

        1. 데이터를 암호화하려면 다음과 같은 옵션이 있습니다.
           + **저장된 데이터 암호화** - 디스크에 저장된 데이터 암호화를 활성화합니다. 자세한 정보는 [저장된 데이터 암호화](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/at-rest-encryption.html)를 참조하세요.
**참고**  
**고객 관리형AWS KMS 키를 선택하고 키를 선택하여 다른 암호화 키를** 제공할 수 있습니다. 자세한 정보는 [AWS KMS에서 고객 관리형 키 사용](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/at-rest-encryption.html#using-customer-managed-keys-for-elasticache-security)을 참조하세요.
           + **전송 중 데이터 암호화** – 전송 데이터 암호화를 활성화합니다. 자세한 정보는 [전송 중 데이터 암호화](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/in-transit-encryption.html)를 참조하세요. ElastiCache for Redis OSS 엔진 버전 6.0 이상의 경우 전송 중 암호화를 활성화하면 다음 **액세스 제어** 옵션 중 하나를 지정하라는 메시지가 표시됩니다.
             + **액세스 제어 안 함** – 기본 설정입니다. 이 옵션은 클러스터에 대한 사용자 액세스를 제한하지 않는다는 의미입니다.
             + **사용자 그룹 액세스 제어 목록** - 클러스터에 액세스할 수 있는 사용자 집합이 정의된 사용자 그룹을 선택합니다. 자세한 내용은 [콘솔 및 CLI를 사용하여 사용자 그룹 관리](Clusters.RBAC.md#User-Groups) 단원을 참조하십시오.
             + **AUTH 기본 사용자** – Valkey 및 Redis OSS 서버의 인증 메커니즘입니다. 자세한 정보는 [AUTH](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth.html)를 참조하세요.
           + **AUTH** – Redis OSS 서버의 인증 메커니즘입니다. 자세한 정보는 [AUTH](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth.html)를 참조하세요.
**참고**  
버전 3.2.10을 제외한 3.2.6 이상의 Redis OSS 버전의 경우 Redis OSS AUTH가 유일한 옵션입니다.

        1. **보안 그룹**에서 이 클러스터에 사용할 보안 그룹을 선택합니다. *보안 그룹*은 클러스터에 대한 네트워크 액세스를 제어하는 방화벽 역할을 합니다. VPC의 기본 보안 그룹을 사용하거나 새 보안 그룹을 만들 수 있습니다.

           보안 그룹에 대한 자세한 정보는 *Amazon VPC 사용 설명서*의 [VPC의 보안 그룹](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)을 참조하세요.

   1. 정기적인 자동 백업을 예약할 경우 **Enable automatic backups(자동 백업 활성화)**를 선택한 후 자동으로 삭제되기 전에 각 자동 백업을 보존할 기간(일)을 입력합니다. 정기적인 자동 백업을 예약하지 않으려면 [**Enable automatic backups**] 확인란의 선택을 취소합니다. 어떤 경우든 수동 백업을 항상 생성할 수 있습니다.

      백업 및 복원에 대한 자세한 정보는 [스냅샷 및 복원](backups.md) 섹션을 참조하세요.

   1. (선택 사항) 유지 관리 기간을 지정합니다. *유지 관리 기간*은 ElastiCache가 클러스터의 시스템 유지 관리를 예약하는 시간이며 일반적으로 매주 한 시간입니다. ElastiCache에서 유지 관리 기간의 요일과 시간을 선택하도록 허용하거나(*기본 설정 없음*) 요일 시간 및 기간을 직접 선택할 수 있습니다(*유지 관리 기간 지정*). *유지 관리 기간 지정*을 선택할 경우 목록에서 유지 관리 기간의 *시작 요일*, *시작 시간* 및 *기간*을 선택합니다. 모든 시간은 UCT 시간입니다.

      자세한 내용은 [ElastiCache 클러스터 유지 관리](maintenance-window.md) 단원을 참조하십시오.

   1. (선택 사항) **로그**의 경우:
      + **로그 형식**에서 **텍스트** 또는 **JSON**을 선택합니다.
      + **대상 유형(Destination Type)**에서 **CloudWatch Logs** 또는 **Kinesis Firehose**를 선택합니다.
      + **로그 대상**에서 **새로 생성**을 선택하고 CloudWatch Logs 로그 그룹 이름이나 Firehose 스트림 이름을 입력하거나 **기존 항목 선택**을 선택한 다음 CloudWatch Logs 로그 그룹 이름이나 Firehose 스트림 이름을 선택합니다.

   1. **태그(Tags)**의 경우 클러스터 및 기타 ElastiCache 리소스 관리를 돕기 위해 태그 형식으로 각 리소스에 고유한 메타데이터를 할당할 수 있습니다. 자세한 정보는 [ElastiCache 리소스에 태그 지정](Tagging-Resources.md) 섹션을 참조하세요.

   1. **다음**을 선택합니다.

   1. 입력 및 선택한 내용을 모두 검토한 다음 필요한 내용을 수정합니다. 준비가 되었으면 **생성(Create)e**을 선택합니다.

------
#### [ On premises ]

   1. **On premises**(온프레미스)의 경우 **Auto-failover**(자동 장애 조치)를 사용 설정하는 것이 좋습니다. 자세한 정보는 [다중 AZ로 ElastiCache for Redis OSS의 가동 중지 시간 최소화](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoFailover.html)를 참조하세요.

   1. 클러스터 생성을 완료하려면 [Outposts 사용](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ElastiCache-Outposts.html)의 단계를 수행합니다.

------

클러스터 상태가 *사용 가능*이 되면 클러스터에 Amazon EC2 액세스 권한을 부여하고 클러스터에 연결하며 사용할 수 있습니다. 자세한 내용은 [3단계. 클러스터에 대한 액세스 허가](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey) 및 [4단계. 클러스터의 노드에 연결](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey) 섹션을 참조하세요.

**중요**  
클러스터를 사용할 수 있으면 클러스터를 활동적으로사용하지 않더라도 클러스터가 사용 설정되어 있는 매 시간 또는 60분 미만 단위로 비용이 청구됩니다. 이 클러스터의 요금 발생을 중지하려면 클러스터를 삭제해야 합니다. [ElastiCache에서 클러스터 삭제](Clusters.Delete.md)을(를) 참조하세요.

### Redis OSS(클러스터 모드 사용 중지됨) 클러스터 생성(AWS CLI)
<a name="Clusters.Create.CLI.Redis-gs"></a>

**Example**  
다음 CLI 코드는 복제본 없이 Redis OSS(클러스터 모드 비활성화됨) 클러스터를 생성합니다.  
Linux, macOS, Unix의 경우:  

```
aws elasticache create-cache-cluster \
--cache-cluster-id my-cluster \
--cache-node-type cache.r4.large \
--engine redis \
--num-cache-nodes 1 \
--snapshot-arns arn:aws:s3:::my_bucket/snapshot.rdb
```
Windows의 경우:  

```
aws elasticache create-cache-cluster ^
--cache-cluster-id my-cluster ^
--cache-node-type cache.r4.large ^
--engine redis ^
--num-cache-nodes 1 ^
--snapshot-arns arn:aws:s3:::my_bucket/snapshot.rdb
```

클러스터 모드가 활성화된 상태로 작업하려면 다음 주제를 참조하세요.
+ 콘솔을 사용하려면 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(콘솔)](Clusters.Create.md#Clusters.Create.CON.RedisCluster)을 참조하세요.
+ 를 사용하려면 단원을AWS CLI참조하십시오[Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(AWS CLI)](Clusters.Create.md#Clusters.Create.CLI.RedisCluster).

## 3단계: 클러스터에 대한 액세스 허가
<a name="GettingStarted.AuthorizeAccess.redis"></a>

 이 섹션에서는 Amazon EC2 인스턴스를 시작하고 연결하는 것에 익숙하다고 가정합니다. 자세한 내용은 *[Amazon EC2 시작 안내서](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)*를 참조하세요.

모든 ElastiCache 클러스터는 Amazon EC2 인스턴스에서 액세스하도록 설계되었습니다. 가장 일반적인 시나리오는 동일한 Amazon Virtual Private Cloud(Amazon VPC)의 Amazon EC2 인스턴스에서 ElastiCache 클러스터에 액세스하는 것이며, 이 연습의 사례도 이에 해당합니다.

기본적으로 클러스터에 대한 네트워크 액세스는 생성할 때 사용한 계정에만 제한됩니다. EC2 인스턴스에서 클러스터에 연결하려면 EC2 인스턴스가 클러스터에 액세스하도록 권한을 부여해야 합니다. 필요한 단계는 클러스터를 EC2-VPC 또는 EC2-Classic으로 시작했는지에 따라 다릅니다.

가장 일반적인 사용 사례는 EC2 인스턴스에 배포된 애플리케이션이 같은 VPC에 있는 클러스터에 연결해야 하는 경우입니다. 동일한 VPC에서 EC2 인스턴스와 클러스터 간 액세스를 관리하는 가장 간단한 방법은 다음과 같습니다.

1. 클러스터의 VPC 보안 그룹을 만듭니다. 이 보안 그룹을 사용해 클러스터 인스턴스에 대한 액세스를 제한할 수 있습니다. 예를 들어, 클러스터를 만들 때 할당한 포트와 클러스터에 액세스할 때 이용할 IP 주소를 사용해 TCP 액세스를 허용하는 이 보안 그룹의 사용자 지정 규칙을 만들 수 있습니다.

   Redis OSS 클러스터 및 복제 그룹의 기본 포트는 `6379`입니다.
**중요**  
Amazon ElastiCache 보안 그룹은 Amazon Virtual Private Cloud(VPC) 환경에서 실행되지 *않는* 클러스터에만 적용됩니다. Amazon Virtual Private Cloud를 실행하는 경우 콘솔 탐색 창에서 ** 보안 그룹**을 사용할 수 없습니다.  
Amazon VPC에서 ElastiCache 노드를 실행하는 경우, ElastiCache 보안 그룹과 다른 Amazon VPC 보안 그룹으로 클러스터에 대한 액세스를 제어합니다. Amazon VPC에서 ElastiCache를 사용하는 방법에 대한 자세한 내용은 [Amazon VPC 및 ElastiCache 보안](VPCs.md) 섹션을 참조하세요.

1. EC2 인스턴스(웹 및 애플리케이션 서버)의 VPC 보안 그룹을 만듭니다. 이 보안 그룹은 필요할 경우 VPC의 라우팅 테이블을 통한 EC2 인스턴스 액세스를 허용할 수 있습니다. 예를 들어, 이 보안 그룹에서 TCP가 포트 22를 통해 EC2 인스턴스에 액세스하도록 허용하는 규칙을 설정할 수 있습니다.

1. 클러스터에 대한 보안 그룹에서 EC2 인스턴스에 대해 생성한 보안 그룹으로부터의 연결을 허용하는 사용자 지정 규칙을 만듭니다. 그러면 보안 그룹의 모든 구성원이 클러스터에 액세스하도록 허용됩니다.

**참고**  
[ElastiCache에서 로컬 영역 사용](Local_zones.md)를 사용할 계획이라면 활성화했는지 확인합니다. 해당 로컬 영역에 서브넷 그룹을 생성하면 VPC가 해당 로컬 영역으로 확장되고 VPC에서 해당 서브넷을 다른 가용 영역의 서브넷처럼 처리합니다. 모든 관련 게이트웨이 및 라우팅 테이블이 자동으로 조정됩니다.

**VPC 보안 그룹에서 다른 보안 그룹으로부터의 연결을 허용하는 규칙을 만들려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/vpc](https://console.aws.amazon.com/vpc) Amazon VPC 콘솔을 엽니다.

1. 탐색 창에서 **Security Groups**를 선택합니다.

1. 클러스터 인스턴스에 사용할 보안 그룹을 선택하거나 만듭니다. [**Inbound Rules**]에서 [**Edit Inbound Rules**]를 선택한 다음 [**Add Rule**]을 선택합니다. 이 보안 그룹은 다른 보안 그룹 멤버에 대한 액세스를 허용합니다.

1. [**Type**]에서 [**Custom TCP Rule**]을 선택합니다.

   1. [**Port Range**]에 대해 클러스터를 만들 때 사용한 포트를 지정합니다.

      Redis OSS 클러스터 및 복제 그룹의 기본 포트는 `6379`입니다.

   1. [**Source**] 상자에 보안 그룹 ID를 입력합니다. 목록에서 Amazon EC2 인스턴스에 사용할 보안 그룹을 선택합니다.

1. 완료되면 [**Save**]를 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/VPC-Rules.png)

액세스를 활성화했으면 이제 다음 섹션에 설명된 대로 노드에 연결할 수 있습니다.

다른 Amazon VPC, 다른AWS리전 또는 회사 네트워크에서 ElastiCache 클러스터에 액세스하는 방법에 대한 자세한 내용은 다음을 참조하세요.
+ [Amazon VPC에 있는 ElastiCache 캐시에 액세스하기 위한 액세스 패턴](elasticache-vpc-accessing.md)
+ [외부에서 ElastiCache 리소스에 액세스AWS](accessing-elasticache.md#access-from-outside-aws)

## 4단계: 클러스터 노드에 연결
<a name="GettingStarted.ConnectToCacheNode.redis"></a>

계속하기 전에 [3단계: 클러스터에 대한 액세스 허가](#GettingStarted.AuthorizeAccess.redis) 단계를 완료하세요.

이 섹션에서는 Amazon EC2 인스턴스를 생성했고 이 인스턴스에 연결할 수 있다고 가정합니다. 작업 방법에 대한 지침은 [Amazon EC2 시작 안내서](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)를 참조하세요.

Amazon EC2 인스턴스는 권한을 부여한 경우에만 클러스터 노드에 연결할 수 있습니다.

### 노드 엔드포인트 찾기
<a name="GettingStarted.FindEndpoints.redis"></a>

클러스터가 *사용 가능*한 상태이고 사용자가 이 클러스터에 액세스할 수 있는 권한을 부여받았다면 Amazon EC2 인스턴스에 로그인하여 클러스터에 연결할 수 있습니다. 이를 수행하려면 먼저 엔드포인트를 결정해야 합니다.

#### Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 엔드포인트 찾기(콘솔)
<a name="Endpoints.Find.Redis-gs"></a>

Redis OSS(클러스터 모드 비활성화됨) 클러스터에 노드가 하나뿐이면 노드의 엔드포인트가 읽기와 쓰기에 모두 사용됩니다. 클러스터에 여러 노드가 있는 경우 세 가지 유형의 엔드포인트(*기본 엔드포인트*, *리더 엔드포인트* 및 *노드 엔드포인트*)가 있습니다.

기본 엔드포인트는 항상 클러스터의 프라이머리 노드로 확인되는 DNS 이름입니다. 기본 엔드포인트는 읽기 전용 복제본을 기본 역할로 승격하는 것과 같은 클러스터 변경의 영향을 받지 않습니다. 쓰기 활동의 경우 애플리케이션을 기본 엔드포인트에 연결하는 것이 좋습니다.

리더 엔드포인트는 ElastiCache for Redis OSS 클러스터의 모든 읽기 전용 복제본 간에 엔드포인트에 대한 수신 연결을 고르게 분할합니다. 애플리케이션이 연결을 생성하는 시기 또는 애플리케이션에서 연결을 다시 사용하는 방법과 같은 추가 요소가 트래픽 분산을 결정합니다. 리더 엔드포인트는 복제본이 추가 또는 제거되는 클러스터의 변경 사항을 실시간으로 반영합니다. ElastiCache for Redis OSS 클러스터의 여러 읽기 전용 복제본을 서로 다른AWS가용 영역(AZ)에 배치하여 리더 엔드포인트의 고가용성을 보장할 수 있습니다.

**참고**  
리더 엔드포인트는 로드 밸런서가 아닙니다. 라운드 로빈 방식으로 복제본 노드 중 하나의 IP 주소로 확인되는 DNS 레코드입니다.

읽기 활동의 경우 애플리케이션은 클러스터의 어떤 노드에도 연결할 수 있습니다. 기본 엔드포인트와 달리, 노드 엔드포인트는 특정 엔드포인트로 확인됩니다. 복제본을 추가하거나 삭제하는 것과 같이 클러스터를 변경하면 애플리케이션에서 노드 엔드포인트를 업데이트해야 합니다.

**Redis OSS(클러스터 모드 비활성화됨) 클러스터의 엔드포인트를 찾으려면**

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Redis OSS 캐시**를 선택합니다.

   기존 Valkey 또는 Redis OSS 서버리스 캐시, Redis OSS(클러스터 모드 비활성화됨) 및 Redis OSS(클러스터 모드 활성화됨) 클러스터의 목록이 있는 클러스터 화면이 나타납니다. [Redis OSS(클러스터 모드 비활성화됨) 클러스터 생성(콘솔)](#Clusters.Create.CON.Redis-gs) 섹션에서 생성한 클러스터를 선택합니다.

1. 클러스터의 기본 엔드포인트 및/또는 리더 엔드포인트를 찾으려면 클러스터 이름(라디오 버튼 아님)을 선택합니다.  
![\[이미지: Redis OSS(클러스터 모드 비활성화됨) 클러스터의 기본 엔드포인트\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/Reader-Endpoint.png)

   *Redis OSS(클러스터 모드 비활성화됨) 클러스터의 기본 및 리더 엔드포인트*

   클러스터에 노드가 하나 뿐이면 기본 엔드포인트가 없으며 다음 단계에서 계속할 수 있습니다.

1. Redis OSS(클러스터 모드 비활성화) 클러스터에 복제본 노드가 있으면 클러스터 이름을 선택한 후 **노드** 탭을 선택하여 클러스터의 복제본 노드 엔드포인트를 찾을 수 있습니다.

   노드 화면에 클러스터의 각 노드, 기본 및 복제본이 엔드포인트와 함께 나열됩니다.  
![\[이미지: Redis OSS(클러스터 모드 비활성화됨) 클러스터의 노드 엔드포인트\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-Endpoints-Redis-Node.png)

   *Redis OSS(클러스터 모드 비활성화됨) 클러스터의 노드 엔드포인트*

1. 엔드포인트를 클립보드에 복사하려면

   1. 한 번에 엔드포인트 하나씩, 복사할 엔드포인트를 찾습니다.

   1. 엔드포인트 바로 앞에 있는 복사 아이콘을 선택합니다.

   엔드포인트가 클립보드에 복사됩니다. 엔드포인트를 사용하여 노드에 연결하는 방법에 대한 자세한 내용은 [노드에 연결](nodes-connecting.md) 섹션을 참조하세요.

Redis OSS(클러스터 모드 비활성화됨) 기본 엔드포인트는 다음과 같습니다. 전송 중 데이터 암호화가 활성화되어 있는지 여부에 따라 차이가 있습니다.

**전송 중 데이터 암호화가 비활성화된 경우**

```
clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
			
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
```

**전송 중 데이터 암호화가 활성화된 경우**

```
master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port

master.ncit.ameaqx.use1.cache.amazonaws.com:6379
```

사용자의 엔드포인트를 찾는 방법을 더 자세히 알아보려면 엔진과 실행 중인 클러스터 유형에 관한 주제를 참조하세요.
+ [ElastiCache에서 연결 엔드포인트 찾기](Endpoints.md)
+ [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에 대한 엔드포인트 찾기(콘솔)](Endpoints.md#Endpoints.Find.RedisCluster) - 클러스터의 구성 엔드포인트가 필요합니다.
+ [엔드포인트 찾기(AWS CLI)](Endpoints.md#Endpoints.Find.CLI)
+ [엔드포인트 찾기(ElastiCache API)](Endpoints.md#Endpoints.Find.API)

### Valkey 또는 Redis OSS 클러스터 또는 복제 그룹에 연결(Linux)
<a name="GettingStarted.ConnectToCacheNode.Redis.Linux"></a>

이제 필요한 엔드포인트가 있으므로 EC2 인스턴스에 로그인하여 클러스터 또는 복제 그룹에 연결할 수 있습니다. 다음 예제에서는 *valkey-cli* 유틸리티를 사용하여 클러스터에 연결합니다. 최신 버전의 valkey-cli는 암호화/인증이 활성화된 클러스터에 연결할 수 있도록 SSL/TLS도 지원합니다.

다음 예에서는 Amazon Linux 및 Amazon Linux 2를 실행하는 Amazon EC2 인스턴스를 사용합니다. 다른 Linux 배포판을 사용하여 valkey-cli를 설치하고 컴파일하는 방법에 대한 자세한 내용은 해당 운영 체제의 설명서를 참조하세요.

**참고**  
이 프로세스에서는 valkey-cli 유틸리티를 계획되지 않은 용도로 사용하기 위해 연결을 테스트하는 방법만 다룹니다. 지원되는 클라이언트의 목록에 대해서는 [Valkey 설명서](https://valkey.io/)를 참조하세요. ElastiCache에서AWS SDKs[자습서: Python 및 ElastiCache로 시작](ElastiCache-Getting-Started-Tutorials.md).

#### 클러스터 모드가 비활성화된 암호화되지 않은 클러스터에 연결
<a name="Connecting-to-a-cluster-mode-disabled-unencrypted-cluster.redis"></a>

1. 다음 명령을 실행하여 클러스터에 연결하고 *primary-endpoint* 및 *port number*를 클러스터의 엔드포인트 및 포트 번호로 바꿉니다. (Valkey 및 Redis OSS의 기본 포트는 6379입니다.)

   ```
   src/valkey-cli -h primary-endpoint -p port number
   ```

   나타나는 명령 프롬프트는 다음과 유사합니다.

   ```
   primary-endpoint:port number
   ```

1. 이제 Valkey 및 Redis OSS 명령을 실행할 수 있습니다.

   ```
   set x Hello
   OK
   
   get x
   "Hello"
   ```

#### 클러스터 모드가 활성화된 암호화되지 않은 클러스터에 연결
<a name="Connecting-to-a-cluster-mode-enabled-unencrypted-cluster.redis"></a>

1. 다음 명령을 실행하여 클러스터에 연결하고 *configuration-endpoint* 및 *port number*를 클러스터의 엔드포인트 및 포트 번호로 바꿉니다. (Valkey 및 Redis OSS의 기본 포트는 6379입니다.)

   ```
   src/valkey-cli -h configuration-endpoint -c -p port number
   ```
**참고**  
이전 명령에서 -c 옵션은 [-ASK 및 -MOVED 리디렉션](https://redis.io/topics/cluster-spec) 후에 클러스터 모드를 활성화합니다.

   나타나는 명령 프롬프트는 다음과 유사합니다.

   ```
   configuration-endpoint:port number
   ```

1. 이제 Valkey 및 Redis OSS 명령을 실행할 수 있습니다. 리디렉션은 -c 옵션을 사용하여 활성화했기 때문에 발생합니다. 리디렉션이 활성화되지 않으면 이 명령은 MOVED 오류를 반환합니다. MOVED 오류에 대한 자세한 내용은 [클러스터 사양](https://valkey.io/topics/cluster-spec) 섹션을 참조하세요.

   ```
   set x Hi
   -> Redirected to slot [16287] located at 172.31.28.122:6379
   OK
   set y Hello
   OK
   get y
   "Hello"
   set z Bye
   -> Redirected to slot [8157] located at 172.31.9.201:6379
   OK
   get z
   "Bye"
   get x
   -> Redirected to slot [16287] located at 172.31.28.122:6379
   "Hi"
   ```

#### 암호화/인증이 활성화된 클러스터에 연결
<a name="Connecting-to-an-Encryption-Authentication-enabled-cluster.redis"></a>

기본적으로 valkey-cli는 Valkey 및 Redis OSS에 연결할 때 암호화되지 않은 TCP 연결을 사용합니다. `BUILD_TLS=yes` 옵션은 이전 [명령줄 액세스 다운로드 및 설정](set-up.md#Download-and-install-cli) 섹션에 나와 있는 것처럼 valkey-cli 컴파일 시에 SSL/TLS를 활성화합니다. AUTH 활성화는 선택 사항입니다. 그러나 AUTH를 활성화하려면 전송 중 데이터 암호화를 활성화해야 합니다. ElastiCache 암호화 및 인증에 대한 자세한 내용은 [ElastiCache 전송 중 데이터 암호화(TLS)](in-transit-encryption.md) 섹션을 참조하세요.

**참고**  
valkey-cli에서 `--tls` 옵션을 사용하여 클러스터 모드가 활성화되거나 비활성화된 암호화된 클러스터에 연결할 수 있습니다. 클러스터에 AUTH 토큰이 설정되어 있는 경우 `-a` 옵션을 사용하여 AUTH 암호를 제공할 수 있습니다.

다음 예에서 *cluster-endpoint* 및 *port number*를 클러스터의 엔드포인트 및 포트 번호로 바꾸십시오. (Redis OSS의 기본 포트는 6379입니다.)

**클러스터 모드가 비활성화된 암호화된 클러스터에 연결** 

다음은 암호화 및 인증이 활성화된 클러스터에 연결하는 예제입니다.

```
src/valkey-cli -h cluster-endpoint --tls -a your-password -p port number
```

다음은 암호화만 활성화된 클러스터에 연결하는 예제입니다.

```
src/valkey-cli -h cluster-endpoint --tls -p port number
```

**클러스터 모드가 활성화된 암호화된 클러스터에 연결** 

다음은 암호화 및 인증이 활성화된 클러스터에 연결하는 예제입니다.

```
src/valkey-cli -c -h cluster-endpoint --tls -a your-password -p port number
```

다음은 암호화만 활성화된 클러스터에 연결하는 예제입니다.

```
src/valkey-cli -c -h cluster-endpoint --tls -p port number
```

클러스터에 연결한 후 암호화되지 않은 클러스터에 대해 이전 예제와 같이 Valkey 또는 Redis OSS 명령을 실행할 수 있습니다.

#### valkey-cli 또는 Redis-cli의 대체
<a name="Redis-cli-alternative"></a>

클러스터에 클러스터 모드가 활성화되어 있지 않으며 짧은 테스트를 위해 클러스터에 연결해야 하지만 valkey-cli 또는 redis-cli 컴파일 과정을 거치고 싶지 않은 경우 telnet 또는 openssl을 사용할 수 있습니다. 다음 예제 명령에서 *cluster-endpoint* 및 *port number*를 클러스터의 엔드포인트 및 포트 번호로 바꾸십시오. (Redis OSS의 기본 포트는 6379입니다.)

다음은 암호화 및/또는 인증이 활성화되어 있으며 클러스터 모드가 비활성화된 클러스터에 연결하는 예제입니다.

```
openssl s_client -connect cluster-endpoint:port number
```

클러스터에 암호가 설정되어 있으면 먼저 클러스터에 연결합니다. 연결 후 다음 명령을 사용하여 클러스터를 인증한 다음 `Enter` 키를 누릅니다. 다음 예제에서 *your-password*를 클러스터의 암호로 바꿉니다.

```
Auth your-password
```

다음은 암호화 또는 인증이 활성화되어 있지 않으며 클러스터 모드가 비활성화된 클러스터에 연결하는 예제입니다.

```
telnet cluster-endpoint port number
```

### Valkey 또는 Redis OSS 클러스터 또는 복제 그룹에 연결(Windows)
<a name="GettingStarted.ConnectToCacheNode.Redis.Windows"></a>

Valkey 또는 Redis OSS CLI를 사용하여 EC2 Windows 인스턴스에서 클러스터에 연결하려면 *valkey-cli* 패키지를 다운로드하고 *valkey-cli.exe*를 사용하여 EC2 Windows 인스턴스에서 Valkey 또는 Redis OSS 클러스터에 연결해야 합니다.

다음 예제에서는 *valkey-cli* 유틸리티를 사용하여 암호화가 활성화되지 않았고 Valkey 또는 Redis OSS를 실행하는 클러스터에 연결합니다. Valkey 및 사용 가능한 명령에 대한 자세한 내용은 Valkey 웹 사이트의 [Valkey 명령](http://valkey.io/commands)을 참조하세요.

***valkey-cli*를 사용하여 암호화가 활성화되지 않은 Valkey 또는 Redis OSS 클러스터에 연결하려면**

1. 선택한 연결 유틸리티를 사용하여 Amazon EC2 인스턴스에 연결하세요. Amazon EC2 인스턴스에 연결하는 방법에 대한 지침은 [Amazon EC2 시작 안내서](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)를 참조하세요.

1. [https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip](https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip) 링크를 복사하고 인터넷 브라우저에 붙여 넣어 GitHub [https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504](https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504)의 사용 가능한 릴리스에서 Redis OSS 클라이언트에 대한 zip 파일을 다운로드합니다.

   원하는 폴더/경로에 zip 파일의 압축을 풉니다.

   명령 프롬프트를 열고 Valkey 디렉터리로 변경한 다음 `c:\Valkey>valkey-cli -h Valkey_Cluster_Endpoint -p 6379` 명령을 실행합니다.

   예제:

   ```
   c:\Valkey>valkey-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379
   ```

1. Valkey 또는 Redis OSS 명령을 실행합니다.

    이제 클러스터에 연결되어 다음과 같이 Valkey 또는 Redis OSS 명령을 실행할 수 있습니다.

   ```
   set a "hello"          // Set key "a" with a string value and no expiration
   OK
   get a                  // Get value for key "a"
   "hello"
   get b                  // Get value for key "b" results in miss
   (nil)				
   set b "Good-bye" EX 5  // Set key "b" with a string value and a 5 second expiration
   "Good-bye"
   get b                  // Get value for key "b"
   "Good-bye"
                          // wait >= 5 seconds
   get b
   (nil)                  // key has expired, nothing returned
   quit                   // Exit from valkey-cli
   ```

# 클러스터 삭제
<a name="Clusters.Delete-gs.redis"></a>

클러스터가 *available* 상태면 클러스터를 적극 사용하고 있는지 여부에 관계없이 요금이 부과됩니다. 요금 발생을 중지하려면 클러스터를 삭제하세요.

**주의**  
ElastiCache 클러스터를 삭제하는 경우 수동 스냅샷은 보존됩니다. 클러스터가 삭제되기 전에 최종 스냅샷을 생성할 수도 있습니다. 자동 캐시 스냅샷은 보존되지 않습니다. 자세한 내용은 [스냅샷 및 복원](backups.md) 단원을 참조하십시오.
최종 스냅샷을 생성하려면 `CreateSnapshot` 권한이 필요합니다. 이 권한이 없으면 API 호출이 실패하고 `Access Denied` 예외가 발생합니다.

## 사용AWS Management Console
<a name="Clusters.Delete.CON-gs.redis"></a>

다음은 배포에서 클러스터 하나를 삭제하는 절차입니다. 클러스터를 여러 개 삭제하려면 삭제할 클러스터마다 절차를 반복하세요. 클러스터 하나를 다 삭제한 후 다른 클러스터 삭제 절차가 시작될 때까지 기다릴 필요는 없습니다.

**클러스터 삭제**

1. 에 로그인AWS Management Console하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) Amazon ElastiCache 콘솔을 엽니다.

1. ElastiCache 엔진 대시보드에서 Valkey 또는 Redis OSS를 선택합니다.

   해당 엔진에서 실행하고 있는 모든 캐시의 목록이 표시됩니다.

1. 삭제할 클러스터를 선택하려면 클러스터 목록에서 해당 클러스터의 이름을 선택합니다. 이 경우 [2단계: 클러스터 생성](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.CreateCluster.valkey)에서 생성된 클러스터의 이름입니다.
**중요**  
ElastiCache 콘솔에서는 클러스터를 한 번에 하나씩만 삭제할 수 있습니다. 여러 클러스터를 선택하면 삭제 작업이 비활성화됩니다.

1. **작업**에 대해 **삭제**를 선택합니다.

1. **클러스터 삭제** 확인 화면에서 클러스터 이름을 입력하고 **최종 백업**을 선택합니다. 그런 다음 **삭제**를 선택하여 클러스터를 삭제하거나 **취소**를 선택하여 클러스터를 유지합니다.

   [**Delete**]를 선택한 경우 클러스터 상태가 [*deleting*]으로 바뀝니다.

클러스터가 클러스터 목록에서 제거되는 즉시 요금 부과가 중단됩니다.

## 사용AWS CLI
<a name="Clusters.Delete.CLI-gs.redis"></a>

다음 코드는 클러스터 `my-cluster`를 삭제합니다. 이 경우 `my-cluster`를 [2단계: 클러스터 생성](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.CreateCluster.valkey)에서 생성된 클러스터의 이름으로 바꿉니다.

```
aws elasticache delete-cache-cluster --cache-cluster-id my-cluster
```

`delete-cache-cluster` CLI 작업은 클러스터를 하나만 삭제합니다. 클러스터를 여러 개 삭제하려면 삭제할 캐시 클러스터마다 `delete-cache-cluster`를 직접 호출하세요. 클러스터 하나를 다 삭제한 후 다른 클러스터를 삭제할 때까지 기다릴 필요는 없습니다.

Linux, macOS, Unix의 경우:

```
aws elasticache delete-cache-cluster \
    --cache-cluster-id my-cluster \
    --region us-east-2
```

Windows의 경우:

```
aws elasticache delete-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --region us-east-2
```

자세한 내용은 ElastiCache AWS CLI주제를 참조하세요[https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-cluster.html).

# 기타 ElastiCache 자습서 및 동영상
<a name="Tutorials"></a>

다음은 Amazon ElastiCache 사용자가 관심을 기울이는 작업을 해결하는 자습서입니다.
+ [ElastiCache 동영상](#tutorial-videos)
+ [자습서: Amazon VPC에서 Amazon ElastiCache에 액세스하도록 Lambda 함수 구성 ](https://docs.aws.amazon.com/lambda/latest/dg/vpc-ec.html)

## ElastiCache 동영상
<a name="tutorial-videos"></a>

다음은 기본 및 고급 Amazon ElastiCache 개념을 학습하는 데 도움이 되는 동영상입니다. AWS 교육에 대한 자세한 내용은 [AWS Training & Certification](https://aws.amazon.com/training/)을 참조하세요.

**Topics**
+ [입문자용 동영상](#WhatIs.Videos.Beginning)
+ [고급 동영상](#WhatIs.Videos.Advanced)

### 입문자용 동영상
<a name="WhatIs.Videos.Beginning"></a>

다음 동영상은 Amazon ElastiCache에 대해 소개합니다.

**Topics**
+ [AWS re:Invent 2020: What’s new in Amazon ElastiCache](#WhatIs.Videos.Beginning.2020)
+ [AWS re:Invent 2019: What’s new in Amazon ElastiCache](#WhatIs.Videos.Beginning.2019)
+ [AWS re:Invent 2017: What’s new in Amazon ElastiCache](#WhatIs.Videos.Beginning.2017)
+ [DAT204 - Building Scalable Applications on AWS NoSQL Services (re:Invent 2015)](#WhatIs.Videos.Beginning.2015.DAT204)
+ [DAT207 - Accelerating Application Performance with Amazon ElastiCache (AWS re:Invent 2013)](#WhatIs.Videos.Beginning.2013.DAT207)

#### AWS re:Invent 2020: What’s new in Amazon ElastiCache
<a name="WhatIs.Videos.Beginning.2020"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/O9mqbIYJXWE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/O9mqbIYJXWE)


#### AWS re:Invent 2019: What’s new in Amazon ElastiCache
<a name="WhatIs.Videos.Beginning.2019"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/SaGW_Bln3qA/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/SaGW_Bln3qA)


#### AWS re:Invent 2017: What’s new in Amazon ElastiCache
<a name="WhatIs.Videos.Beginning.2017"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/wkGn1TzCgnk/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/wkGn1TzCgnk)


#### DAT204 - Building Scalable Applications on AWS NoSQL Services (re:Invent 2015)
<a name="WhatIs.Videos.Beginning.2015.DAT204"></a>

이 세션에서는 NoSQL 데이터베이스에 대한 이점을 설명하고, AWS에서 제공한 기본 NoSQL 서비스(Amazon DynamoDB 및 Amazon ElastiCache)에 대해 알아보겠습니다. 그런 다음, 두 선도적인 고객인 Expedia와 Mapbox로부터 사용 사례와 아키텍처 문제점 및 설계 패턴과 모범 사례를 비롯한 AWS NoSQL 서비스를 사용하여 이를 해결한 방법에 대해 듣습니다. 이 세션을 통해 NoSQL과 NoSQL의 강력한 기능을 잘 이해하여 데이터베이스 문제점을 확실하게 처리할 준비를 갖추게 됩니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/ie4dWGT76LM/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/ie4dWGT76LM)


#### DAT207 - Accelerating Application Performance with Amazon ElastiCache (AWS re:Invent 2013)
<a name="WhatIs.Videos.Beginning.2013.DAT207"></a>

이 동영상에서는 애플리케이션 성능의 속도를 높이기 위해 Amazon ElastiCache를 사용하여 인 메모리 캐시를 쉽게 배포하는 방법에 대해 알아봅니다. Amazon ElastiCache를 사용하여 애플리케이션 지연 시간을 개선하고 데이터베이스 서버에 대한 부담을 줄이는 방법을 알아봅니다. 또한 애플리케이션이 성장함에 따라 쉽게 관리 및 조정할 수 있는 캐싱 레이어를 구축하는 방법도 알아봅니다. 이 세션 중 캐싱을 활성화하여 혜택을 받을 수 있는 다양한 시나리오 및 사용 사례를 살펴보고, Amazon ElastiCache에서 제공한 기능을 설명합니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/odMmdPBV8hM/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/odMmdPBV8hM)


### 고급 동영상
<a name="WhatIs.Videos.Advanced"></a>

다음 동영상은 고급 Amazon ElastiCache 주제를 다룹니다.

**Topics**
+ [Design for success with Amazon ElastiCache best practices (re:Invent 2020)](#WhatIs.Videos.Advanced.2020.DAT305)
+ [Supercharge your real-time apps with Amazon ElastiCache (re:Invent 2019)](#WhatIs.Videos.Advanced.2019.DAT305)
+ [모범 사례: migrating Redis OSS clusters from Amazon EC2 to ElastiCache (re:Invent 2019)](#WhatIs.Videos.Advanced.2019.DAT358)
+ [Scaling a Fantasy Sports Platform with Amazon ElastiCache & Amazon Aurora STP11 (re:Invent 2018)](#WhatIs.Videos.Advanced.2019)
+ [Reliable & Scalable Redis OSS in the Cloud with Amazon ElastiCache (re:Invent 2018)](#WhatIs.Videos.AdvancedDD.2018)
+ [ElastiCache Deep Dive: Design Patterns for In-Memory Data Stores (re:Invent 2018)](#WhatIs.Videos.AdvancedDD.2019)
+ [DAT305 - Amazon ElastiCache Deep Dive (re:Invent 2017)](#WhatIs.Videos.Advanced.2017.DAT305)
+ [DAT306 - Amazon ElastiCache Deep Dive (re:Invent 2016)](#WhatIs.Videos.Advanced.2016.DAT306)
+ [DAT317 - IFTTT가 ElastiCache for Redis OSS를 사용하여 이벤트를 예측하는 방법(re:Invent 2016)](#WhatIs.Videos.Advanced.2016.DAT317)
+ [DAT407 - Amazon ElastiCache Deep Dive (re:Invent 2015)](#WhatIs.Videos.Advanced.2015.DAT407)
+ [SDD402 - Amazon ElastiCache Deep Dive (re:Invent 2014)](#WhatIs.Videos.Advanced.2014.SDD402)
+ [DAT307 - Deep Dive into Amazon ElastiCache Architecture and Design Patterns (re:Invent 2013)](#WhatIs.Videos.Advanced.2013.DAT307)

#### Design for success with Amazon ElastiCache best practices (re:Invent 2020)
<a name="WhatIs.Videos.Advanced.2020.DAT305"></a>

Redis OSS를 기반으로 구축된 비즈니스 크리티컬 실시간 애플리케이션이 폭발적으로 증가함에 따라 가용성, 확장성 및 보안이 가장 중요한 고려 사항이 되었습니다. 온라인 확장/축소, 다중 AZ 배포 간 고가용성 및 보안 구성에서 성공하기 위해 Amazon ElastiCache를 설정하는 모범 사례를 알아봅니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/_4SkEy6r-C4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/_4SkEy6r-C4)


#### Supercharge your real-time apps with Amazon ElastiCache (re:Invent 2019)
<a name="WhatIs.Videos.Advanced.2019.DAT305"></a>

클라우드 도입과 이에 기반한 새로운 시나리오가 급속히 증가함에 따라 애플리케이션에는 초당 수백만 건의 요청을 지원하기 위해 마이크로초 단위의 지연 시간과 높은 처리량이 필요합니다. 개발자들은 전통적으로 데이터 감소 기술이 결합된 디스크 기반 데이터베이스와 같은 특수 하드웨어 및 해결 방법을 사용하여 실시간 애플리케이션을 위한 데이터를 관리해 왔습니다. 그러나 이러한 접근 방식은 비용이 많이 들고 확장성이 떨어질 수 있습니다. 최고의 성능, 높은 확장성, 가용성 및 보안을 위해 완전 관리형 인 메모리 Amazon ElastiCache를 사용하여 실시간 애플리케이션의 성능을 향상시킬 수 있는 방법을 알아봅니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/v0GfpL5jfns/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/v0GfpL5jfns)


#### 모범 사례: migrating Redis OSS clusters from Amazon EC2 to ElastiCache (re:Invent 2019)
<a name="WhatIs.Videos.Advanced.2019.DAT358"></a>

Redis OSS 클러스터를 직접 관리하는 것은 어려울 수 있습니다. 하드웨어를 프로비저닝하고, 소프트웨어를 패치하고, 데이터를 백업하고, 워크로드를 지속적으로 모니터링해야 합니다. 새로 출시된 Amazon ElastiCache용 온라인 마이그레이션 기능을 사용하면 이제 클러스터 모드가 비활성화된 상태에서 Amazon EC2의 자체 호스팅된 Redis OSS에서 완전 관리형 Amazon ElastiCache로 데이터를 쉽게 이전할 수 있습니다. 이 세션에서는 새로운 온라인 마이그레이션 도구에 대해 알아보고 데모를 살펴보며, 더 중요한 것은 Amazon ElastiCache로 원활하게 마이그레이션할 수 있게 해주는 실무 모범 사례를 알아봅니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/Rpni5uPe0uI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/Rpni5uPe0uI)


#### Scaling a Fantasy Sports Platform with Amazon ElastiCache & Amazon Aurora STP11 (re:Invent 2018)
<a name="WhatIs.Videos.Advanced.2019"></a>

Dream11은 인도의 선도적인 스포츠 기술 스타트업입니다. 판타지 크리켓, 축구, 농구 등 여러 스포츠를 즐기는 4천만 명 이상의 사용자 기반이 계속 증가하고 있으며 현재 백만 명의 동시 사용자에게 서비스를 제공하며, 이러한 사용자들이 50밀리초 미만의 응답 시간으로 분당 3백만 건의 요청을 생성하고 있습니다. 이 대담에서 Dream11의 CTO인 Amit Sharma가 이 기업이 Amazon Aurora 및 Amazon ElastiCache를 사용하여 30초 응답 시간 범위 내에서 3배까지 증가할 수 있는 플래시 트래픽을 처리하는 방법을 설명합니다. 또한 Sharma는 잠금이 필요하지 않은 트랜잭션 확장/축소 방법에 대해 이야기하며 매일 5백만 명의 활성 사용자에게 서비스를 제공하고 있는 플래시 트래픽 처리 단계를 공유합니다. 전체 제목: AWS re:Invent 2018: Scaling a Fantasy Sports Platform with Amazon ElastiCache & Amazon Aurora (STP11)

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/hIPOLeEjVQY/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/hIPOLeEjVQY)


#### Reliable & Scalable Redis OSS in the Cloud with Amazon ElastiCache (re:Invent 2018)
<a name="WhatIs.Videos.AdvancedDD.2018"></a>

이 세션에서는 Redis OSS 호환 서비스인 Amazon ElastiCache for Redis OSS의 기능과 향상된 기능에 대해 다룹니다. Redis OSS 5, 확장성 및 성능 개선 사항, 보안 및 규정 준수 등과 같은 주요 기능을 다룹니다. 또한 예정된 기능 및 고객 사례 연구에 대해서도 논의합니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/pgXEnAcTNPI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/pgXEnAcTNPI)


#### ElastiCache Deep Dive: Design Patterns for In-Memory Data Stores (re:Invent 2018)
<a name="WhatIs.Videos.AdvancedDD.2019"></a>

이 세션에서는 Amazon ElastiCache의 디자인 및 아키텍처에 대해 살펴볼 수 있는 배경 지식 자료를 제공합니다. Redis OSS 및 Memcached 솔루션으로 일반적인 설계 패턴을 살펴보고, 고객이 인 메모리 데이터 처리에 이런 패턴을 사용하여 지연 시간을 단축하고 애플리케이션 처리량을 개선한 방법을 알아봅니다. ElastiCache 모범 사례, 설계 패턴 및 안티 패턴을 검토합니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/QxcB53mL_oA/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/QxcB53mL_oA)


#### DAT305 - Amazon ElastiCache Deep Dive (re:Invent 2017)
<a name="WhatIs.Videos.Advanced.2017.DAT305"></a>

Amazon ElastiCache의 설계 및 아키텍처에 대한 뒷이야기를 살펴봅니다. Memcached 및 Redis OSS 솔루션으로 일반적인 설계 패턴을 살펴보고, 고객이 인 메모리 작업에 이런 패턴을 사용하여 지연 시간을 단축하고 애플리케이션 처리량을 개선한 방법을 알아봅니다. 이 비디오 중에는 ElastiCache 모범 사례, 설계 패턴 및 안티 패턴을 검토합니다.

비디오는 다음의 내용을 소개합니다.
+ ElastiCache for Redis OSS 온라인 리샤딩
+ ElastiCache 보안 및 암호화
+ ElastiCache for Redis OSS 버전 3.2.10

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/_YYBdsuUq2M/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/_YYBdsuUq2M)


#### DAT306 - Amazon ElastiCache Deep Dive (re:Invent 2016)
<a name="WhatIs.Videos.Advanced.2016.DAT306"></a>

Amazon ElastiCache의 설계 및 아키텍처에 대한 뒷이야기를 살펴봅니다. Memcached 및 Redis OSS 솔루션으로 일반적인 설계 패턴을 살펴보고, 고객이 인 메모리 작업에 이런 패턴을 사용하여 지연 시간을 단축하고 애플리케이션 처리량을 개선한 방법을 알아봅니다. 이 세션 중에는 ElastiCache 모범 사례, 설계 패턴 및 안티 패턴을 검토합니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/e9sN15a7utI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/e9sN15a7utI)


#### DAT317 - IFTTT가 ElastiCache for Redis OSS를 사용하여 이벤트를 예측하는 방법(re:Invent 2016)
<a name="WhatIs.Videos.Advanced.2016.DAT317"></a>

IFTTT는 단순 작업 자동화에서 주택 제어 방식 개선 등에 이르기까지, 사람들이 좋아하는 서비스를 이용해 더 많은 일을 수행할 수 있도록 지원하는 무료 서비스입니다. IFTTT는 ElastiCache for Redis OSS를 사용하여 Amazon S3에서 로그 문서를 위한 인덱스뿐 아니라, 트랜잭션 실행 내역 및 일정 예측을 저장합니다. 이 세션을 보고 LUA의 스크립팅 성능과 Redis OSS의 데이터 유형이 다른 것을 이용하면 불가능한 일을 어떻게 달성하게 지원하는지 알아보십시오.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/eQbsXN0kcc0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/eQbsXN0kcc0)


#### DAT407 - Amazon ElastiCache Deep Dive (re:Invent 2015)
<a name="WhatIs.Videos.Advanced.2015.DAT407"></a>

Amazon ElastiCache의 설계 및 아키텍처에 대한 뒷이야기를 살펴봅니다. Memcached 및 Redis OSS 솔루션의 일반적인 설계 패턴을 살펴보고, 고객이 인 메모리 작업에 이런 패턴을 사용하여 애플리케이션에 대한 개선된 지연 시간 및 처리량을 실현한 방법을 알아봅니다. 이 세션 중에는 Amazon ElastiCache와 관련된 모범 사례, 설계 패턴 및 안티 패턴을 검토합니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/4VfIINg9DYI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/4VfIINg9DYI)


#### SDD402 - Amazon ElastiCache Deep Dive (re:Invent 2014)
<a name="WhatIs.Videos.Advanced.2014.SDD402"></a>

이 동영상에서는 일반적인 캐싱 사용 사례, ElastiCache for Memcached 및 ElastiCache for Redis OSS 엔진, 요구 사항에 적합한 엔진을 결정하는 데 도움이 되는 패턴, 일관적 해싱 및 기타 빠르고 확장 가능한 애플리케이션을 구축하는 수단을 살펴봅니다. Adobe의 최고 책임 과학자인 Frank Wiebe는 Adobe에서 Amazon ElastiCache를 사용하여 고객 경험을 향상하고 비즈니스를 확장하는 방법을 자세히 설명합니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/cEkHBqhQnog/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/cEkHBqhQnog)


#### DAT307 - Deep Dive into Amazon ElastiCache Architecture and Design Patterns (re:Invent 2013)
<a name="WhatIs.Videos.Advanced.2013.DAT307"></a>

이 동영상에서는 캐싱, 캐싱 전략, 확장, 모니터링을 살펴봅니다. 또한 ElastiCache for Memcached 및 ElastiCache for Redis OSS 엔진을 비교합니다. 이 세션 중에는 Amazon ElastiCache와 관련된 모범 사례 및 설계 패턴도 검토합니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/me0Tw13O1H4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/me0Tw13O1H4)


# ElastiCache에서 노드 관리
<a name="CacheNodes"></a>

노드는 Amazon ElastiCache 배포의 가장 작은 구성 요소입니다. 안전한 네트워크 부착 RAM의 크기가 고정된 청크입니다. 각 노드는 클러스터가 생성되거나 마지막으로 수정되었을 때 선택한 엔진을 실행합니다. 각 노드에는 고유한 DNS(도메인 이름 서비스) 이름 및 포트가 있습니다. 여러 유형의 ElastiCache 노드가 지원되며, 연결된 메모리 양과 컴퓨팅 파워는 각각 다릅니다.

사용할 노드 크기에 대한 자세한 내용은 [노드 크기 선택](CacheNodes.SelectSize.md) 섹션을 참조하세요.

일반적으로 샤딩 지원으로 인해 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 배포에는 더 작은 노드가 다수 있습니다. 반대로 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 배포에는 클러스터에 더 적은 수의 더 큰 노드가 있습니다. 사용할 노드 크기에 대한 자세한 내용은 [노드 크기 선택](CacheNodes.SelectSize.md) 섹션을 참조하세요.

**Topics**
+ [ElastiCache 노드 상태 보기](Nodes.viewing.md)
+ [Valkey 또는 Redis OSS 노드 및 샤드](CacheNodes.NodeGroups.md)
+ [노드에 연결](nodes-connecting.md)
+ [지원되는 노드 유형](CacheNodes.SupportedTypes.md)
+ [노드 재부팅](nodes.rebooting.md)
+ [노드 대체(Valkey 및 Redis OSS)](CacheNodes.NodeReplacement.md)
+ [노드 대체(Memcached)](CacheNodes.NodeReplacement-mc.md)
+ [예약 노드](CacheNodes.Reserved.md)
+ [이전 세대 노드 마이그레이션](CacheNodes.NodeMigration.md)

노드와 관련된 몇 가지 중요한 작업은 다음과 같습니다.
+ [ElastiCache 클러스터에 노드 추가](Clusters.AddNode.md)
+ [ElastiCache 클러스터에서 노드 제거](Clusters.DeleteNode.md)
+ [ElastiCache 규모 조정](Scaling.md)
+ [ElastiCache에서 연결 엔드포인트 찾기](Endpoints.md)
+ [클러스터의 노드 자동 식별(Memcached)](AutoDiscovery.md)

# ElastiCache 노드 상태 보기
<a name="Nodes.viewing"></a>

[ElastiCache 콘솔](https://console.aws.amazon.com/elasticache/)을 사용하면 ElastiCache 노드의 상태에 빠르게 액세스할 수 있습니다. ElastiCache 노드의 상태를 통해 노드 상태를 알 수 있습니다. 다음 절차를 사용하여 Amazon ElastiCache 콘솔,AWS CLI명령 또는 API 작업에서 ElastiCache 노드 상태를 볼 수 있습니다. Amazon ElastiCache 

ElastiCache 노드의 가능한 상태 값은 다음 표에 나와 있습니다. 이 표에는 ElastiCache 노드에 대한 요금 청구 여부도 나와 있습니다.


| **유형** | **청구** | **설명** | 
| --- | --- | --- | 
|  `available`  |  청구  |  ElastiCache 노드 상태가 양호하며 사용할 수 있습니다.  | 
|  `creating`  |  미청구  |  ElastiCache 노드가 생성 중입니다. 생성 중인 노드에는 액세스할 수 없습니다.  | 
|  `deleting`  |  미청구  |  ElastiCache 노드가 삭제 중입니다.  | 
|  `modifying`  |  청구  |  고객의 노드 수정 요청으로 인해 ElastiCache 노드를 수정 중입니다.  | 
|  `updating`  |  청구  |  **업데이트** 상태를 통해 Amazon ElastiCache 노드가 다음 중 하나 이상에 해당하는지 알 수 있습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/Nodes.viewing.html)  | 
|  `rebooting cluster nodes`  |  청구  |  고객의 요청 또는 노드 재부팅이 필요한 Amazon ElastiCache 프로세스로 인해 ElastiCache 노드를 재부팅 중입니다.  | 
|  `incompatible_parameters`  |  미청구  |  Amazon ElastiCache는 노드의 파라미터 그룹에서 지정된 파라미터가 노드와 호환되지 않아 노드를 시작할 수 없습니다. 노드에 대한 액세스 권한을 다시 얻으려면 파라미터 변경 사항을 되돌리거나 노드와 호환되는 파라미터를 정의해야 합니다. 호환되지 않는 파라미터에 대한 자세한 내용은 ElastiCache 노드에 대한 [이벤트](https://us-east-1.console.aws.amazon.com/elasticache/home?region=us-east-1#/events) 목록을 확인하세요.  | 
|  `incompatible_network`  |  미청구  |  호환되지 않는 네트워크 상태를 통해 Amazon ElastiCache 노드가 다음 중 하나 이상에 해당하는지 알 수 있습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/Nodes.viewing.html)  | 
|  `restore_failed`  |  미청구  |  복원 실패 상태를 통해 Amazon ElastiCache 노드가 다음 중 하나 이상에 해당하는지 알 수 있습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/Nodes.viewing.html)  | 
|  `snapshotting`  |  청구  |  ElastiCache가 Valkey 또는 Redis OSS 노드의 스냅샷을 생성하고 있습니다.  | 

## 콘솔을 사용하여 ElastiCache 노드 상태 보기
<a name="Nodes.viewing.console"></a>

콘솔을 사용하여 ElastiCache 노드 상태를 보려면 다음과 같이 하세요.

1. 에 로그인AWS Management Console하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) Amazon ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Redis OSS 클러스터** 또는 **Memcached 클러스터**를 선택합니다. ElastiCache 노드 목록과 함께 **캐시 페이지**가 표시됩니다. 각 노드에 대한 상태 값이 표시됩니다.

1. 그런 다음 캐시의 **서비스 업데이트** 탭으로 이동하여 캐시에 적용되는 서비스 업데이트 목록을 표시할 수 있습니다.

## 를 사용하여 ElastiCache 노드 상태 보기AWS CLI
<a name="Nodes.viewing.cli"></a>

를 사용하여 ElastiCache 노드와 해당 상태 정보를 보려면 `describe-cache-cluster` 명령을AWS CLI사용합니다. 예를 들어 다음AWS CLI명령은 각 ElastiCache 노드를 표시합니다.

```
aws elasticache describe-cache-clusters
```

## API를 통해 ElastiCache 노드 상태 보기
<a name="Nodes.viewing.api"></a>

 Amazon ElastiCache API를 사용하여 ElastiCache 노드의 상태를 보려면 `ShowCacheNodeInfo` 플래그와 함께 `DescribeCacheClusteroperation`을 직접 호출하여 각 캐시 노드에 대한 정보를 검색합니다.

# Valkey 또는 Redis OSS 노드 및 샤드
<a name="CacheNodes.NodeGroups"></a>

샤드(API 및 CLI에서 노드 그룹)는 노드의 계층적 정렬이며 각각 클러스터에 래핑되어 있습니다. 샤드는 복제를 지원합니다. 샤드에서 노드 하나가 읽기/쓰기 프라이머리 노드로 사용됩니다. 샤드에 있는 다른 모든 노드는 프라이머리 노드의 읽기 전용 복제본 역할을 합니다. Valkey 또는 Redis OSS 버전 3.2 이상에서는 클러스터 내에서 여러 샤드를 지원합니다(API 및 CLI에서 복제 그룹). 이 지원으로 인해 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 데이터를 파티셔닝할 수 있습니다.

다음 다이어그램에서는 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터와 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 차이를 보여줍니다.

![\[이미지: Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 및 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 샤드(API/CLI: 노드 그룹)\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-NodeGroups.png)


Valkey 또는 Redis OSS(클러스터 모드 사용 설정됨) 클러스터는 샤드를 통해 복제를 지원합니다. API 작업 [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)(CLI: [describe-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-replication-groups.html))는 멤버 노드를 포함한 노드 그룹, 노드 그룹에서의 노드 역할, 기타 정보를 나열합니다.

Valkey 또는 Redis OSS 클러스터를 생성할 때 클러스터링을 활성화하여 클러스터를 생성할지 여부를 지정합니다. Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터는 읽기 복제본 노드를 추가하거나(총 5개까지) 삭제하여 수평으로 조정할 수 있는 1개 이내의 샤드를 포함합니다. 자세한 내용은 [고가용성을 위한 복제 그룹 사용](Replication.md), [Valkey 또는 Redis OSS에 대한 읽기 전용 복제본 추가(클러스터 모드 비활성화됨)](Replication.AddReadReplica.md) 또는 [Valkey 또는 Redis OSS에 대한 읽기 전용 복제본 삭제(클러스터 모드 비활성화됨)](Replication.RemoveReadReplica.md) 섹션을 참조하세요. Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터 역시 노드 유형을 변경하여 수직으로 조정할 수 있습니다. 자세한 내용은 [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 복제본 노드 규모 조정](Scaling.RedisReplGrps.md) 섹션을 참조하세요.

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

 5.0.6 이하의 버전에서 한도는 클러스터당 250개입니다.

한도 증가를 요청하려면 [AWS 서비스 한도](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)를 참조하고 한도 유형을 **인스턴스 유형별 클러스터당 노드**로 선택하세요.

Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터가 생성된 후에는 변경(스케일 인 또는 스케일 아웃)이 가능합니다. 자세한 내용은 [ElastiCache 규모 조정](Scaling.md) 및 [노드 대체(Valkey 및 Redis OSS)](CacheNodes.NodeReplacement.md)(을)를 참조하세요.

새 클러스터를 생성할 때 빈 상태로 시작되지 않도록 이전 클러스터의 데이터를 시드할 수 있습니다. 이는 클러스터 그룹에 이전 클러스터와 동일한 수의 샤드가 있는 경우에만 사용할 수 있는 방식입니다. 이렇게 하면 노드 유형이나 엔진 버전을 변경해야 하는 경우 도움이 됩니다. 자세한 정보는 [수동 백업 지원](backups-manual.md) 및 [백업에서 새 캐시로 복원](backups-restoring.md) 섹션을 참조하세요.

# 노드에 연결
<a name="nodes-connecting"></a>

## Valkey 또는 Redis OSS 노드에 연결
<a name="nodes-connecting.val"></a>

클러스터의 Valkey 또는 Redis OSS 노드에 연결하기 전에 노드의 엔드포인트가 있어야 합니다. 엔드포인트를 찾으려면 다음을 참조하세요.
+ [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 엔드포인트 찾기(콘솔)](Endpoints.md#Endpoints.Find.Redis)
+ [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에 대한 엔드포인트 찾기(콘솔)](Endpoints.md#Endpoints.Find.RedisCluster)
+ [엔드포인트 찾기(AWS CLI)](Endpoints.md#Endpoints.Find.CLI)
+ [엔드포인트 찾기(ElastiCache API)](Endpoints.md#Endpoints.Find.API)

다음 예제에서는 *valkey-cli* 유틸리티를 사용하여 Valkey 또는 Redis OSS를 실행하는 클러스터에 연결합니다.

**참고**  
사용 가능한 명령에 대한 자세한 내용은 [Commands](http://valkey.io/commands) 웹페이지를 참조하십시오.

***valkey-cli*를 사용하여 Valkey 또는 Redis OSS 클러스터에 연결하려면**

1. 선택한 연결 유틸리티를 사용하여 Amazon EC2 인스턴스에 연결하세요.
**참고**  
Amazon EC2 인스턴스에 연결하는 방법에 대한 지침은 [Amazon EC2 시작 안내서](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)를 참조하세요.

1. `valkey-cli`를 구축하려면, GNU 컴파일러 모음(`gcc`)을 다운로드하여 설치합니다. EC2 인스턴스의 명령 프롬프트에서 다음 명령을 입력하고 확인 프롬프트에서 `y`를 입력합니다.

   ```
   sudo yum install gcc
   ```

   다음과 같이 유사한 출력이 나타납니다.

   ```
   Loaded plugins: priorities, security, update-motd, upgrade-helper
   Setting up Install Process
   Resolving Dependencies
   --> Running transaction check
   
   ...(output omitted)...
   
   Total download size: 27 M
   Installed size: 53 M
   Is this ok [y/N]: y
   Downloading Packages:
   (1/11): binutils-2.22.52.0.1-10.36.amzn1.x86_64.rpm      | 5.2 MB     00:00     
   (2/11): cpp46-4.6.3-2.67.amzn1.x86_64.rpm                | 4.8 MB     00:00     
   (3/11): gcc-4.6.3-3.10.amzn1.noarch.rpm                  | 2.8 kB     00:00     
   
   ...(output omitted)...
   
   Complete!
   ```

1. *valkey-cli* 유틸리티를 다운로드하고 컴파일합니다. 이 유틸리티는 Valkey 소프트웨어 배포에 포함되어 있습니다. EC2 인스터스의 명령 프롬프트에 다음 명령을 입력합니다.
**참고**  
Ubuntu 시스템의 경우 `make`를 실행하기 전에 `make distclean`을 실행합니다.

   ```
   wget https://github.com/valkey-io/valkey/archive/refs/tags/8.0.0.tar.gz
   tar xvzf valkey-8.0.0.tar.gz
   cd valkey-8.0.0
   make distclean      # ubuntu systems only
   make
   ```

1. EC2 인스터스의 명령 프롬프트에 다음 명령을 입력합니다.

   ```
   src/valkey-cli -c -h mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com -p 6379
   ```

   다음과 유사한 Valkey 또는 Redis OSS 명령 프롬프트가 나타납니다.

   ```
   redis mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 6379>
   ```

1. Valkey 또는 Redis OSS 명령을 실행하여 연결을 테스트합니다.

    이제 클러스터에 연결되어 Valkey 또는 Redis OSS 명령을 실행할 수 있습니다. 다음은 Valkey 또는 Redis OSS 응답이 있는 몇 가지 예제 명령입니다.

   ```
   set a "hello"          // Set key "a" with a string value and no expiration
   OK
   get a                  // Get value for key "a"
   "hello"
   get b                  // Get value for key "b" results in miss
   (nil)				
   set b "Good-bye" EX 5  // Set key "b" with a string value and a 5 second expiration
   get b
   "Good-bye"
                      // wait 5 seconds
   get b
   (nil)                  // key has expired, nothing returned
   quit                   // Exit from valkey-cli
   ```

Secure Sockets Layer(SSL) 암호화(전송 중 데이터 암호화 활성화)가 지원되는 노드 또는 클러스터를 연결하는 방법은 [ElastiCache 전송 중 데이터 암호화(TLS)](in-transit-encryption.md) 섹션을 참조하세요.

## Memcached 노드에 연결
<a name="nodes-connecting.mem"></a>

Memcached 클러스터에 연결하기 전에 노드의 엔드포인트가 있어야 합니다. 엔드포인트를 찾으려면 다음을 참조하세요.
+ [클러스터 엔드포인트 찾기(콘솔)(Memcached)](Endpoints.md#Endpoints.Find.Memcached)
+ [엔드포인트 찾기(AWS CLI)](Endpoints.md#Endpoints.Find.CLI)
+ [엔드포인트 찾기(ElastiCache API)](Endpoints.md#Endpoints.Find.API)

다음 예제에서 *telnet* 유틸리티를 사용하여 Memcached를 실행하는 노드에 연결합니다.

**참고**  
Memcached 및 사용 가능한 Memcached 명령에 대한 자세한 내용은 [Memcached](http://memcached.org/) 웹 사이트를 참조하세요.

***telnet*을 사용하여 노드에 연결하려면**

1. 선택한 연결 유틸리티를 사용하여 Amazon EC2 인스턴스에 연결하세요.
**참고**  
 Amazon EC2 인스턴스에 연결하는 방법에 대한 지침은 [Amazon EC2 시작 안내서](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)를 참조하세요.

1. *telnet* 유틸리티를 다운로드하여 Amazon EC2 인스턴스에 설치합니다. Amazon EC2 인스턴스 명령 프롬프트에서 다음 명령을 입력하고 명령 프롬프트에 *y*를 입력합니다.

   ```
   sudo yum install telnet
   ```

   다음과 같이 유사한 출력이 나타납니다.

   ```
   Loaded plugins: priorities, security, update-motd, upgrade-helper
   Setting up Install Process
   Resolving Dependencies
   --> Running transaction check
   
   ...(output omitted)...
   
   Total download size: 63 k
   Installed size: 109 k
   Is this ok [y/N]: y
   Downloading Packages:
   telnet-0.17-47.7.amzn1.x86_64.rpm                        |  63 kB     00:00  
   
   ...(output omitted)...
   
   Complete!
   ```

1. Amazon EC2 인스턴스의 명령 프롬프트에서 다음 명령을 입력하고 노드의 엔드포인트를 이 예제에 표시된 것으로 대체합니다.

   ```
   telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211
   ```

   다음과 같이 유사한 출력이 나타납니다.

   ```
   Trying 128.0.0.1...
   Connected to mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com.
   Escape character is '^]'.
   >
   ```

1. Memcached 명령을 실행하여 연결을 테스트합니다.

    이제 노드에 연결되어 Memcached 명령을 실행할 수 있습니다. 다음은 예입니다.

   ```
   set a 0 0 5      // Set key "a" with no expiration and 5 byte value
   hello            // Set value as "hello"
   STORED
   get a            // Get value for key "a"
   VALUE a 0 5
   hello
   END
   get b            // Get value for key "b" results in miss
   END
   >
   ```

# 지원되는 노드 유형
<a name="CacheNodes.SupportedTypes"></a>

ElastiCache는 다음 노드 유형을 지원합니다. 일반적으로, 현재 세대 유형은 이전 세대의 동급 제품에 비해 더 많은 메모리와 컴퓨팅 파워를 더 저렴하게 제공합니다.

각 노드 유형의 성능 세부 정보에 대한 자세한 내용은 [Amazon EC2 인스턴스 유형](https://aws.amazon.com/ec2/instance-types/)을 참조하세요.

**참고**  
Amazon ElastiCache는 T2 인스턴스를 이전 세대 상태로 전환하고 있습니다. 더 이상 T2 인스턴스를 사용하여 새 ElastiCache 클러스터를 생성하거나 새 T2 예약 노드를 구매할 수 없습니다. 기존 T2 클러스터 또는 예약에는 영향을 주지 않습니다. 성능 및 비용 효율성을 높이려면 T3 또는 T4g 인스턴스와 같은 최신 인스턴스 유형으로 업그레이드하는 것이 좋습니다.

**참고**  
AWS아시아 태평양(태국) 및 멕시코(중부) 리전에서 지원되는 인스턴스 유형은 다음과 같습니다.  
**m7g/r7g:** large, xl, 2xl, 4xl, 8xl, 12xl 및 16xl.
**t3/t4g:** micro, small 및 medium.

사용할 노드 크기에 대한 자세한 내용은 [노드 크기 선택](CacheNodes.SelectSize.md) 섹션을 참조하세요.

**Topics**
+ [현재 세대(Memcached)](#CacheNodes.CurrentGen-Memcached)
+ [현재 세대(Valkey 또는 Redis OSS)](#CacheNodes.CurrentGen)
+ [AWS리전별로 지원되는 노드 유형](#CacheNodes.SupportedTypesByRegion)
+ [성능 순간 확장 가능 인스턴스](#CacheNodes.Burstable)
+ [관련 정보](#CacheNodes.RelatedInfo)

## 현재 세대(Memcached)
<a name="CacheNodes.CurrentGen-Memcached"></a>

다음 표는 네트워크 I/O 크레딧 메커니즘을 사용하여 기준 대역폭을 초과하여 버스트하는 인스턴스 유형에 대한 기준 및 버스트 대역폭을 보여줍니다.

**참고**  
버스트 가능 네트워크 성능을 발휘하는 인스턴스 유형은 네트워크 I/O 크레딧 메커니즘을 사용하여 최선의 노력을 기준으로 기준 대역폭을 초과하여 버스트할 수 있습니다.

**일반**


| 인스턴스 유형 | 지원되는 최소 Memcached 버전 | 기준 대역폭(Gbps) | 버스트 대역폭(Gbps) | 
| --- | --- | --- | --- | 
| cache.m7g.large |  | 0.937 | 12.5 | 
| cache.m7g.xlarge |  | 1.876 | 12.5 | 
| cache.m7g.2xlarge |  | 3.75 | 15 | 
| cache.m7g.4xlarge |  | 7.5 | 15 | 
| cache.m7g.8xlarge |  | 15 | 해당 사항 없음 | 
| cache.m7g.12xlarge |  | 22.5 | 해당 사항 없음 | 
| cache.m7g.16xlarge |  | 30 | 해당 사항 없음 | 
| cache.m6g.large | 1.5.16 | 0.75 | 10.0 | 
| cache.m6g.xlarge | 1.5.16 | 1.25 | 10.0 | 
| cache.m6g.2xlarge | 1.5.16 | 2.5 | 10.0 | 
| cache.m6g.4xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.m6g.8xlarge | 1.5.16 | 12 | 해당 사항 없음 | 
| cache.m6g.12xlarge | 1.5.16 | 20 | 해당 사항 없음 | 
| cache.m6g.16xlarge | 1.5.16 | 25 | 해당 사항 없음 | 
| cache.m5.large | 1.5.16 | 0.75 | 10.0 | 
| cache.m5.xlarge | 1.5.16 | 1.25 | 10.0 | 
| cache.m5.2xlarge | 1.5.16 | 2.5 | 10.0 | 
| cache.m5.4xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.m5.12xlarge | 1.5.16 | 해당 사항 없음 | 해당 사항 없음 | 
| cache.m5.24xlarge | 1.5.16 | 해당 사항 없음 | 해당 사항 없음 | 
| cache.m4.large | 1.5.16 | 0.45 | 1.2 | 
| cache.m4.xlarge | 1.5.16 | 0.75 | 2.8 | 
| cache.m4.2xlarge | 1.5.16 | 1.0 | 10.0 | 
| cache.m4.4xlarge | 1.5.16 | 2.0 | 10.0 | 
| cache.m4.10xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.t4g.micro | 1.5.16 | 0.064 | 5.0 | 
| cache.t4g.small | 1.5.16 | 0.128 | 5.0 | 
| cache.t4g.medium | 1.5.16 | 0.256 | 5.0 | 
| cache.t3.micro | 1.5.16 | 0.064 | 5.0 | 
| cache.t3.small | 1.5.16 | 0.128 | 5.0 | 
| cache.t3.medium | 1.5.16 | 0.256 | 5.0 | 
| cache.t2.micro | 1.5.16 | 0.064 | 1.024 | 
| cache.t2.small | 1.5.16 | 0.128 | 1.024 | 
| cache.t2.medium | 1.5.16 | 0.256 | 1.024 | 

**Memcached에 최적화된 메모리**


| 인스턴스 유형 | 지원되는 최소 버전 | 기준 대역폭(Gbps) | 버스트 대역폭(Gbps) | 
| --- | --- | --- | --- | 
| cache.r7g.large |  | 0.937 | 12.5 | 
| cache.r7g.xlarge |  | 1.876 | 12.5 | 
| cache.r7g.2xlarge |  | 3.75 | 15 | 
| cache.r7g.4xlarge |  | 7.5 | 15 | 
| cache.r7g.8xlarge |  | 15 | 해당 사항 없음 | 
| cache.r7g.12xlarge |  | 22.5 | 해당 사항 없음 | 
| cache.r7g.16xlarge |  | 30 | 해당 사항 없음 | 
| cache.r6g.large | 1.5.16 | 0.75 | 10.0 | 
| cache.r6g.xlarge | 1.5.16 | 1.25 | 10.0 | 
| cache.r6g.2xlarge | 1.5.16 | 2.5 | 10.0 | 
| cache.r6g.4xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.r6g.8xlarge | 1.5.16 | 12 | 해당 사항 없음 | 
| cache.r6g.12xlarge | 1.5.16 | 20 | 해당 사항 없음 | 
| cache.r6g.16xlarge | 1.5.16 | 25 | 해당 사항 없음 | 
| cache.r5.large | 1.5.16 | 0.75 | 10.0 | 
| cache.r5.xlarge | 1.5.16 | 1.25 | 10.0 | 
| cache.r5.2xlarge | 1.5.16 | 2.5 | 10.0 | 
| cache.r5.4xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.r5.12xlarge | 1.5.16 | 20 | 해당 사항 없음 | 
| cache.r5.24xlarge | 1.5.16 | 25 | 해당 사항 없음 | 
| cache.r4.large | 1.5.16 | 0.75 | 10.0 | 
| cache.r4.xlarge | 1.5.16 | 1.25 | 10.0 | 
| cache.r4.2xlarge | 1.5.16 | 2.5 | 10.0 | 
| cache.r4.4xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.r4.8xlarge | 1.5.16 | 12 | 해당 사항 없음 | 
| cache.r4.16xlarge | 1.5.16 | 25 | 해당 사항 없음 | 

**Memcached에 최적화된 네트워크**


| 인스턴스 유형 | 지원되는 최소 버전 | 기준 대역폭(Gbps) | 버스트 대역폭(Gbps) | 
| --- | --- | --- | --- | 
| cache.c7gn.large | 1.6.6 | 6.25 | 30 | 
| cache.c7gn.xlarge | 1.6.6 | 12.5 | 40 | 
| cache.c7gn.2xlarge | 1.6.6 | 25 | 50 | 
| cache.c7gn.4xlarge | 1.6.6 | 50 | 해당 사항 없음 | 
| cache.c7gn.8xlarge | 1.6.6 | 100 | 해당 사항 없음 | 
| cache.c7gn.12xlarge | 1.6.6 | 150 | 해당 사항 없음 | 
| cache.c7gn.16xlarge | 1.6.6 | 200 | 해당 사항 없음 | 

## 현재 세대(Valkey 또는 Redis OSS)
<a name="CacheNodes.CurrentGen"></a>

이전 세대에 대한 자세한 내용은 [이전 세대 노드](https://aws.amazon.com/elasticache/previous-generation/)를 참조하세요.

**참고**  
버스트 가능 네트워크 성능을 발휘하는 인스턴스 유형은 네트워크 I/O 크레딧 메커니즘을 사용하여 최선의 노력을 기준으로 기준 대역폭을 초과하여 버스트할 수 있습니다.

**일반**


| 인스턴스 유형 | 지원되는 최소 Redis OSS 버전 | 향상된 I/O(Redis OSS 5.0.6 이상) | TLS 오프로딩(Redis OSS 6.2.5 이상) | 향상된 I/O 멀티플렉싱(Redis OSS 7.0.4 이상) | 기준 대역폭(Gbps) | 버스트 대역폭(Gbps) | 
| --- | --- | --- | --- | --- | --- | --- | 
| cache.m7g.large | 6.2 | N | N | N | 0.937 | 12.5 | 
| cache.m7g.xlarge | 6.2 | Y | Y | Y | 1.876 | 12.5 | 
| cache.m7g.2xlarge | 6.2 | Y | Y | Y | 3.75 | 15 | 
| cache.m7g.4xlarge | 6.2 | Y | Y | Y | 7.5 | 15 | 
| cache.m7g.8xlarge | 6.2 | Y | Y | Y | 15 | 해당 사항 없음 | 
| cache.m7g.12xlarge | 6.2 | Y | Y | Y | 22.5 | 해당 사항 없음 | 
| cache.m7g.16xlarge | 6.2 | Y | Y | Y | 30 | 해당 사항 없음 | 
| cache.m6g.large | 5.0.6 | N | N | N | 0.75 | 10.0 | 
| cache.m6g.xlarge | 5.0.6 | Y | Y | Y | 1.25 | 10.0 | 
| cache.m6g.2xlarge | 5.0.6 | Y | Y | Y | 2.5 | 10.0 | 
| cache.m6g.4xlarge | 5.0.6 | Y | Y | Y | 5.0 | 10.0 | 
| cache.m6g.8xlarge | 5.0.6 | Y | Y | Y | 12 | 해당 사항 없음 | 
| cache.m6g.12xlarge | 5.0.6 | Y | Y | Y | 20 | 해당 사항 없음 | 
| cache.m6g.16xlarge | 5.0.6 | Y | Y | Y | 25 | 해당 사항 없음 | 
| cache.m5.large | 3.2.4 | N | N | N | 0.75 | 10.0 | 
| cache.m5.xlarge | 3.2.4 | Y | N | N | 1.25 | 10.0 | 
| cache.m5.2xlarge | 3.2.4 | Y | Y | Y | 2.5 | 10.0 | 
| cache.m5.4xlarge | 3.2.4 | Y | Y | Y | 5.0 | 10.0 | 
| cache.m5.12xlarge | 3.2.4 | Y | Y | Y | 12 | 해당 사항 없음 | 
| cache.m5.24xlarge | 3.2.4 | Y | Y | Y | 25 | 해당 사항 없음 | 
| cache.m4.large | 3.2.4 | N | N | N | 0.45 | 1.2 | 
| cache.m4.xlarge | 3.2.4 | Y | N | N | 0.75 | 2.8 | 
| cache.m4.2xlarge | 3.2.4 | Y | Y | Y | 1.0 | 10.0 | 
| cache.m4.4xlarge | 3.2.4 | Y | Y | Y | 2.0 | 10.0 | 
| cache.m4.10xlarge | 3.2.4 | Y | Y | Y | 5.0 | 10.0 | 
| cache.t4g.micro | 3.2.4 | N | N | N | 0.064 | 5.0 | 
| cache.t4g.small | 5.0.6 | N | N | N | 0.128 | 5.0 | 
| cache.t4g.medium | 5.0.6 | N | N | N | 0.256 | 5.0 | 
| cache.t3.micro | 3.2.4 | N | N | N | 0.064 | 5.0 | 
| cache.t3.small | 3.2.4 | N | N | N | 0.128 | 5.0 | 
| cache.t3.medium | 3.2.4 | N | N | N | 0.256 | 5.0 | 
| cache.t2.micro | 3.2.4 | N | N | N | 0.064 | 1.024 | 
| cache.t2.small | 3.2.4 | N | N | N | 0.128 | 1.024 | 
| cache.t2.medium | 3.2.4 | N | N | N | 0.256 | 1.024 | 

**메모리 최적화**


| 인스턴스 유형 | 지원되는 최소 Redis OSS 버전 | 향상된 I/O(Redis OSS 5.0.6 이상) | TLS 오프로딩(Redis OSS 6.2.5 이상) | 향상된 I/O 멀티플렉싱(Redis OSS 7.0.4 이상) | 기준 대역폭(Gbps) | 버스트 대역폭(Gbps) | 
| --- | --- | --- | --- | --- | --- | --- | 
| cache.r7g.large | 6.2 | N | N | N | 0.937 | 12.5 | 
| cache.r7g.xlarge | 6.2 | Y | Y | Y | 1.876 | 12.5 | 
| cache.r7g.2xlarge | 6.2 | Y | Y | Y | 3.75 | 15 | 
| cache.r7g.4xlarge | 6.2 | Y | Y | Y | 7.5 | 15 | 
| cache.r7g.8xlarge | 6.2 | Y | Y | Y | 15 | 해당 사항 없음 | 
| cache.r7g.12xlarge | 6.2 | Y | Y | Y | 22.5 | 해당 사항 없음 | 
| cache.r7g.16xlarge | 6.2 | Y | Y | Y | 30 | 해당 사항 없음 | 
| cache.r6g.large | 5.0.6 | N | N | N | 0.75 | 10.0 | 
| cache.r6g.xlarge | 5.0.6 | Y | Y | Y | 1.25 | 10.0 | 
| cache.r6g.2xlarge | 5.0.6 | Y | Y | Y | 2.5 | 10.0 | 
| cache.r6g.4xlarge | 5.0.6 | Y | Y | Y | 5.0 | 10.0 | 
| cache.r6g.8xlarge | 5.0.6 | Y | Y | Y | 12 | 해당 사항 없음 | 
| cache.r6g.12xlarge | 5.0.6 | Y | Y | Y | 20 | 해당 사항 없음 | 
| cache.r6g.16xlarge | 5.0.6 | Y | Y | Y | 25 | 해당 사항 없음 | 
| cache.r5.large | 3.2.4 | N | N | N | 0.75 | 10.0 | 
| cache.r5.xlarge | 3.2.4 | Y | N | N | 1.25 | 10.0 | 
| cache.r5.2xlarge | 3.2.4 | Y | Y | Y | 2.5 | 10.0 | 
| cache.r5.4xlarge | 3.2.4 | Y | Y | Y | 5.0 | 10.0 | 
| cache.r5.12xlarge | 3.2.4 | Y | Y | Y | 12 | 해당 사항 없음 | 
| cache.r5.24xlarge | 3.2.4 | Y | Y | Y | 25 | 해당 사항 없음 | 
| cache.r4.large | 3.2.4 | N | N | N | 0.75 | 10.0 | 
| cache.r4.xlarge | 3.2.4 | Y | N | N | 1.25 | 10.0 | 
| cache.r4.2xlarge | 3.2.4 | Y | Y | Y | 2.5 | 10.0 | 
| cache.r4.4xlarge | 3.2.4 | Y | Y | Y | 5.0 | 10.0 | 
| cache.r4.8xlarge | 3.2.4 | Y | Y | Y | 12 | 해당 사항 없음 | 
| cache.r4.16xlarge | 3.2.4 | Y | Y | Y | 25 | 해당 사항 없음 | 

**데이터 계층화에 최적화된 메모리**


| 인스턴스 유형 | 지원되는 최소 Redis OSS 버전 | 향상된 I/O(Redis OSS 5.0.6 이상) | TLS 오프로딩(Redis OSS 6.2.5 이상) | 향상된 I/O 멀티플렉싱(Redis OSS 7.0.4 이상) | 기준 대역폭(Gbps) | 버스트 대역폭(Gbps) | 
| --- | --- | --- | --- | --- | --- | --- | 
| cache.r6gd.xlarge | 6.2.0 | Y | N | N | 1.25 | 10 | 
| cache.r6gd.2xlarge | 6.2.0 | Y | Y | Y | 2.5 | 10 | 
| cache.r6gd.4xlarge | 6.2.0 | Y | Y | Y | 5.0 | 10 | 
| cache.r6gd.8xlarge | 6.2.0 | Y | Y | Y | 12 | 해당 사항 없음 | 
| cache.r6gd.12xlarge | 6.2.0 | Y | Y | Y | 20 | 해당 사항 없음 | 
| cache.r6gd.16xlarge | 6.2.0 | Y | Y | Y | 25 | 해당 사항 없음 | 

**네트워크 최적화**


| 인스턴스 유형 | 지원되는 최소 Redis OSS 버전 | 향상된 I/O(Redis OSS 5.0.6 이상) | TLS 오프로딩(Redis OSS 6.2.5 이상) | 향상된 I/O 멀티플렉싱(Redis OSS 7.0.4 이상) | 기준 대역폭(Gbps) | 버스트 대역폭(Gbps) | 
| --- | --- | --- | --- | --- | --- | --- | 
| cache.c7gn.large | 6.2 | N | N | N | 6.25 | 30 | 
| cache.c7gn.xlarge | 6.2 | Y | Y | Y | 12.5 | 40 | 
| cache.c7gn.2xlarge | 6.2 | Y | Y | Y | 25 | 50 | 
| cache.c7gn.4xlarge | 6.2 | Y | Y | Y | 50 | 해당 사항 없음 | 
| cache.c7gn.8xlarge | 6.2 | Y | Y | Y | 100 | 해당 사항 없음 | 
| cache.c7gn.12xlarge | 6.2 | Y | Y | Y | 150 | 해당 사항 없음 | 
| cache.c7gn.16xlarge | 6.2 | Y | Y | Y | 200 | 해당 사항 없음 | 

## AWS리전별로 지원되는 노드 유형
<a name="CacheNodes.SupportedTypesByRegion"></a>

지원되는 노드 유형은AWS리전마다 다를 수 있습니다. 자세한 내용은 [Amazon ElastiCache 요금](https://aws.amazon.com/elasticache/pricing/)을 참조하세요.

## 성능 순간 확장 가능 인스턴스
<a name="CacheNodes.Burstable"></a>

Amazon ElastiCache에서 범용 순간 확장 가능 T4g, T3 표준 및 T2 표준 캐시 노드를 실행할 수 있습니다. 이러한 노드는 기준 수준의 CPU 성능과 더불어 누적된 크레딧이 소진될 때까지 언제든 CPU 사용량을 순간 확장할 수 있는 기능을 제공합니다. *CPU 크레딧*은 1분 동안 CPU 코어의 전체 성능을 제공합니다.

Amazon ElastiCache의 T4g, T3 및 T2 노드는 표준으로 구성되고 평균 CPU 사용률이 인스턴스의 기준 성능보다 일관되게 낮은 워크로드에 적합합니다. 기준 이상으로 순간 확장하려면 노드는 CPU 크레딧 밸런스에 누적한 크레딧을 사용합니다. 누적된 크레딧에서 노드가 부족한 경우, 성능이 점진적으로 기준 성능 수준으로 저하됩니다. 이렇게 점진적으로 저하되면 누적된 CPU 크레딧 밸런스가 고갈될 때 노드에 급격한 성능 저하가 발생하지 않습니다. 자세한 내용은 *Amazon EC2 사용 설명서***의 [성능 순간 확장 가능 인스턴스에 대한 CPU 크레딧 및 기준 성능](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html) 섹션을 참조하세요.

다음 표에는 성능 순간 확장 가능 노드 유형과 시간당 CPU 크레딧이 획득되는 속도가 나와 있습니다. 또한 노드가 누적할 수 있는 최대 획득 CPU 크레딧 개수와 노드당 vCPU 개수도 보여줍니다. 또한 기준 성능 수준을 전체 코어 성능의 백분율로 제공합니다(단일 vCPU 사용).


| 노드 유형 | 시간당 지급되는 CPU 크레딧 |  누적 가능한 최대 지급된 크레딧\$1 |  vCPU  |  vCPU당 기준 성능  |  메모리(GiB)  |  네트워크 성능  | 
| --- | --- | --- | --- | --- | --- | --- | 
| t4g.micro | 12 | 288 | 2 | 10% | 0.5 | 최대 5기가비트 | 
| t4g.small | 24 | 576 | 2 | 20% | 1.37 | 최대 5기가비트 | 
| t4g.medium | 24 | 576 | 2 | 20% | 3.09 | 최대 5기가비트 | 
| t3.micro | 12 | 288 | 2 | 10% | 0.5 | 최대 5기가비트 | 
| t3.small | 24 | 576 | 2 | 20% | 1.37 | 최대 5기가비트 | 
| t3.medium | 24 | 576 | 2 | 20% | 3.09 | 최대 5기가비트 | 
| t2.micro | 6 | 144 | 1 | 10% | 0.5 | 낮음에서 중간 | 
| t2.small | 12 | 288 | 1 | 20% | 1.55 | 낮음에서 중간 | 
| t2.medium | 24 | 576 | 2 | 20% | 3.22 | 낮음에서 중간 | 

\$1 누적될 수 있는 크레딧은 수는 24시간 동안 획득할 수 있는 크레딧의 수와 동일합니다.

\$1\$1 테이블의 기준 성능은 vCPU 단위로 계산됩니다. vCPU가 1개 이상인 일부 노드 크기입니다. vCPU 백분율에 vCPU 개수를 곱하여 노드의 기준 CPU 사용률을 계산합니다.

다음 CPU 크레딧 지표는 T3 및 T4g 성능 순간 확장 가능 인스턴스에 사용할 수 있습니다.

**참고**  
T2 성능 순간 확장 가능 인스턴스에는 이러한 지표를 사용할 수 없습니다.
+ `CPUCreditUsage`
+ `CPUCreditBalance`

이 지표에 대한 자세한 내용은 [CPU 크레딧 지표](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html#cpu-credit-metrics) 섹션을 참조하세요.

또한 다음 사항을 숙지해야 합니다.
+ 모든 현재 세대 노드 유형은 기본적으로 Amazon VPC를 기반으로 Virtual Private Cloud(VPC)에서 생성됩니다.
+ Redis OSS AOF(append-only files)는 T2 인스턴스에서 지원되지 않습니다. Redis OSS 구성 변수 `appendonly` 및 `appendfsync`는 Redis OSS 버전 2.8.22 이상에서 지원되지 않습니다.

## 관련 정보
<a name="CacheNodes.RelatedInfo"></a>
+ [Amazon ElastiCache 제품 기능 및 세부 정보](https://aws.amazon.com/elasticache/details)
+ [Memcached에 대한 Memcached 노드 유형별 파라미터](ParameterGroups.Engine.md#ParameterGroups.Memcached) 
+ [Valkey 및 Redis OSS 파라미터](ParameterGroups.Engine.md#ParameterGroups.Redis)
+ [전송 중 데이터 암호화(TLS)](in-transit-encryption.md)

# 노드 재부팅
<a name="nodes.rebooting"></a>

일부 변경 사항은 Valkey, Memcached 또는 Redis OSS 클러스터를 재부팅해야 적용됩니다. 예를 들어, 일부 파라미터는 파라미터 그룹의 파라미터 값을 변경할 경우 재부팅해야 변경 사항이 적용됩니다.

**Topics**
+ [Redis OSS 노드 재부팅(클러스터 모드 비활성화 전용)](#nodes.rebooting.redis)
+ [Memcached용 클러스터 재부팅](#Clusters.Rebooting)

## Redis OSS 노드 재부팅(클러스터 모드 비활성화 전용)
<a name="nodes.rebooting.redis"></a>

Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 경우 재부팅 후에만 적용되는 파라미터 그룹의 파라미터는 다음과 같습니다.
+ activerehashing
+ 데이터베이스

Redis 노드는 ElastiCache 콘솔을 통해서만 업데이트할 수 있습니다. 한 번에 하나의 노드만 재부팅할 수 있습니다. 여러 노드를 재부팅하려면 각 노드에 대해 프로세스를 반복해야 합니다.

**Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 파라미터 변경**  
Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 다음 파라미터를 변경하는 경우 다음 확인 단계를 따르십시오.  
activerehashing
데이터베이스
클러스터의 수동 백업을 만듭니다. [수동 백업 지원](backups-manual.md) 섹션을 참조하세요.
Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터를 삭제합니다. [ElastiCache에서 클러스터 삭제](Clusters.Delete.md) 섹션을 참조하세요.
변경한 파라미터 그룹 및 백업을 사용해 클러스터를 복원하여 새로운 클러스터를 시드합니다. [백업에서 새 캐시로 복원](backups-restoring.md) 섹션을 참조하세요.
다른 파라미터를 변경한 경우에는 필요하지 않습니다.

### AWS Management Console 사용
<a name="nodes.rebooting.con"></a>

ElastiCache 콘솔을 사용하여 노드를 재부팅할 수 있습니다.

**노드를 재부팅하려면(콘솔)**

1. AWS Management Console에 로그인하고[ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 상단 오른쪽 모서리의 목록에서 해당하는 AWS 리전을 선택합니다.

1. 왼쪽 탐색 창에서 **Redis OSS**를 선택합니다.

   Redis OSS를 실행하는 클러스터 목록이 표시됩니다.

1. **클러스터 이름**에서 클러스터를 선택합니다.

1. **노드 이름**에서 재부팅할 노드 옆에 있는 라디오 버튼을 선택합니다.

1. **작업**을 선택한 후 **노드 재부팅**을 선택합니다.

여러 노드를 재부팅하려면 재부팅할 노드마다 2단계에서 5단계까지 반복합니다. 한 노드의 재부팅이 완료되기를 기다렸다가 그다음 노드를 재부팅할 필요는 없습니다.

## Memcached용 클러스터 재부팅
<a name="Clusters.Rebooting"></a>

Memcached 클러스터를 재부팅할 때 클러스터가 모든 데이터를 플러시하고 해당 엔진을 다시 시작합니다. 이 프로세스 중에는 클러스터에 액세스할 수 없습니다. 클러스터가 해당 데이터를 모두 플러시하기 때문에 클러스터가 다시 사용 가능한 상태가 되면 빈 클러스터로 시작됩니다.

ElastiCache 콘솔, AWS CLI 또는ElastiCache API를 사용하여 클러스터를 재부팅할 수 있습니다. ElastiCache 콘솔, AWS CLI 또는 ElastiCache API 중 어느 것을 사용하건 단일 클러스터 재부팅만 시작할 수 있습니다. 여러 클러스터를 재부팅하려면 프로세스나 작업에서 반복해야 합니다.

### AWS Management Console 사용
<a name="Clusters.Rebooting.CON"></a>

ElastiCache 콘솔을 사용하여 클러스터를 재부팅할 수 있습니다.

**클러스터를 재부팅하려면(콘솔)**

1. AWS Management Console에 로그인하고[ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 상단 오른쪽 모서리의 목록에서 원하는 AWS 리전을 선택합니다.

1. 탐색 창에서 재부팅하려는 클러스터에서 실행 중인 엔진을 선택합니다.

   선택한 엔진을 실행하는 클러스터 목록이 표시됩니다.

1. 클러스터 이름 왼쪽의 상자를 선택하여 재부팅할 클러스터를 선택합니다.

   **Reboot(재부팅)** 버튼이 활성화됩니다.

   클러스터를 2개 이상 선택하면 **Reboot(재부팅)** 버튼이 비활성화됩니다.

1. **재부팅**을 선택합니다.

   클러스터 재부팅 확인 화면이 나타납니다.

1. 클러스터를 재부팅하려면 [**Reboot**]를 선택합니다. 클러스터 상태가 *rebooting cluster nodes(클러스터 노드 재부팅)*로 변경됩니다.

   클러스터를 재부팅하지 않으려면 [**Cancel**]을 선택합니다.

여러 클러스터를 재부팅하려면 재부팅할 클러스터마다 2단계에서 5단계까지 반복합니다. 한 클러스터의 재부팅이 완료되기를 기다렸다가 그다음 클러스터를 재부팅할 필요는 없습니다.

특정 노드를 재부팅하려면 노드를 선택한 다음**재부팅**을 선택합니다.

### AWS CLI 사용
<a name="Clusters.Rebooting.CLI"></a>

클러스터를 재부팅하려면(AWS CLI) `reboot-cache-cluster` CLI 작업을 사용합니다.

클러스터의 특정 노드를 재부팅하려면 `--cache-node-ids-to-reboot`를 사용하여 재부팅할 특정 클러스터를 나열하세요. 다음 명령을 통해 *my-cluster*의 노드 0001, 0002 및 0004가 재부팅됩니다.

Linux, macOS, Unix의 경우:

```
aws elasticache reboot-cache-cluster \
    --cache-cluster-id my-cluster \
    --cache-node-ids-to-reboot 0001 0002 0004
```

Windows의 경우:

```
aws elasticache reboot-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --cache-node-ids-to-reboot 0001 0002 0004
```

클러스터의 모든 노드를 재부팅하려면 `--cache-node-ids-to-reboot` 파라미터를 사용하고 클러스터의 모든 노드 ID를 나열하세요. 자세한 내용은 [reboot-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/reboot-cache-cluster.html)를 참조하세요.

### ElastiCache API 사용
<a name="Clusters.Rebooting.API"></a>

ElastiCache API를 사용하여 클러스터를 재부팅하려면 `RebootCacheCluster` 작업을 사용하세요.

클러스터의 특정 노드를 재부팅하려면 `CacheNodeIdsToReboot`를 사용하여 재부팅할 특정 클러스터를 나열하세요. 다음 명령을 통해 *my-cluster*의 노드 0001, 0002 및 0004가 재부팅됩니다.

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=RebootCacheCluster
   &CacheClusterId=my-cluster
   &CacheNodeIdsToReboot.member.1=0001
   &CacheNodeIdsToReboot.member.2=0002
   &CacheNodeIdsToReboot.member.3=0004
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

클러스터의 모든 노드를 재부팅하려면 `CacheNodeIdsToReboot` 파라미터를 사용하고 클러스터의 모든 노드 ID를 나열하세요. 자세한 내용은 [RebootCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RebootCacheCluster.html)를 참조하세요.

# 노드 대체(Valkey 및 Redis OSS)
<a name="CacheNodes.NodeReplacement"></a>

Amazon ElastiCache는 인스턴스에 원활하게 적용되는 패치 및 업그레이드를 통해 플릿을 주기적으로 업그레이드합니다. 하지만 기본 호스트에 필수 OS 업데이트를 적용하기 위해 ElastiCache 노드를 다시 시작해야 하는 경우가 있습니다. 보안, 안정성 및 운영 성능을 강화하는 업그레이드 적용에 있어 이러한 교체가 필요합니다.

예정된 노드 교체 주기 이전에 언제든 이러한 교체를 직접 관리할 수 있는 옵션이 있습니다. 직접 대체를 관리할 때 노드를 다시 시작하면 인스턴스에서 OS 업데이트를 수신하고, 예정된 노드 대체는 취소됩니다. 노드 대체가 발생한다는 경고를 계속 수신할 수 있습니다. 이미 유지 관리의 필요성을 수동으로 완화한 경우 이 경고를 무시할 수 있습니다.

**참고**  
Amazon ElastiCache에서 자동으로 생성된 교체 캐시 노드는 IP 주소가 다를 수 있습니다. 애플리케이션 구성을 검토하여 캐시 노드가 적절한 IP 주소와 연결되어 있는지 확인해야 합니다.

다음 목록은 ElastiCache에서 Valkey 또는 Redis OSS 노드 하나의 대체를 예약할 경우 취할 수 있는 조치를 보여줍니다. 상황에 맞는 정보를 신속하게 찾으려면 다음 메뉴에서 선택하세요.
+ [Do nothing](#DoNothing) – Amazon ElastiCache에서 예정대로 노드를 대체합니다.
+ [Change your maintenance window](#ChangeWindow) - 더 적합한 시간으로 유지 관리 기간을 변경합니다.
+ Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 구성
  + [Replace the only node in any Valkey or Redis OSS cluster](#ReplaceStandalone) - 백업 및 복원을 사용하여 Valkey 또는 Redis OSS 클러스터의 노드를 대체하는 절차입니다.
  + [Replace a replica node in any Valkey or Redis OSS cluster](#ReplaceReplica) - 클러스터 가동 중지 시간 없이 복제본 수를 늘이거나 줄여 모든 Valkey 또는 Redis OSS 클러스터에서 읽기 전용 복제본을 대체하는 절차입니다.
  + [Replace any node in a Valkey or Redis OSS (cluster mode enabled) shard](#ReplaceShardNode) - 클러스터 가동 중단 없이 확장 및 축소하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 노드를 대체하는 동적 절차입니다.
+ Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 구성
  + [Replace the only node in any Valkey or Redis OSS cluster](#ReplaceStandalone) - 백업 및 복원을 사용하여 Valkey 또는 Redis OSS 클러스터의 모든 노드를 대체하는 절차입니다.
  + [Replace a replica node in any Valkey or Redis OSS cluster](#ReplaceReplica) - 클러스터 가동 중지 시간 없이 복제본 수를 늘이거나 줄여 모든 Valkey 또는 Redis OSS 클러스터에서 읽기 전용 복제본을 대체하는 절차입니다.
  + [Replace a node in a Valkey or Redis OSS (cluster mode disabled) cluster](#ReplaceStandaloneClassic) - 복제를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 노드를 대체하는 절차입니다.
  + [Replace a Valkey or Redis OSS (cluster mode disabled) read-replica](#ReplaceReadReplica) - Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 복제 그룹의 읽기 전용 복제본을 수동으로 대체하는 절차입니다.
  + [Replace a Valkey or Redis OSS (cluster mode disabled) primary node](#ReplacePrimary) - Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 복제 그룹의 프라이머리 노드를 수동으로 대체하는 절차입니다.

**Valkey 및 Redis OSS 노드 대체 옵션**
+ **아무 작업 안 함** - 아무 작업도 하지 않으면 ElastiCache에서 예약대로 노드를 대체합니다.

   

  자동 장애 조치가 활성화된 비클러스터 구성의 경우, 클러스터가 온라인 상태로 들어오는 쓰기 요청을 처리하는 동안 Valkey 7.2 이상 및 Redis OSS 5.0.6 이상의 클러스터가 대체를 완료합니다. Redis OSS 4.0.10 이하에서 자동 장애 조치가 활성화된 클러스터의 경우, DNS 업데이트와 관련하여 최대 수 초 간의 짧은 쓰기 중단이 발생할 수 있습니다.

  노드가 자동 장애 조치가 활성화된 클러스터의 구성원일 경우 ElastiCache for Valkey 및 Redis OSS는 패치 중 개선된 가용성과 업데이트, 기타 유지 관리 관련 노드 교체를 제공합니다.

   

  ElastiCache for Valkey or Redis OSS 클러스터 클라이언트를 사용하기 위해 설정되는 ElastiCache 클러스터 구성의 경우, 클러스터에서 수신 쓰기 요청을 처리하는 동안 교체가 완료됩니다.

   

  자동 장애 조치가 활성화된 비클러스터 구성의 경우, 클러스터가 온라인 상태로 들어오는 쓰기 요청을 처리하는 동안 Valkey 7.2 이상 및 Redis OSS 5.0.6 이상의 클러스터가 대체를 완료합니다. Redis OSS 4.0.10 이하에서 자동 장애 조치가 활성화된 클러스터의 경우, DNS 업데이트와 관련하여 최대 수 초 간의 짧은 쓰기 중단이 발생할 수 있습니다.

   

  노드가 독립 실행형이면 먼저 Amazon ElastiCache에서 대체 노드를 시작한 후 기존 노드에서 동기화합니다. 그 동안은 서비스 요청에 기존 노드를 사용할 수 없습니다. 동기화가 완료되면 기존 노드가 종료되고 새 노드가 그 역할을 대신합니다. ElastiCache는 이 작업이 진행되는 동안 데이터를 보존하기 위해 노력합니다.

   
+ **유지 관리 기간 변경** - 예약된 유지 관리 이벤트의 경우 ElastiCache에서 이메일 또는 알림 이벤트를 수신합니다. 이러한 경우 예약된 대체 시간 전에 유지 관리 기간을 변경하면 이제 노드가 새 시간에 대체됩니다. 자세한 내용은 다음 자료를 참조하세요.
  + [ElastiCache 클러스터 수정](Clusters.Modify.md)
  + [복제 그룹 수정](Replication.Modify.md)
**참고**  
유지 관리 기간을 이동해 교체 기간을 변경하는 기능은 ElastiCache 알림에 유지 관리 기간이 포함된 경우에만 사용할 수 있습니다. 알림에 유지 관리 기간이 포함되어 있지 않으면 교체 기간을 변경할 수 없습니다.

  예를 들어 11월 9일 목요일 15:00, 다음 유지 관리 기간은 11월 10일 금요일 17:00라고 가정해 보겠습니다. 다음을 이러한 가정의 결과를 보여주는 3가지 시나리오입니다.
  + 유지 관리 기간을 현재 날짜/시간 이후 및 예약된 다음 유지 관리 기간 이전인 금요일 16:00으로 변경합니다. 11월 10일 금요일 16:00에 노드가 대체됩니다.
  + 유지 관리 기간을 현재 날짜/시간 이후 및 예약된 다음 유지 관리 기간 이전인 토요일 16:00으로 변경합니다. 11월 11일 토요일 16:00에 노드가 대체됩니다.
  + 유지 관리 기간을 현재 날짜/시간보다 일주일 빠른 수요일 오후 4시로 변경합니다. 11월 15일 수요일 16:00에 노드가 대체됩니다.

  지침은 [ElastiCache 클러스터 유지 관리](maintenance-window.md) 섹션을 참조하세요.

   
+ **모든 Valkey 또는 Redis OSS 클러스터에서 노드만 대체** - 클러스터에 읽기 전용 복제본이 없는 경우 다음 절차를 사용하여 노드를 대체할 수 있습니다.

**백업 및 복원을 사용하여 노드만을 대체하려면 다음을 수행합니다.**

  1. 노드 클러스터의 스냅샷을 생성합니다. 지침은 [수동 백업 지원](backups-manual.md) 섹션을 참조하세요.

  1. 스냅샷에서 시드하여 새 클러스터를 생성합니다. 지침은 [백업에서 새 캐시로 복원](backups-restoring.md) 섹션을 참조하세요.

  1. 대체 예약한 노드가 포함된 클러스터를 삭제합니다. 지침은 [ElastiCache에서 클러스터 삭제](Clusters.Delete.md) 섹션을 참조하세요.

  1. 애플리케이션에서 이전 노드의 엔드포인트를 새 노드의 엔드포인트로 대체합니다.

   
+ **Valkey 또는 Redis OSS 클러스터에서 복제본 노드 대체** - 복제본 클러스터를 대체하려면, 복제본 개수를 늘립니다. 이렇게 하려면 복제본을 추가한 다음 대체할 복제본을 제거하여 복제본 수를 줄입니다. 이 프로세스는 동적이며 클러스터 중단 시간이 없습니다.
**참고**  
샤드 또는 복제 그룹에 이미 5개 복제본이 있는 경우 1단계와 2단계를 반대로 합니다.

**모든 Valkey 또는 Redis OSS 클러스터에서 복제본을 대체하려면 다음을 수행합니다.**

  1. 샤드 또는 복제 그룹에 복제본을 추가하여 복제본 수를 늘립니다. 자세한 내용은 [샤드의 복제본 수 늘리기](increase-replica-count.md) 섹션을 참조하세요.

  1. 대체하려는 복제본을 삭제합니다. 자세한 내용은 [샤드의 복제본 수 줄이기](decrease-replica-count.md) 섹션을 참조하세요.

  1. 애플리케이션에서 엔드포인트를 업데이트합니다.

   
+ **Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 샤드에서 노드 대체** - 가동 중지 시간 없이 클러스터에서 노드를 대체하려면 온라인 리샤딩을 사용하세요. 먼저 확장하여 샤드를 추가한 다음 축소하여 대체할 노드로 샤드를 삭제합니다.

**Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 노드를 대체하려면**

  1. 확장: 대체할 노드가 포함된 기존 샤드와 동일한 구성의 추가 샤드를 추가합니다. 자세한 내용은 [온라인 리샤딩을 사용하여 샤드 추가](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online-add) 섹션을 참조하세요.

  1. 축소: 대체할 노드가 포함된 샤드를 삭제합니다. 자세한 내용은 [온라인 리샤딩을 사용하여 샤드 제거](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online-remove) 섹션을 참조하세요.

  1. 애플리케이션에서 엔드포인트를 업데이트합니다.

   
+ **Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 노드 대체** - 클러스터가 읽기 전용 복제본이 없는 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터인 경우 다음 절차를 사용하여 노드를 대체할 수 있습니다.

**복제를 사용하여 노드 대체하려면(클러스터 모드 비활성화 전용)**

  1. 기본으로 대체하도록 예약한 노드가 있는 클러스터에 복제를 추가합니다. 이 클러스터에서 다중 AZ를 활성화하지 마십시오. 지침은 [샤드 없이 Valkey 또는 Redis OSS 클러스터에 복제를 추가하려면](Clusters.AddNode.md#AddReplication.CON) 섹션을 참조하세요.

  1. 클러스터에 읽기 전용 복제본을 추가합니다. 지침은 [ElastiCache 클러스터에 노드를 추가하려면(콘솔)](Clusters.AddNode.md#AddNode.CON) 섹션을 참조하세요.

  1. 읽기 전용 복제본을 기본으로 승격합니다. 지침은 [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 복제 그룹에 대해 읽기 전용 복제본을 기본으로 승격](Replication.PromoteReplica.md) 섹션을 참조하세요.

  1. 대체 예약한 노드를 삭제합니다. 지침은 [ElastiCache 클러스터에서 노드 제거](Clusters.DeleteNode.md) 섹션을 참조하세요.

  1. 애플리케이션에서 이전 노드의 엔드포인트를 새 노드의 엔드포인트로 대체합니다.

   
+ **Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 읽기 전용 복제본 대체** - 노드가 읽기 전용 복제본이면 노드를 대체하세요.

  클러스터에 복제본 노드가 한 개뿐이고 다중 AZ가 활성화되어 있으면 다중 AZ를 비활성화해야 복제본을 삭제할 수 있습니다. 지침은 [복제 그룹 수정](Replication.Modify.md) 섹션을 참조하세요.

**Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 읽기 전용 복제본을 대체하려면**

  1. 대체 예약된 복제본을 삭제합니다. 지침은 다음을 참조하세요.
     + [샤드의 복제본 수 줄이기](decrease-replica-count.md)
     + [ElastiCache 클러스터에서 노드 제거](Clusters.DeleteNode.md)

  1. 대체 예약된 복제본을 대체할 새 복제본을 추가합니다. 삭제한 복제본과 같은 이름을 사용하는 경우 3단계를 건너뛸 수 있습니다. 지침은 다음을 참조하세요.
     + [샤드의 복제본 수 늘리기](increase-replica-count.md)
     + [Valkey 또는 Redis OSS에 대한 읽기 전용 복제본 추가(클러스터 모드 비활성화됨)](Replication.AddReadReplica.md)

  1. 애플리케이션에서 이전 복제본의 엔드포인트를 새 복제본의 엔드포인트로 대체합니다.

  1. 시작할 때 다중 AZ를 비활성화한 경우 다시 활성화합니다. 지침은 [다중 AZ 활성화](AutoFailover.md#AutoFailover.Enable) 섹션을 참조하세요.

   
+ **Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 프라이머리 노드 대체** - 노드가 프라이머리 노드이면 먼저 읽기 전용 복제본을 기본으로 승격하세요. 그런 다음 프라이머리 노드였던 복제본을 삭제합니다.

  클러스터에 복제본이 한 개뿐이고 다중 AZ가 활성화되어 있으면 2단계에서 다중 AZ를 비활성화해야 복제본을 삭제할 수 있습니다. 지침은 [복제 그룹 수정](Replication.Modify.md) 섹션을 참조하세요.

**Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 프라이머리 노드를 대체하려면**

  1. 읽기 전용 복제본을 기본으로 승격합니다. 지침은 [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 복제 그룹에 대해 읽기 전용 복제본을 기본으로 승격](Replication.PromoteReplica.md) 섹션을 참조하세요.

  1. 대체 예약된 노드(이전의 기본)를 삭제합니다. 지침은 [ElastiCache 클러스터에서 노드 제거](Clusters.DeleteNode.md) 섹션을 참조하세요.

  1. 대체 예약된 복제본을 대체할 새 복제본을 추가합니다. 삭제한 노드와 같은 이름을 사용하는 경우 애플리케이션에서 엔드포인트 변경을 건너뛸 수 있습니다.

     지침은 [Valkey 또는 Redis OSS에 대한 읽기 전용 복제본 추가(클러스터 모드 비활성화됨)](Replication.AddReadReplica.md) 섹션을 참조하세요.

  1. 애플리케이션에서 이전 노드의 엔드포인트를 새 노드의 엔드포인트로 대체합니다.

  1. 시작할 때 다중 AZ를 비활성화한 경우 다시 활성화합니다. 지침은 [다중 AZ 활성화](AutoFailover.md#AutoFailover.Enable) 단원을 참조하세요.

   

# 노드 대체(Memcached)
<a name="CacheNodes.NodeReplacement-mc"></a>

Amazon ElastiCache for Memcached는 인스턴스에 원활하게 적용되는 패치 및 업그레이드를 통해 플릿을 주기적으로 업그레이드합니다. 하지만 기본 호스트에 필수 OS 업데이트를 적용하기 위해 ElastiCache for Memcached 노드를 다시 시작해야 하는 경우가 있습니다. 보안, 안정성 및 운영 성능을 강화하는 업그레이드 적용에 있어 이러한 교체가 필요합니다.

예정된 노드 교체 주기 이전에 언제든 이러한 교체를 직접 관리할 수 있는 옵션이 있습니다. 직접 대체를 관리할 때 노드를 다시 시작하면 인스턴스에서 OS 업데이트를 수신하고, 예정된 노드 대체는 취소됩니다. 노드 대체가 발생한다는 경고를 계속 수신할 수 있습니다. 이미 유지 관리의 필요성을 수동으로 완화한 경우 이 경고를 무시할 수 있습니다.

**참고**  
Amazon ElastiCache에서 자동으로 생성된 교체 캐시 노드는 IP 주소가 다를 수 있습니다. 애플리케이션 구성을 검토하여 캐시 노드가 적절한 IP 주소와 연결되어 있는지 확인해야 합니다.

다음 목록은 ElastiCache에서 Memcached 노드 하나의 대체를 예약할 경우 취할 수 있는 조치를 보여줍니다.
+ **아무 작업 안 함** - 아무 작업도 하지 않으면 ElastiCache에서 예약대로 노드를 대체합니다. ElastiCache에서 자동으로 노드를 새 노드로 대체하면 새 노드가 처음에는 비어 있습니다.
+ **유지 관리 기간 변경** - 예약된 유지 관리 이벤트의 경우 ElastiCache에서 이메일 또는 알림 이벤트를 수신합니다. 이 경우 예약된 대체 시간 전에 유지 관리 기간을 변경하면 이제 노드가 새 시간에 대체됩니다. 자세한 내용은 [ElastiCache 클러스터 수정](Clusters.Modify.md) 섹션을 참조하세요.
**참고**  
유지 관리 기간을 이동해 교체 기간을 변경하는 기능은 ElastiCache 알림에 유지 관리 기간이 포함된 경우에만 사용할 수 있습니다. 알림에 유지 관리 기간이 포함되어 있지 않으면 교체 기간을 변경할 수 없습니다.

  예를 들어 11월 9일 목요일 15:00, 다음 유지 관리 기간은 11월 10일 금요일 17:00라고 가정해 보겠습니다. 다음을 이러한 가정의 결과를 보여주는 3가지 시나리오입니다.
  + 유지 관리 기간을 현재 날짜/시간 이후 및 예약된 다음 유지 관리 기간 이전인 금요일 16:00으로 변경합니다. 11월 10일 금요일 16:00에 노드가 대체됩니다.
  + 유지 관리 기간을 현재 날짜/시간 이후 및 예약된 다음 유지 관리 기간 이전인 토요일 16:00으로 변경합니다. 11월 11일 토요일 16:00에 노드가 대체됩니다.
  + 유지 관리 기간을 현재 날짜/시간보다 일주일 빠른 수요일 오후 4시로 변경합니다. 11월 15일 수요일 16:00에 노드가 대체됩니다.

  지침은 [ElastiCache 클러스터 유지 관리](maintenance-window.md) 섹션을 참조하세요.
+ **수동으로 노드 대체** - 다음 유지 관리 기간 전에 노드를 대체하려면 노드를 수동으로 대체하세요.

  노드를 수동으로 대체하면 키는 재분산됩니다. 이 재분산으로 인해 캐시가 누락될 수 있습니다.

**Memcached 노드를 수동으로 대체하려면**

  1. 대체 예약한 노드를 삭제합니다. 지침은 [ElastiCache 클러스터에서 노드 제거](Clusters.DeleteNode.md) 섹션을 참조하세요.

  1. 클러스터에 새 노드를 추가합니다. 지침은 [ElastiCache 클러스터에 노드 추가](Clusters.AddNode.md) 섹션을 참조하세요.

  1. 이 클러스터에서 자동 검색 기능을 사용하지 않으려면 애플리케이션을 확인하고 기존 노드의 모든 엔드포인트 인스턴스를 새로운 노드 엔드포인트로 대체합니다.

# 예약 노드
<a name="CacheNodes.Reserved"></a>

하나 이상의 ElastiCache 노드를 예약하여 비용을 줄일 수 있습니다. 노드 유형과 예약 기간(1년 또는 3년)에 따라 예약 노드에 선결제 요금이 부과됩니다.

예약된 노드가 사용 사례에 대해 비용이 절감되는지 확인하려면 먼저 필요한 노드 수와 노드 크기를 결정합니다. 그런 다음 노드의 사용량을 예측하고 온디맨드 노드와 예약된 노드의 총 비용을 비교합니다. 클러스터에서 예약 노드와 온디맨드 노드를 함께 사용할 수 있습니다. 요금에 대한 자세한 정보는 [Amazon ElastiCache 요금](https://aws.amazon.com/elasticache/pricing/)을 참조하세요.

**Topics**
+ [예약 노드를 통해 비용 관리](#reserved-nodes)
+ [표준 예약 노드 제품](#reserved-nodes-standard)
+ [유연한 크기의 예약 노드](#reserved-nodes-size)
+ [예약 노드 삭제](#reserved-nodes-deleting)
+ [이전 예약 노드 제품](#reserved-nodes-utilization)
+ [예약 노드 제품에 대한 정보 가져오기](#reserved-nodes-offerings)
+ [예약 노드 구입](#reserved-nodes-purchasing)
+ [예약 노드에 대한 정보 가져오기](#reserved-nodes-describing)

## 예약 노드를 통해 비용 관리
<a name="reserved-nodes"></a>

하나 이상의 노드를 예약하여 비용을 줄일 수 있습니다. 노드 유형과 예약 기간(1년 또는 3년)에 따라 예약 노드에 선결제 요금이 부과됩니다. 이 요금은 온디맨드 노드에서 발생하는 시간당 사용 요금보다 훨씬 낮습니다.

예약된 노드가 사용 사례에 대해 비용이 절감되는지 확인하려면 먼저 필요한 노드 수와 노드 크기를 결정합니다. 그런 다음 노드의 사용량을 예측하고 온디맨드 노드와 예약된 노드의 총 비용을 비교합니다. 클러스터에서 예약 노드와 온디맨드 노드를 함께 사용할 수 있습니다. 요금에 대한 자세한 정보는 [Amazon ElastiCache 요금](https://aws.amazon.com/elasticache/pricing/)을 참조하세요.

AWS 리전, 노드 유형 및 기간은 구매 시 선택해야 하며 나중에 변경할 수 없습니다.

AWS Management Console, AWS CLI 또는 ElastiCache API를 사용하여 사용 가능한 예약 노드 제품을 나열하고 구입할 수 있습니다.

예약 노드에 대한 자세한 내용은 [Amazon ElastiCache 예약 노드](https://aws.amazon.com/elasticache/reserved-cache-nodes/)를 참조하세요.

## 표준 예약 노드 제품
<a name="reserved-nodes-standard"></a>

Amazon ElastiCache에서 예약 인스턴스(RI)를 구매할 때는 예약 노드 인스턴스의 기간 동안 특정 노드 인스턴스 유형 및 AWS 리전에 대해 할인 요금을 이용하는 약정을 구매할 수 있습니다. Amazon ElastiCache 예약 노드 인스턴스를 사용하려면 온디맨드 인스턴스와 똑같은 방법으로 새 ElastiCache 노드 인스턴스를 생성해야 합니다.

새로운 예약 노드 인스턴스의 사양이 계정의 기존 예약 노드 인스턴스와 일치하면 예약 인스턴스에 제공되는 할인 요금이 청구됩니다. 그렇지 않으면 노드 인스턴스에 대해 온디맨드 요금이 청구됩니다. 이 표준 RI는 R5 및 M5 인스턴스 패밀리부터 사용할 수 있습니다.

**참고**  
다음에 설명된 모든 제품 유형은 1년과 3년 단위로 사용할 수 있습니다.

**제공 유형**  
**선수금 없음 ** RI는 선결제 금액 없이 예약된 ElastiCache 인스턴스에 대한 액세스를 제공합니다. *선결제 없음* 예약 ElastiCache 인스턴스는 사용되는지 여부와 상관없이 사용 기간 동안 매시간마다 할인된 시간당 요금이 청구됩니다.

**부분 선결제** RI의 경우 예약된 ElasticCache 인스턴스의 일부를 먼저 결제해야 합니다. 결제하지 않은 시간에 대해서는 사용 기간 동안 사용량에 상관없이 할인된 시간당 요금이 청구됩니다. 이 옵션은 다음 섹션에서 설명할 이전 *Heavy 사용률* 옵션을 대신합니다.

**전체 선결제** RI의 경우 RI 사용 기간이 시작될 때 전액 지불해야 합니다. 사용 시간과 관계없이 남은 기간 동안 다른 비용은 발생하지 않습니다.

## 유연한 크기의 예약 노드
<a name="reserved-nodes-size"></a>

모든 예약 노드는 크기가 유연합니다. 예약 노드를 구매할 때 지정하는 한 가지 사항은 노드 유형입니다 (예: cache.r6g.xlarge). 노드 유형에 대한 자세한 내용은 [Amazon ElastiCache 요금](https://aws.amazon.com/elasticache/pricing/ ) 섹션을 참조하세요.

이미 노드가 있지만 용량을 확장해야 하는 경우에는 예약 노드가 확장된 노드에 자동으로 적용됩니다. 즉, 예약 노드는 동일한 노드 패밀리의 모든 규모의 사용에 자동으로 적용됩니다. 크기가 유연한 예약 노드는 동일한 지역의 AWS 노드에 사용할 수 있습니다. 유연한 크기의 예약 노드는 해당 노드 제품군에서만 확장할 수 있습니다. 예를 들어, cache.r6g와 cache.r6gd는 서로 다른 노드 클래스 유형이기 때문에 cache.r6g.xlarge에 대한 예약 노드는 cache.r6g.2xlarge에 적용될 수 있지만 cache.r6gd.large에는 적용되지 않습니다.

크기 유연성은 동일한 노드 클래스 유형 내에서 구성 간에 자유롭게 이동할 수 있음을 의미합니다. 예를 들어, 추가 비용 없이 동일한 AWS 지역의 r6g.xlarge 예약 노드 1개(정규화된 유닛 8개)에서 r6g.large 예약 노드 2개(정규화된 유닛 8개) (2\$14 = 정규화된 유닛 8개)로 이동할 수 있습니다.

### 노드를 Redis OSS에서 Valkey로 업그레이드
<a name="reserved-nodes-upgrade-to-valkey"></a>

ElastiCache에서 Valkey를 시작하면 이제 Redis OSS 예약 노드 할인을 Valkey 캐시 엔진에 적용할 수 있습니다. 기존 계약 및 예약의 이점을 유지하면서 Redis OSS에서 Valkey로 업그레이드할 수 있습니다. 캐시 노드 패밀리 및 엔진 내에서 이점을 적용할 수 있을 뿐만 아니라 더 많은 증분 값을 얻을 수도 있습니다. Valkey는 Redis OSS에 비해 20% 할인된 가격으로 제공되며, 예약된 노드 유연성을 통해 Redis OSS 예약 노드를 사용하여 실행 중인 Valkey 노드를 20% 더 많이 커버할 수 있습니다.

할인율을 계산하기 위해 각 ElastiCache 노드와 엔진 조합에는 단위로 측정되는 정규화 인수가 있습니다. 예약 노드 단위는 지정된 엔진에 대해 예약 노드의 인스턴스 패밀리 내에 있는 실행 중인 모든 노드에 적용할 수 있습니다. Redis OSS 예약 노드는 엔진에 추가로 적용하여 실행 중인 Valkey 노드를 커버할 수 있습니다. Valkey는 Redis OSS 및 Memcached에 비해 할인된 가격으로 가격이 책정되기 때문에 지정된 인스턴스 유형에 대한 단위가 낮아 Redis OSS 예약 노드가 더 많은 Valkey 노드를 커버할 수 있습니다.

예를 들어, Redis OSS 엔진(32 단위)에 대해 cache.r7g.4xlarge용 예약 노드를 구매했고 캐시.r7g.4xlarge Redis OSS 노드(32 단위) 하나를 실행 중이라고 가정해 보겠습니다. 노드를 Valkey로 업그레이드하면 실행 중인 노드의 정규화 인수가 25.6단위로 떨어지며, 기존 예약 노드는 리전의 cache.r7g 패밀리 내에서 실행 중인 다른 Valkey 또는 Redis OSS 노드에 사용할 추가 6.4단위를 제공합니다. 이를 사용하여 계정의 다른 cache.r7g.4xlarge Valkey 노드의 25%(25.6 단위) 또는 cache.r7g.xlarge Valkey 노드의 100%(6.4 단위)를 포함할 수 있습니다.



### 정규화된 단위를 통한 사용량 비교
<a name="reserved-nodes-size.normalized"></a>

예약 노드의 크기에 따른 사용량은 정규화 유닛을 사용하여 비교할 수 있습니다. 예를 들어, 두 개의 cache.r6g.4xlarge 노드에서 1시간을 사용하면 하나의 cache.r6g.large에서 16시간을 사용하는 것과 같습니다. 다음 표는 노드 크기에 따른 정규화 유닛의 수를 나타낸 것입니다.


****  

| 노드 크기 | Redis OSS 또는 Memcached를 사용하는 정규화된 유닛 | Valkey를 사용한 정규화된 유닛 | 
| --- | --- | --- | 
| micro | 0.5 | 0.4 | 
| small | 1 | 8. | 
| medium | 2 | 1.6 | 
| large | 4 | 3.2 | 
| xlarge | 8 | 6.4 | 
| 2xlarge | 16 | 12.8 | 
| 4xlarge | 32 | 25.6 | 
| 6xlarge | 48 | 38.4 | 
| 8xlarge | 64 | 51.2 | 
| 10xlarge | 80 | 64 | 
| 12xlarge | 96 | 76.8 | 
| 16xlarge | 128 | 102.4 | 
| 24xlarge | 192 | 153.6 | 

cache.r6gd.xlarge 예약 노드를 1개 구매하고, 동일한 AWS 리전의 계정에서 cache.r6gd.large 예약 노드를 2개 실행하는 경우를 예로 들어 보겠습니다. 이 경우, 결제 혜택은 두 노드에 100% 적용됩니다.

![\[Region containing a cache.r6gd.xlarge reserved node with two cache.r6gd.large nodes inside.\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ri1.png)


또는 동일한 AWS 리전의 계정에서 실행 중인 cache.r6gd.2xlarge 인스턴스 1개가 있는 경우, 결제 혜택은 노드 사용량의 50%에 적용됩니다.

![\[Diagram showing a cache.r6gd.xlarge reserved node region containing a cache.r6gd.2xlarge instance.\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ri2.png)


## 예약 노드 삭제
<a name="reserved-nodes-deleting"></a>

예약 노드에 대한 약정 기간은 1년 또는 3년입니다. 예약 노드를 취소할 수 없습니다. 하지만 예약 노드 할인이 적용되는 노드를 삭제할 수는 있습니다. 예약 노드 할인이 적용되는 노드의 삭제 프로세스는 다른 노드를 삭제할 때와 동일합니다.

예약 노드 할인이 적용되는 노드를 삭제할 경우에는 다르지만 서로 사양이 호환되는 노드로 시작할 수 있습니다. 이 경우, 예약 기간(1년 또는 3년)에 요금 할인을 계속 받을 수 있습니다.

## 이전 예약 노드 제품
<a name="reserved-nodes-utilization"></a>

세 가지의 이전 노드 예약 수준에는 Heavy 사용률, Medium 사용률 및 Light 사용률이 있습니다. 어느 사용률 수준으로나 1년 또는 3년간 노드를 예약할 수 있습니다. 노드 유형, 사용률 수준 및 예약 기간에 따라 총 비용이 정해집니다. 예약 노드를 구입하기 전에 다양한 모델을 비교하여 예약 노드가 회사에 줄 수 있는 절약 효과를 확인하세요.

특정 사용률 수준이나 기간으로 구입한 노드를 다른 사용률 수준이나 기간으로 바꿀 수 없습니다.

**사용률 수준**  
*Heavy 사용률 예약 노드*는 용량 기준이 일관된 워크로드를 가능하게 하거나 되거나 상태가 꾸준한 워크로드를 실행합니다. Heavy 사용률 예약 노드는 높은 선납금 약정이 필요하지만 예약 노드 기간의 79% 이상을 실행하려는 경우 가장 크게 비용을 절감할 수 있습니다(온디맨드 요금의 70%까지). Heavy 사용률 예약 노드의 경우, 일회성 요금을 지불합니다. 이는 노드가 실행 여부에 관계없이 사용 기간 동안 시간당 요금이 더 낮습니다.

*Medium 사용률 예약 노드*는 많은 기간 예약 노드를 이용할 계획이고 더 저렴한 일회성 요금을 원하거나 노드 사용을 종료할 때 노드 요금 지불을 중지할 수 있기를 원하는 경우 가장 적합한 옵션입니다. Medium 사용률 예약 노드는 예약 노드 기간의 40% 이상을 실행하려는 경우 더욱 비용 효율적인 옵션입니다. 이 옵션은 온 디맨드 가격의 최대 64%까지 절감할 수 있습니다. Medium 사용률 예약 노드를 사용하면 Light 사용률 예약 노드를 사용하는 것보다 약간 높은 일회성 요금을 지불하지만 노드를 실행할 때 시간당 사용 요금을 낮출 수 있습니다.

*Light 사용률 예약 노드*는 매일 두세 시간 또는 일주일에 며칠 정도 실행하는 정기 작업에 적합합니다. Light 사용률 예약 노드를 사용하면 일회성 요금을 지불한 후 노드를 실행할 때 할인된 시간당 요금을 지불하게 됩니다. 노드가 예약된 노드 사용 기간의 17% 이상을 실행 중인 경우, 비용을 절감할 수 있습니다. 예약된 노드의 전체 사용 기간 동안 온디맨드 요금의 최대 56%까지 절감할 수 있습니다.


**이전 예약 노드 제품**  

| 제공 유형 | 선결제 비용 | 사용료 | 이점 | 
| --- | --- | --- | --- | 
|  Heavy 사용률 |  가장 높음 |  시간당 가장 낮은 요금. 예약 노드를 사용하고 있는지 상관없이 전체 기간에 적용됩니다. |  예상되는 예약 노드 사용률이 3년 약정 기준으로 79% 이상인 경우 전체적인 비용이 가장 낮습니다. | 
|  Medium 사용률 |  중간 |  노드를 실행하는 매 시간마다 시간당 사용 요금이 청구됩니다. 노드가 실행되지 않을 때는 시간당 요금이 청구되지 않습니다. |  탄력적인 워크로드 또는 3년 약정 기간에 40% 이상의 보통 사용량이 필요한 경우에 적합합니다. | 
|  Light 사용률 |  가장 낮음 |  노드를 실행하는 매 시간마다 시간당 사용 요금이 청구됩니다. 노드가 실행되지 않을 때는 시간당 요금이 청구되지 않습니다. 모든 제공 유형 중에서 시간당 요금이 가장 높지만 예약 노드가 실행되고 있을 때만 요금이 적용됩니다. |  항상 실행할 계획이라면 전체 비용이 가장 높습니다. 그러나, 이는 3년 약정 기간의 약 15% 이상 예약 노드를 자주 사용하지 않는 경우 전체 비용이 가장 낮습니다. | 
|  온디맨드 사용(예약 노드 없음) |  없음 |  시간당 요금이 가장 높습니다. 노드가 실행 중일 때마다 적용됩니다. |  시간당 비용이 가장 높습니다. | 

자세한 내용은 [Amazon ElastiCache 요금](https://aws.amazon.com/elasticache/pricing/)을 참조하세요.

## 예약 노드 제품에 대한 정보 가져오기
<a name="reserved-nodes-offerings"></a>

예약 노드를 구입하기 전에 사용 가능한 예약 노드 제품에 대한 정보를 확인할 수 있습니다.

다음 예제에서는 AWS Management Console, AWS CLI 및 ElastiCache API를 사용하여 사용 가능한 예약 노드 제품의 요금과 정보를 확인하는 방법을 보여줍니다.

**Topics**
+ [AWS Management Console 사용](#reserved-nodes-offerings-console)
+ [AWS CLI 사용](#reserved-nodes-offerings-cli)
+ [ElastiCache API 사용](#reserved-nodes-offerings-api)

### 예약 노드 제품에 대한 정보 가져오기(콘솔)
<a name="reserved-nodes-offerings-console"></a>

AWS Management Console을 사용하여 사용 가능한 예약 클러스터 상품의 요금과 그 밖의 정보를 가져오려면 다음 절차를 따르십시오.

**사용 가능한 예약 노드 제품에 대한 정보를 가져오려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **예약 노드**를 선택합니다.

1. **예약 노드 구매(Purchase Reserved Node)**를 선택합니다.

1. **엔진**에서 Valkey, Memcached 또는 Redis OSS 중 하나를 선택합니다.

1. 사용 가능한 제품을 확인하려면 다음 옵션 중에서 선택합니다.
   + **노드 유형(Node Type**
   + **Term**
   + **Offering Type(제공 유형**

   선택한 후 선택 항목의 노드당 비용과 총 비용이 **예약 세부 정보(Reservation details)** 아래에 표시됩니다.

1. [**Cancel**]을 선택하면 이 노드를 구입하지 않으며 요금이 발생하지 않습니다.

### 예약 노드 제품에 대한 정보 가져오기(AWS CLI)
<a name="reserved-nodes-offerings-cli"></a>

Valkey 또는 Redis OSS에 사용 가능한 예약 노드 제품의 요금과 그 밖의 정보를 가져오려면 명령 프롬프트에 다음 명령을 입력합니다.

```
1. aws elasticache describe-reserved-cache-nodes-offerings
```

이 작업은 다음과 유사한 출력을 생성합니다(JSON 형식).

```
 {
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xxx.large",
            "Duration": 94608000,
            "FixedPrice": XXXX.X,
            "UsagePrice": X.X,
            "ProductDescription": "redis",
            "OfferingType": "All Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.X,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
  },
  {
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xxx.xlarge",
            "Duration": 94608000,
            "FixedPrice": XXXX.X,
            "UsagePrice": X.X,
            "ProductDescription": "redis",
            "OfferingType": "Partial Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.XXX,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
  },
  {
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xxx.large",
            "Duration": 31536000,
            "FixedPrice": X.X,
            "UsagePrice": X.X,
            "ProductDescription": "redis",
            "OfferingType": "No Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.XXX,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
}
```

Memcached에 사용 가능한 예약 노드 제품의 요금과 그 밖의 정보를 가져오려면 명령 프롬프트에 다음 명령을 입력합니다.

```
 {
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xxx.large",
            "Duration": 94608000,
            "FixedPrice": XXXX.X,
            "UsagePrice": X.X,
            "ProductDescription": "memcached",
            "OfferingType": "All Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.X,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
    },
	{
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xxx.xlarge",
            "Duration": 94608000,
            "FixedPrice": XXXX.X,
            "UsagePrice": X.X,
            "ProductDescription": "memcached",
            "OfferingType": "Partial Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.XXXX,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
     },
     {
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xx.12xlarge",
            "Duration": 31536000,
            "FixedPrice": X.X,
            "UsagePrice": X.X,
            "ProductDescription": "memcached",
            "OfferingType": "No Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.XXXX,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
}
```

자세한 내용은 AWS CLI 참조에서 [describe-reserved-cache-nodes-offerings](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-reserved-cache-nodes-offerings.html)를 참조하세요.

### 예약 노드 제품에 대한 정보 가져오기(ElastiCache API)
<a name="reserved-nodes-offerings-api"></a>

사용 가능한 예약 노드 제품의 요금과 정보를 가져오려면 `DescribeReservedCacheNodesOfferings` 작업을 호출하세요.

**Example**  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeReservedCacheNodesOfferings
    &Version=2014-12-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

자세한 내용은 ElastiCache API 참조에서 [DescribeReservedCacheNodesOfferings](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReservedCacheNodesOfferings.html)를 참조하세요.

## 예약 노드 구입
<a name="reserved-nodes-purchasing"></a>

다음 예제에서는 AWS Management Console, AWS CLI 및 ElastiCache API를 사용하여 예약 노드 제품을 구입하는 방법을 설명합니다.

**중요**  
 이 섹션의 예제에 따라 예약할 수 없는 AWS 계정에 요금이 부과됩니다.

**Topics**
+ [AWS Management Console 사용](#reserved-nodes-purchasing-console)
+ [AWS CLI 사용](#reserved-nodes-purchasing-cli)
+ [ElastiCache API 사용](#reserved-nodes-purchasing-api)

### 예약 노드 구매(콘솔)
<a name="reserved-nodes-purchasing-console"></a>

 이 예제에서는 예약 노드 ID가 *myreservationID*인 특정 예약 노드 제품 *649fd0c8-cf6d-47a0-bfa6-060f8e75e95f*를 구입하는 방법을 보여줍니다.

다음 절차에서는 AWS Management Console을 사용하여 제품 ID로 예약 노드 제품을 구입합니다.

**예약 노드를 구입하려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 목록에서 **예약 노드(Reserved Nodes)** 링크를 선택합니다.

1. **예약 노드 구매(Purchase reserved nodes)** 버튼을 선택합니다.

1. **엔진**에서 Valkey, Memcached 또는 Redis OSS를 선택합니다.

1. 사용 가능한 제품을 확인하려면 다음 옵션 중에서 선택합니다.
   + **노드 유형(Node Type**
   + **Term**
   + **Offering Type(제공 유형**
   + 선택적 **예약 노드 ID(Reserved node ID)**

   선택한 후 선택 항목의 노드당 비용과 총 비용이 **예약 세부 정보(Reservation details)** 아래에 표시됩니다.

1. **구입**을 선택하세요.

### 예약 노드 구입(AWS CLI)
<a name="reserved-nodes-purchasing-cli"></a>

 다음 예제에서는 예약 노드 ID가 *myreservationID*인 특정 예약 클러스터 상품 *649fd0c8-cf6d-47a0-bfa6-060f8e75e95f*를 구입하는 방법을 보여줍니다.

 명령 프롬프트에서 다음 명령을 입력합니다.

Linux, macOS, Unix의 경우:

```
1. aws elasticache purchase-reserved-cache-nodes-offering \
2.     --reserved-cache-nodes-offering-id 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f \
3.     --reserved-cache-node-id myreservationID
```

Windows의 경우:

```
1. aws elasticache purchase-reserved-cache-nodes-offering ^
2.     --reserved-cache-nodes-offering-id 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f ^
3.     --reserved-cache-node-id myreservationID
```

 이 명령은 다음과 비슷한 출력을 반환합니다.

```
1. RESERVATION  ReservationId      Class           Start Time                Duration  Fixed Price  Usage Price  Count  State            Description      Offering Type
2. RESERVATION  myreservationid    cache.xx.small  2013-12-19T00:30:23.247Z  1y        XXX.XX USD   X.XXX USD    1      payment-pending  memcached        Medium Utilization
```

자세한 내용은 AWS CLI 참조에서 [purchase-reserved-cache-nodes-offering](https://docs.aws.amazon.com/cli/latest/reference/elasticache/purchase-reserved-cache-nodes-offering.html)을 참조하세요.

### 예약 노드 구입(ElastiCache API)
<a name="reserved-nodes-purchasing-api"></a>

다음 예제에서는 예약 클러스터 ID가 *myreservationID*인 특정 예약 노드 제품 *649fd0c8-cf6d-47a0-bfa6-060f8e75e95f*를 구입하는 방법을 보여줍니다.

다음 파라미터와 함께 `PurchaseReservedCacheNodesOffering` 작업을 호출합니다.
+ `ReservedCacheNodesOfferingId` = `649fd0c8-cf6d-47a0-bfa6-060f8e75e95f`
+ `ReservedCacheNodeID` = `myreservationID`
+ `CacheNodeCount` = `1`

**Example**  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=PurchaseReservedCacheNodesOffering
    &ReservedCacheNodesOfferingId=649fd0c8-cf6d-47a0-bfa6-060f8e75e95f
    &ReservedCacheNodeID=myreservationID
    &CacheNodeCount=1
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20141201T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

자세한 내용은 ElastiCache API 참조에서 [PurchaseReservedCacheNodesOffering](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_PurchaseReservedCacheNodesOffering.html)을 참조하세요.

## 예약 노드에 대한 정보 가져오기
<a name="reserved-nodes-describing"></a>

AWS Management Console, AWS CLI 및 ElastiCache API를 사용하여 구입한 예약 노드에 대한 정보를 가져올 수 있습니다.

**Topics**
+ [AWS Management Console 사용](#reserved-nodes-describing-console)
+ [AWS CLI 사용](#reserved-nodes-describing-cli)
+ [ElastiCache API 사용](#reserved-nodes-describing-api)

### 예약 노드에 대한 정보 가져오기(콘솔)
<a name="reserved-nodes-describing-console"></a>

다음 절차에서는 AWS Management Console을 사용하여 구입한 예약 노드에 대한 정보를 가져오는 방법을 설명합니다.

**구입한 예약 노드에 대한 정보를 가져오려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 목록에서 **예약 노드(Reserved nodes)** 링크를 선택합니다.

    계정의 예약 노드가 예약 노드 목록에 나타납니다. 목록에서 예약 노드를 선택하면 콘솔 아래쪽의 세부 정보 창에 예약 노드에 대한 자세한 정보가 표시됩니다.

### 예약 노드에 대한 정보 가져오기(AWS CLI)
<a name="reserved-nodes-describing-cli"></a>

AWS 계정의 예약 노드에 대한 정보를 가져오려면 명령 프롬프트에 명령을 입력하세요.

```
aws elasticache describe-reserved-cache-nodes
```

이 작업은 다음과 유사한 출력을 생성합니다(JSON 형식).

```
{
    "ReservedCacheNodeId": "myreservationid",
    "ReservedCacheNodesOfferingId": "649fd0c8-cf6d-47a0-bfa6-060f8e75e95f",
    "CacheNodeType": "cache.xx.small",
    "DataTiering": "disabled",
    "Duration": "31536000",
    "ProductDescription": "memcached",
    "OfferingType": "Medium Utilization",
    "MaxRecords": 0
}
```

자세한 내용은 AWS CLI 참조에서 [describe-reserved-cache-nodes](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-reserved-cache-nodes.html)를 참조하세요.

### 예약 노드에 대한 정보 가져오기(ElastiCache API)
<a name="reserved-nodes-describing-api"></a>

AWS 계정의 예약 노드에 대한 정보를 가져오려면 `DescribeReservedCacheNodes` 작업을 호출하세요.

**Example**  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeReservedCacheNodes
    &Version=2014-12-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20141201T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

자세한 내용은 ElastiCache API 참조에서 [DescribeReservedCacheNodes](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReservedCacheNodes.html)를 참조하세요.

# 이전 세대 노드 마이그레이션
<a name="CacheNodes.NodeMigration"></a>

이전 세대 노드는 단계적으로 제거되고 있는 노드 유형입니다. 이전 세대 노드 유형을 사용하는 기존 클러스터가 없는 경우 ElastiCache는 해당 노드 유형의 새 클러스터 생성을 지원하지 않습니다.

이전 세대 노드 유형의 수가 제한되어 있기 때문에 클러스터에서 노드가 비정상 상태가 될 때 성공적인 교체를 보장할 수 없습니다. 이러한 시나리오에서는 클러스터 가용성에 부정적인 영향을 줄 수 있습니다.

 가용성 및 성능 향상을 위해 클러스터를 새 노드 유형으로 마이그레이션하는 것이 좋습니다. 마이그레이션할 권장 노드 유형에 대해서는 [업그레이드 경로](https://aws.amazon.com/ec2/previous-generation/)를 참조하세요. ElastiCache에서 지원되는 노드 유형 및 이전 세대 노드 유형의 전체 목록에 대해서는 [지원되는 노드 유형](CacheNodes.SupportedTypes.md) 섹션을 참조하세요.

## Valkey 또는 Redis OSS 클러스터에서 노드 마이그레이션
<a name="CacheNodes.NodeMigration.Redis"></a>

다음 절차에서는 ElastiCache 콘솔을 사용하여 Valkey 또는 Redis OSS 클러스터 노드 유형을 마이그레이션하는 방법에 대해 설명합니다. 이 프로세스 동안 Valkey 또는 Redis OSS 클러스터는 가동 중지 시간을 최소화하면서 요청을 계속 처리합니다. 클러스터 구성에 따라 다음과 같은 가동 중지 시간이 나타날 수 있습니다. 다음은 예상치이며 특정 구성에 따라 달라질 수 있습니다.
+ 주로 DNS 전파로 인해 클러스터 모드 비활성화됨(단일 노드)이 약 60초 동안 표시될 수 있습니다.
+ 클러스터 모드 비활성화(복제본 노드 포함)는 Valkey 7.2 이상 또는 Redis OSS 5.0.6 이상을 실행하는 클러스터의 경우 약 1초 동안 표시될 수 있습니다. 이보다 낮은 모든 버전에서는 약 10초 동안 표시될 수 있습니다.
+ 클러스터 모드 활성화됨이 약 1초 동안 표시될 수 있습니다.

**콘솔을 사용하여 Valkey 또는 Redis OSS 클러스터 노드 유형을 수정하려면**

1. 콘솔에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/home)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

1. 클러스터 목록에서 마이그레이션할 클러스터를 선택합니다.

1. **작업**을 선택한 다음 **수정**을 선택합니다.

1. 노드 유형 목록에서 새 노드 유형을 선택합니다.

1. 마이그레이션 프로세스를 즉시 수행하려면 **즉시 적용**을 선택합니다. **즉시 적용**을 선택하지 않으면 클러스터의 다음 유지 관리 기간 중에 마이그레이션션 프로세스가 수행됩니다.

1. **수정**을 선택합니다. 이전 단계에서 [**Apply immediately**]를 선택한 경우 클러스터의 상태가 **수정 중**으로 변경됩니다. 상태가 **사용 가능**으로 변경되면 수정이 완료되고 새 클러스터의 사용을 시작할 수 있습니다.

*AWS CLI를 사용하여 Valkey 또는 Redis OSS 클러스터 노드 유형을 수정하려면:*

다음과 같이 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) API를 사용합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache modify-replication-group /
	--replication-group-id my-replication-group /
	--cache-node-type new-node-type /
	--apply-immediately
```

Windows의 경우:

```
aws elasticache modify-replication-group ^
	--replication-group-id my-replication-group ^
	--cache-node-type new-node-type ^
	--apply-immediately
```

이 시나리오에서 *new-node-type* 값은 마이그레이션하려는 노드 유형입니다. `--apply-immediately` 파라미터를 전달하면 복제 그룹이 **수정 중**에서 **사용 가능** 상태로 전환되는 즉시 업데이트가 적용됩니다. **즉시 적용**을 선택하지 않으면 클러스터의 다음 유지 관리 기간 중에 마이그레이션션 프로세스가 수행됩니다.

**참고**  
`InvalidCacheClusterState` 오류가 있는 클러스터를 수정할 수 없는 경우 먼저 복원이 실패한 노드를 제거해야 합니다.

### 복원 실패 노드 수정 또는 제거
<a name="remove-restore-failed-node"></a>

 다음 절차에는 Valkey 또는 Redis OSS 클러스터에서 복원이 실패한 노드를 수정 또는 제거하는 방법이 나와 있습니다. ElastiCache 노드가 복원 실패 상태일 때 처리하는 방법을 자세히 알아보려면 [ElastiCache 노드 상태 보기](Nodes.viewing.md) 섹션을 참조하세요. 먼저 복원 실패 상태의 노드를 모두 제거한 다음 ElastiCache 클러스터의 나머지 이전 세대 노드를 새로운 세대 노드 유형으로 마이그레이션하고, 마지막으로 필요한 수의 노드를 다시 추가하는 것이 좋습니다.

복원이 실패한 노드를 제거하려면(콘솔)

1. 콘솔에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/home)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

1. 클러스터 목록에서 노드를 제거할 클러스터를 선택합니다.

1. 샤드 목록에서 노드를 제거할 샤드를 선택합니다. 클러스터에서 클러스터 모드가 비활성화된 경우 이 단계를 건너뜁니다.

1. 노드 목록에서 상태가 `restore-failed`인 노드를 선택합니다.

1. **작업**을 선택하고 **노드 삭제**를 선택합니다.

ElastiCache 클러스터에서 복원 실패 노드를 제거하면 이제 새로운 세대 유형으로 마이그레이션할 수 있습니다. 자세한 내용은 [Valkey 또는 Redis OSS 클러스터에서 노드 마이그레이션](#CacheNodes.NodeMigration.Redis) 섹션을 참조하세요.

ElastiCache 클러스터에 백 노드를 추가하려면 [ElastiCache 클러스터에 노드 추가](Clusters.AddNode.md) 섹션을 참조하세요.

## Memcached 클러스터에서 노드 마이그레이션
<a name="CacheNodes.NodeMigration.Memcached"></a>

ElastiCache for Memcached를 다른 노드 유형으로 마이그레이션하려면 새 클러스터를 생성해야 하며, 이 클러스터는 애플리케이션이 채울 수 있도록 항상 비어 있는 상태로 시작해야 합니다.

**ElastiCache 콘솔을 사용하여 ElastiCache for Memcached 클러스터 노드 유형을 마이그레이션하려면** 
+ 새 노드 유형으로 새 클러스터를 생성합니다. 자세한 내용은 [Memcached 클러스터 생성(콘솔)](Clusters.Create-mc.md#Clusters.Create.CON.Memcached) 섹션을 참조하세요.
+ 애플리케이션에서 엔드포인트를 새 클러스터의 엔드포인트로 업데이트합니다. 자세한 내용은 [클러스터 엔드포인트 찾기(콘솔)(Memcached)](Endpoints.md#Endpoints.Find.Memcached) 섹션을 참조하세요.
+ 이전 클러스터를 삭제합니다. 자세한 내용은 [ElastiCache에서 클러스터 삭제](Clusters.Delete.md) 섹션을 참조하세요.

# ElastiCache에서 클러스터 관리
<a name="Clusters"></a>

*클러스터*는 하나 이상의 캐시 노드의 모음으로, 모두 Valkey, Memcached 및 Redis OSS 엔진 소프트웨어의 인스턴스를 실행합니다. 클러스터를 만들 때 모든 노드에서 사용할 엔진과 버전을 지정합니다.

**Valkey 및 Redis OSS 클러스터**

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

한도 증가를 요청하려면 [AWS 서비스 한도](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)를 참조하고 한도 유형을 **인스턴스 유형별 클러스터당 노드**로 선택하세요.

 Valkey 또는 Redis OSS 샤드에 여러 노드가 있으면 노드 중 하나는 읽기/쓰기 프라이머리 노드가 됩니다. 샤드의 나머지 노드는 모두 읽기 전용 복제본입니다.

일반적인 Valkey 또는 Redis OSS 클러스터는 다음과 같습니다.

![\[이미지: 일반적인 Valkey 및 Redis OSS 클러스터\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-Cluster-Redis.png)


**Memcached 클러스터**

일반적인 Memcached 클러스터는 다음과 같습니다. Memcached 클러스터에는 데이터를 가로로 분할할 수 있는 노드가 1\$160개까지 포함됩니다.

![\[이미지: 일반적인 Memcached 클러스터\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-Cluster-Memcached.png)


**Valkey, Memcached 및 Redis OSS에 대한 Elasticache 작업**

클러스터 수준에서 대부분의 ElastiCache 작업이 수행됩니다. 특정 수의 노드 및 각 노드에 대한 속성을 제어하는 파라미터 그룹을 사용하여 클러스터를 설정할 수 있습니다. 클러스터 하나에 속한 모든 노드는 노드 유형, 파라미터 및 보안 그룹 설정이 동일합니다.

클러스터마다 클러스터 식별자가 있습니다. 클러스터 식별자는 고객이 제공하는 클러스터 이름입니다. ElastiCache API 및 AWS CLI 명령과 상호 작용할 때 이 식별자가 특정한 클러스터를 지정합니다. 클러스터 식별자는 한 AWS 리전 내의 해당 고객에 대해 고유해야 합니다.

ElastiCache는 여러 가지 엔진 버전을 지원합니다. 특별한 이유가 없으면 최신 버전을 사용하는 것이 좋습니다.

ElastiCache 클러스터는 Amazon EC2 인스턴스를 사용하여 액세스하도록 설계되었습니다. Amazon VPC 서비스 기반의 Virtual Private Cloud(VPC)에서 클러스터를 시작하는 경우 AWS 밖에서 액세스할 수 있습니다. 자세한 내용은 [외부에서 ElastiCache 리소스에 액세스AWS](accessing-elasticache.md#access-from-outside-aws) 섹션을 참조하세요.

지원되는 버전 목록은 [지원되는 엔진 및 버전](VersionManagement.md#supported-engine-versions), [지원되는 Redis OSS 엔진 버전](engine-versions.md#supported-engine-versions.redis) 및 [지원되는 ElastiCache for Memcached 버전](engine-versions.md#supported-engine-versions-mc) 섹션을 참조하세요.

# ElastiCache에서 네트워크 유형 선택
<a name="network-type"></a>

ElastiCache는 인터넷 프로토콜 버전 4(IPv4) 및 6(IPv6)를 지원하므로 클러스터가 다음을 수락하도록 구성할 수 있습니다.
+ IPv4 연결만 가능.
+ IPv6 연결만 가능.
+ IPv4 및 IPv6 연결 모두(듀얼 스택).

IPv6는 Valkey 7.2 이상 또는 Redis OSS 6.2 이상을 사용하는 워크로드에 대해 [Nitro 시스템](https://aws.amazon.com/ec2/nitro/)에 구축된 모든 인스턴스에서 지원됩니다. IPv6을 통해 ElastiCache에 액세스하는 데 대한 추가 요금은 없습니다.

**참고**  
IPv6/듀얼 스택이 제공되기 전에 생성된 클러스터의 마이그레이션은 지원되지 않습니다. 새로 생성된 클러스터에서의 네트워크 유형 간 전환도 지원되지 않습니다.

IPv6는 [Nitro 시스템](https://aws.amazon.com/ec2/nitro/)에 빌드된 모든 인스턴스에서 Memcached 1.6.6 이상을 사용하는 워크로드에 지원됩니다. IPv6을 통해 ElastiCache에 액세스하는 데 대한 추가 요금은 없습니다.

## 네트워크 유형에 맞는 서브넷 구성
<a name="network-type-subnets"></a>

Amazon VPC에서 클러스터를 생성하는 경우 서브넷 그룹을 지정해야 합니다. ElastiCache는 해당 서브넷 그룹을 사용하여 노드에 연결된 서브넷 내의 서브넷 및 IP 주소를 선택합니다. ElastiCache 클러스터가 듀얼 스택 모드에서 작동하려면 IPv4 및 IPv6 주소가 모두 할당된 듀얼 스택 서브넷이 필요하고, IPv6 전용으로 작동하려면 IPv6 전용 서브넷이 필요합니다.

## 듀얼 스택 사용
<a name="network-type-dual-stack"></a>

클러스터 모드가 활성화된 상태에서 ElastiCache for Redis OSS를 사용하는 경우 구성 엔드포인트를 통해 모든 클러스터 노드에 연결하는 것과 개별 캐시 노드에 직접 연결하는 것은 애플리케이션 관점에서 차이점이 없습니다. 이를 위해 클러스터 인식 클라이언트가 클러스터 검색 프로세스에 참여하고 모든 노드에 대한 구성 정보를 요청해야 합니다. Redis의 검색 프로토콜은 노드당 하나의 IP만 지원합니다.

ElastiCache for Memcachedand를 사용하여 클러스터를 생성하고 네트워크 유형으로 이중 스택을 선택할 때는 IP Discovery 유형으로 IPv4 또는 IPv6을 지정해야 합니다. ElastiCache는 네트워크 유형 및 IP 검색을 IPv6으로 기본 설정하지만 이는 변경할 수 있습니다. 자동 검색을 사용하는 경우, 선택된 IP 유형의 IP 주소만 Memcached 클라이언트로 반환됩니다. 자세한 내용은 [클러스터의 노드 자동 식별(Memcached)](AutoDiscovery.md) 단원을 참조하십시오.

기존의 모든 클라이언트와의 하위 호환성을 유지하기 위해 IP Discovery가 도입되어, 이를 통해 검색 프로토콜에서 광고할 IP 유형(IPv4 또는 IPv6)을 선택할 수 있습니다. 이렇게 하면 자동 검색이 한 가지 IP 유형으로만 제한되지만, 가동 중단 없이 IPv4에서 IPv6 검색 IP 유형으로 마이그레이션(또는 롤백)할 수 있기 때문에 클러스터 모드 활성화 워크로드에는 이중 스택의 유용성이 유지됩니다.

## TLS 활성화 듀얼 스택 ElastiCache 클러스터
<a name="configuring-tls-enabled-dual-stack"></a>

ElastiCache 클러스터에 대해 TLS가 활성화된 경우 Valkey 또는 Redis를 사용하는 `cluster slots`, `cluster shards` 및 `cluster nodes` 또는 Memcached를 사용하는 Redis OSS 및 `config get cluster`와 같은 클러스터 검색 기능은 IP 대신 호스트 이름을 반환합니다. IP 대신 호스트 이름을 사용하여 ElastiCache 클러스터에 연결하고 TLS 핸드셰이크를 수행합니다. 따라서, 클라이언트가 IP Discovery 파라미터의 영향을 받지 않습니다. *TLS 활성화 클러스터의 경우, IP Discovery 파라미터는 선호 IP 프로토콜에 영향을 끼치지 않습니다.* 대신 클라이언트가 DNS 호스트 이름을 확인할 때 어떤 IP 프로토콜을 선호하는지에 따라, 사용되는 IP 프로토콜이 결정됩니다.

DNS 호스트 이름을 확인할 때 IP 프로토콜 기본 설정을 구성하는 방법에 대한 예제는 [TLS 활성화 듀얼 스택 ElastiCache 클러스터](BestPractices.md#network-type-configuring-tls-enabled-dual-stack)을 참조하세요.

## AWS Management Console(Valkey 및 Redis OSS) 사용
<a name="network-type-console"></a>

를 사용하여 클러스터를 생성할 때 **연결**AWS Management Console에서 네트워크 유형인 **IPv4**, **IPv6** 또는 **듀얼 스택**을 선택합니다. Valkey 또는 Redis OSS(클러스터 모드 활성화) 클러스터를 생성하고 듀얼 스택을 선택할 때는 **검색 IP 유형**으로 IPv6 또는 IPv4 중에 선택해야 합니다.

자세한 내용은 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(콘솔)](Clusters.Create.md#Clusters.Create.CON.RedisCluster) 또는 [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스트 생성(콘솔)](Clusters.Create.md#Clusters.Create.CON.Redis)을 참조하세요.

를 사용하여 복제 그룹을 생성할 때 **IPv4**AWS Management Console, **IPv6** 또는 **듀얼 스택** 중 하나의 네트워크 유형을 선택합니다. **듀얼 스택**을 선택한 경우 검색 IP 유형으로 IPv6 또는 IPv4 중에 선택해야 합니다.

자세한 내용은 [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 복제 그룹을 처음부터 새로 생성](Replication.CreatingReplGroup.NoExistingCluster.Classic.md) 또는 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨)에서 복제 그룹을 처음부터 새로 생성](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md)을 참조하세요.

## 사용AWS Management Console(Memcached)
<a name="network-type-console-mem"></a>

를 사용하여 클러스터를 생성할 때 **연결**AWS Management Console에서 네트워크 유형인 **IPv4**, **IPv6** 또는 **듀얼 스택**을 선택합니다. **듀얼 스택**을 선택한 경우 검색 IP 유형으로 IPv6 또는 IPv4 중에 선택해야 합니다.

자세한 내용은 [Memcached 클러스터 생성(콘솔)](Clusters.Create-mc.md#Clusters.Create.CON.Memcached) 단원을 참조하십시오.

## Valkey, Memcached, 또는 Redis OSS와 함께 CLI 사용
<a name="network-type-cli"></a>

**Redis OSS**

CLI를 사용하여 Valkey 또는 Redis OSS로 클러스터를 생성할 때는 [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html) 명령을 사용하고 `NetworkType` 및 `IPDiscovery` 파라미터를 지정합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache create-cache-cluster \
    --cache-cluster-id "cluster-test" \
    --engine redis \
    --cache-node-type cache.m5.large \
    --num-cache-nodes 1 \
    --network-type dual_stack \
    --ip-discovery ipv4
```

Windows의 경우:

```
aws elasticache create-cache-cluster ^
    --cache-cluster-id "cluster-test" ^
    --engine redis ^
    --cache-node-type cache.m5.large ^
    --num-cache-nodes 1 ^
    --network-type dual_stack ^
    --ip-discovery ipv4
```

CLI를 사용하여 클러스터 모드가 비활성화된 복제 그룹을 생성할 때는 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) 명령을 사용하고 `NetworkType` 및 `IPDiscovery` 파라미터를 지정합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache create-replication-group \
   --replication-group-id sample-repl-group \
   --replication-group-description "demo cluster with replicas" \
   --num-cache-clusters 3 \
   --primary-cluster-id redis01 \
   --network-type dual_stack \
   --ip-discovery ipv4
```

Windows의 경우:

```
aws elasticache create-replication-group ^
   --replication-group-id sample-repl-group ^
   --replication-group-description "demo cluster with replicas" ^
   --num-cache-clusters 3 ^
   --primary-cluster-id redis01 ^
   --network-type dual_stack ^
   --ip-discovery ipv4
```

CLI를 사용하여 클러스터 모드가 활성화되고 IP Discovery로 IPv4를 사용하는 복제 그룹을 생성할 때는 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) 명령을 사용하고 `NetworkType` 및 `IPDiscovery` 파라미터를 지정합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache create-replication-group \
  --replication-group-id demo-cluster \
  --replication-group-description "demo cluster" \
  --cache-node-type cache.m5.large \
  --num-node-groups 2 \
  --engine redis \
  --cache-subnet-group-name xyz \
  --network-type dual_stack \
  --ip-discovery ipv4 \
  --region us-east-1
```

Windows의 경우:

```
aws elasticache create-replication-group ^
  --replication-group-id demo-cluster ^
  --replication-group-description "demo cluster" ^
  --cache-node-type cache.m5.large ^
  --num-node-groups 2 ^
  --engine redis ^
  --cache-subnet-group-name xyz ^
  --network-type dual_stack ^
  --ip-discovery ipv4 ^
  --region us-east-1
```

CLI를 사용하여 클러스터 모드가 활성화되고 IP Discovery으로 IPv6를 사용하는 복제 그룹을 생성할 때는 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) 명령을 사용하고 `NetworkType` 및 `IPDiscovery` 파라미터를 지정합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache create-replication-group \
  --replication-group-id demo-cluster \
  --replication-group-description "demo cluster" \
  --cache-node-type cache.m5.large \
  --num-node-groups 2 \
  --engine redis \
  --cache-subnet-group-name xyz \
  --network-type dual_stack \
  --ip-discovery ipv6 \
  --region us-east-1
```

Windows의 경우:

```
aws elasticache create-replication-group ^
  --replication-group-id demo-cluster ^
  --replication-group-description "demo cluster" ^
  --cache-node-type cache.m5.large ^
  --num-node-groups 2 ^
  --engine redis ^
  --cache-subnet-group-name xyz ^
  --network-type dual_stack ^
  --ip-discovery ipv6 ^
  --region us-east-1
```

**Memcached**

CLI를 사용하여 Memcached로 클러스터를 생성할 때는 [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html) 명령을 사용하고 `NetworkType` 및 `IPDiscovery` 파라미터를 지정합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache create-cache-cluster \
    --cache-cluster-id "cluster-test" \
    --engine memcached \
    --cache-node-type cache.m5.large \
    --num-cache-nodes 1 \
    --network-type dual_stack \
    --ip-discovery ipv4
```

Windows의 경우:

```
aws elasticache create-cache-cluster ^
    --cache-cluster-id "cluster-test" ^
    --engine memcached ^
    --cache-node-type cache.m5.large ^
    --num-cache-nodes 1 ^
    --network-type dual_stack ^
    --ip-discovery ipv4
```

# 클러스터의 노드 자동 식별(Memcached)
<a name="AutoDiscovery"></a>

Memcached 엔진을 실행하는 클러스터에 대해 ElastiCache는 *Auto Discovery*를 지원합니다. 자동 검색은 클라이언트 프로그램이 클러스터의 모든 노드를 자동으로 식별하고 이러한 모든 노드와의 연결을 시작하고 유지하는 기능입니다.

**참고**  
Amazon ElastiCache Memcached에서 실행되는 클러스터를 위해 Auto Discovery가 추가되었습니다. Valkey 또는 Redis OSS 엔진에는 Auto Discovery를 사용할 수 없습니다.

Auto Discovery를 사용하면 애플리케이션이 개별 캐시 노드에 수동으로 연결할 필요가 없으며, 대신 애플리케이션이 Memcached 노드 하나에 연결하고 노드 목록을 검색합니다. 그 목록에서 애플리케이션은 클러스터의 나머지 노드를 인식하고 이러한 모든 노드에 연결할 수 있습니다. 애플리케이션에서 개별 캐시 노드 엔드포인트를 하드 코딩할 필요가 없습니다.

클러스터에서 듀얼 스택 네트워크 유형을 사용하는 경우, Auto Discovery는 IPv4 또는 IPv6 주소 중 선택된 것만 반환합니다. 자세한 정보는 [ElastiCache에서 네트워크 유형 선택](network-type.md)을 참조하십시오.

클러스터에 있는 모든 캐시 노드는 모든 다른 노드에 대한 메타데이터 목록을 유지 관리합니다. 이 메타데이터는 클러스터에서 노드가 추가되거나 제거될 때마다 업데이트됩니다.

**Topics**
+ [Memcached를 사용한 Auto Discovery의 이점](AutoDiscovery.Benefits.md)
+ [Auto Discovery 작동 방법](AutoDiscovery.HowAutoDiscoveryWorks.md)
+ [Auto Discovery 사용](AutoDiscovery.Using.md)
+ [Memcached 캐시 노드에 수동으로 연결](AutoDiscovery.Manual.md)
+ [Memcached 클라이언트 라이브러리에 Auto Discovery 추가](AutoDiscovery.AddingToYourClientLibrary.md)
+ [Auto Discovery가 있는 ElastiCache 클라이언트](Clients.md)

# Memcached를 사용한 Auto Discovery의 이점
<a name="AutoDiscovery.Benefits"></a>

Memcached를 사용할 때 Auto Discovery는 다음 혜택을 제공합니다.
+ 클러스터에서 노드 개수를 늘리면 새로운 노드가 구성 엔드포인트 및 모든 다른 노드를 사용하여 자신을 등록합니다. 캐시 클러스터에서 노드를 제거하면 제거되는 노드가 자신을 등록 해제합니다. 두 가지 경우 모두에서 클러스터의 다른 노드 모두는 최신 캐시 노드 메타데이터를 사용하여 업데이트됩니다.
+ 캐시 노드 실패가 자동으로 감지되고 실패한 노드는 자동으로 대체됩니다.
**참고**  
노드 대체가 완료될 때까지 노드가 계속 실패합니다.
+ 클라이언트 프로그램은 구성 endpoint에 연결해야만 합니다. 그 후에 Auto Discovery 라이브러리가 클러스터의 다른 모든 노드에 연결됩니다.
+ 클라이언트 프로그램은 분당(이 간격은 필요한 경우 조정 가능) 한 번씩 클러스터를 폴링합니다. 노드가 추가 또는 삭제되는 등의 클러스터 구성에 변경 사항이 있는 경우 클라이언트는 업데이트된 메타데이터 목록을 받습니다. 그러면 클라이언트가 필요에 따라 이 노드에 연결하거나 연결을 해제합니다.

모든 ElastiCache Memcached 클러스터에서 Auto Discovery가 활성화됩니다. 이 기능을 사용하기 위해 캐시 노드 중 어느 것도 재부팅할 필요가 없습니다.

# Auto Discovery 작동 방법
<a name="AutoDiscovery.HowAutoDiscoveryWorks"></a>

**Topics**
+ [캐시 노드에 연결](#AutoDiscovery.HowAutoDiscoveryWorks.Connecting)
+ [일반적인 클러스터 작업](#AutoDiscovery.HowAutoDiscoveryWorks.NormalOps)
+ [기타 작업](#AutoDiscovery.HowAutoDiscoveryWorks.OtherOps)

이 섹션은 클라이언트 애플리케이션이 ElastiCache 클러스터 클라이언트를 사용하여 캐시 노드 연결을 관리하고 캐시의 데이터와 상호 작용하는 방법을 설명합니다.

## 캐시 노드에 연결
<a name="AutoDiscovery.HowAutoDiscoveryWorks.Connecting"></a>

애플리케이션 관점에서 클러스터 구성 엔드포인트에 대한 연결은 개별 캐시 노드에 대한 직접 연결과 다르지 않습니다. 다음 시퀀스 다이어그램은 캐시 노드에 연결하는 과정을 보여 줍니다.

![\[캐시 노드에 연결\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/autodiscovery_cluster_membership_refresh-diagram.png)



**캐시 노드에 연결하는 과정**  

|  |  | 
| --- |--- |
|  ![\[1\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/callouts/1.png) | 애플리케이션이 구성 Endpoint의 DNS 이름을 확인합니다. 구성 Endpoint가 모든 캐시 노드의 CNAME 항목을 유지 관리하기 때문에 DNS 이름은 노드 중 하나에 대해 확인되며 해당 클라이언트가 해당 노드에 연결합니다. | 
|  ![\[2\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/callouts/2.png) | 클라이언트는 모든 다른 노드에 대한 구성 정보를 요청합니다. 각 노드가 클러스터에 있는 모든 노드에 대한 구성 정보를 유지 관리하므로 요청 시 모든 노드가 구성 정보를 클라이언트에 전달할 수 있습니다. | 
|  ![\[3\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/callouts/3.png) | 클라이언트는 캐시 노드 호스트 이름 및 IP 주소의 현재 목록을 받습니다. 그런 다음 클러스터에 있는 모든 다른 노드에 연결할 수 있습니다. | 



**참고**  
클라이언트 프로그램은 캐시 노드 호스트 이름 및 IP 주소 목록을 분당 한 번씩 새로 고칩니다. 이 폴링 간격은 필요한 경우 조정될 수 있습니다.

## 일반적인 클러스터 작업
<a name="AutoDiscovery.HowAutoDiscoveryWorks.NormalOps"></a>

애플리케이션이 모든 캐시 노드에 연결되었을 때 ElastiCache 클러스터 클라이언트는 개별 데이터 항목을 저장해야 하는 노드 및 나중에 그러한 데이터 항목에 대해 쿼리되어야 하는 노드를 결정합니다. 다음 시퀀스 다이어그램은 일반 클러스터 작업 과정을 보여 줍니다.

![\[일반적인 클러스터 작업\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/autodiscovery_normal_cache_usage-diagram.png)



**일반적인 클러스터 작업 과정**  

|  |  | 
| --- |--- |
|  ![\[1\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/callouts/1.png) | 애플리케이션이 키로 식별되는 특정 데이터 항목에 대해 Get 요청을 실행합니다. | 
|  ![\[2\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/callouts/2.png) | 클라이언트가 키에 대해 해시 알고리즘을 사용하여 해당 데이터 항목을 포함하는 캐시 노드를 결정합니다. | 
|  ![\[3\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/callouts/3.png) | 데이터 항목이 적절한 노드에서 요청됩니다. | 
|  ![\[4\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/callouts/4.png) | 데이터 항목이 애플리케이션으로 반환됩니다. | 

## 기타 작업
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps"></a>

일부 경우에는 클러스터의 노드를 변경할 수 있습니다. 예를 들어, 추가 수요를 수용하기 위해 노드를 추가하거나, 수요가 감소하는 기간 동안 비용을 절약하기 위해 노드를 삭제할 수 있습니다. 또는 이런 저런 노드 장애로 인해 노드를 대체할 수도 있습니다.

클러스터가 변경되어 클러스터 엔드포인트로 메타데이터를 업데이트해야 하는 경우 동시에 모든 노드가 변경되므로 제공된 모든 노드의 메타데이터는 클러스터에 있는 다른 모든 노드의 메타데이터와 일치합니다.

이런 경우 클러스터의 모든 노드에서 동시에 메타데이터가 업데이트되므로 메타데이터는 항상 모든 노드에서 일치합니다. 항상 구성 엔드포인트를 사용하여 클러스터에 있는 여러 노드의 엔드포인트를 가져와야 합니다. 구성 엔드포인트를 사용하여 "사라지는" 노드에서 엔드포인트 데이터를 가져오지 않을 수 있습니다.

### 노드 추가
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps.AddNode"></a>

노드가 실행되는 동안 노드의 엔드포인트가 메타데이터에 포함되지 않습니다. 노드가 사용 가능 상태가 되면 각 클러스터 노드의 메타데이터에 노드가 추가됩니다. 이 시나리오에서는 모든 노드에서 메타데이터가 일치하고 노드가 사용 가능해진 후에야 새로운 노드와 상호 작용할 수 있습니다. 노드가 사용 가능 상태가 되기 전에는 노드에 대해 알 수 없으며 새로운 노드가 존재하지 않는 것처럼 클러스터에 있는 노드와 상호 작용합니다.

### 노드 삭제
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps.DelNode"></a>

노드가 제거되면 노드의 엔드포인트가 먼저 메타데이터에서 제거된 후 클러스터에서 노드가 제거됩니다. 이 시나리오에서는 모든 노드의 메타데이터가 일치하고 노드가 사용 가능 상태가 아닐 때 제거할 노드의 엔드포인트를 포함할 시간이 없습니다. 노드 제거 시간 중에는 메타데이터에 노드가 보고되지 않으므로 애플리케이션이 노드가 존재하지 않는 것처럼 나머지 노드 n-1개에 한해 상호 작용합니다.

### 노드 대체
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps.ReplaceNode"></a>

노드가 실패하면 ElastiCache가 해당 노드의 작동을 중지하고 대체합니다. 대체 프로세스는 몇 분 정도 걸립니다. 이 시간 동안 모든 노트의 메타데이터가 실패한 노드의 엔드포인트를 계속 표시하지만 이 노드와 상호 작용하려는 모든 시도가 실패합니다. 따라서 로직에 항상 재시도 로직을 포함해야 합니다.

# Auto Discovery 사용
<a name="AutoDiscovery.Using"></a>

ElastiCache와 함께 Auto Discovery를 사용하려면 다음 단계를 따르세요.
+ [구성 엔드포인트 확보](#AutoDiscovery.Using.ConfigEndpoint)
+ [ElastiCache 클러스터 클라이언트 다운로드](#AutoDiscovery.Using.ClusterClient)
+ [애플리케이션 프로그램 수정](#AutoDiscovery.Using.ModifyApp)

## 구성 엔드포인트 확보
<a name="AutoDiscovery.Using.ConfigEndpoint"></a>

클라이언트 프로그램은 클러스터에 연결하기 위해 클러스터 구성 Endpoint를 알아야 합니다. [클러스터 엔드포인트 찾기(콘솔)(Memcached)](Endpoints.md#Endpoints.Find.Memcached) 항목을 참조하세요.

또한 다음과 같이 `aws elasticache describe-cache-clusters` 파라미터를 포함하여 `--show-cache-node-info` 명령을 사용할 수 있습니다.

클러스터의 엔드포인트를 찾기 위해 어떤 방법을 사용하든지 구성 엔드포인트는 항상 주소에 **.cfg**를 포함합니다.

**Example ElastiCache용 AWS CLI를 사용하여 엔드포인트 찾기**  
Linux, macOS, Unix의 경우:  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info
```
Windows의 경우:  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id mycluster ^
    --show-cache-node-info
```
이 작업은 다음과 유사한 출력을 생성합니다(JSON 형식).  

```
{
    "CacheClusters": [
        {
            "Engine": "memcached", 
            "CacheNodes": [
                {
                    "CacheNodeId": "0001", 
                    "Endpoint": {
                        "Port": 11211, 
                        "Address": "mycluster.fnjyzo.cfg.0001.use1.cache.amazonaws.com"
                    }, 
                    "CacheNodeStatus": "available", 
                    "ParameterGroupStatus": "in-sync", 
                    "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", 
                    "CustomerAvailabilityZone": "us-east-1e"
                }, 
                {
                    "CacheNodeId": "0002", 
                    "Endpoint": {
                        "Port": 11211, 
                        "Address": "mycluster.fnjyzo.cfg.0002.use1.cache.amazonaws.com"
                    }, 
                    "CacheNodeStatus": "available", 
                    "ParameterGroupStatus": "in-sync", 
                    "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", 
                    "CustomerAvailabilityZone": "us-east-1a"
                }
            ], 
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [], 
                "CacheParameterGroupName": "default.memcached1.4", 
                "ParameterApplyStatus": "in-sync"
            }, 
            "CacheClusterId": "mycluster", 
            "PreferredAvailabilityZone": "Multiple", 
            "ConfigurationEndpoint": {
                "Port": 11211, 
                "Address": "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com"
            }, 
            "CacheSecurityGroups": [], 
            "CacheClusterCreateTime": "2016-10-12T21:39:28.001Z", 
            "AutoMinorVersionUpgrade": true, 
            "CacheClusterStatus": "available", 
            "NumCacheNodes": 2, 
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
            "CacheSubnetGroupName": "default", 
            "EngineVersion": "1.4.24", 
            "PendingModifiedValues": {}, 
            "PreferredMaintenanceWindow": "sat:06:00-sat:07:00", 
            "CacheNodeType": "cache.r3.large"
        }
    ]
}
```

## ElastiCache 클러스터 클라이언트 다운로드
<a name="AutoDiscovery.Using.ClusterClient"></a>

Auto Discovery를 이용하려면 클라이언트 프로그램에서 *ElastiCache 클러스터 클라이언트*를 사용해야 합니다. ElastiCache 클러스터 클라이언트는 Java, PHP 및 .NET에 사용할 수 있으며 모든 캐시 노드를 검색하고 연결하는 데 필요한 모든 로직을 포함합니다.

**ElastiCache 클러스터 클라이언트를 다운로드하려면**

1. AWS 관리 콘솔에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. ElastiCache 콘솔에서 **ElastiCache Cluster Client(ElastiCache 클러스터 클라이언트)**를 선택한 후 **다운로드**를 선택합니다.

Java용 ElastiCache 클러스터 클라이언트의 소스 코드는 [https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java](https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java)에서 사용할 수 있습니다. 이 라이브러리는 일반적으로 많이 사용되는 Spymemcached 클라이언트를 기반으로 합니다. ElastiCache 클러스터 클라이언트는 Amazon Software License([https://aws.amazon.com/asl](https://aws.amazon.com/asl))에 따라 릴리스됩니다. 원하는 대로 자유롭게 소스 코드를 수정할 수 있습니다. 소스를 다른 오픈 소스 Memcached 라이브러리 또는 자체 클라이언트 코드에 통합할 수도 있습니다.

**참고**  
PHP용 ElastiCache 클러스터 클라이언트를 사용하려면 먼저 클라이언트를 Amazon EC2 인스턴스에 설치해야 합니다. 자세한 내용은 [PHP용 ElastiCache 클러스터 클라이언트 설치](Appendix.PHPAutoDiscoverySetup.md) 섹션을 참조하세요.  
TLS 지원 클라이언트의 경우 PHP 버전 7.4 이상의 바이너리를 다운로드합니다.  
.NET용 ElastiCache 클러스터 클라이언트를 사용하려면 먼저 클라이언트를 Amazon EC2 인스턴스에 설치해야 합니다. 자세한 내용은 [.NET용 ElastiCache 클러스터 클라이언트 설치](Appendix.DotNETAutoDiscoverySetup.md) 섹션을 참조하세요.

## 애플리케이션 프로그램 수정
<a name="AutoDiscovery.Using.ModifyApp"></a>

Auto Discovery를 사용하도록 애플리케이션 프로그램을 수정합니다. 다음 섹션에서는 Java, PHP 및 .NET용 ElastiCache를 사용하는 방법을 보여줍니다.

**중요**  
클러스터의 구성 엔드포인트를 지정할 때 다음과 같이 엔드포인트의 주소에 ".cfg"를 포함해야 합니다. ".cfg"를 포함하지 않은 엔드포인트 또는 CNAME을 사용하지 마십시오.  

```
"mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
```
 클러스터의 구성 엔드포인트를 명시적으로 지정하지 못하면 특정 노드로 구성됩니다.

# Java용 ElastiCache 클러스터 클라이언트 사용
<a name="AutoDiscovery.Using.ModifyApp.Java"></a>

아래 프로그램은 ElastiCache 클러스터 클라이언트를 사용하여 클러스터 구성 엔드포인트에 연결하고 데이터 항목을 캐시에 추가하는 방법을 설명합니다. 프로그램은 Auto Discovery를 사용하여 추가 개입 없이 클러스터에 있는 모든 노드에 연결합니다.

```
package com.amazon.elasticache;

import java.io.IOException;
import java.net.InetSocketAddress;

// Import the &AWS;-provided library with Auto Discovery support 
import net.spy.memcached.MemcachedClient;  

public class AutoDiscoveryDemo {

    public static void main(String[] args) throws IOException {
            
        String configEndpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
        Integer clusterPort = 11211;

        MemcachedClient client = new MemcachedClient(
                                 new InetSocketAddress(configEndpoint, 
                                                       clusterPort));       
        // The client will connect to the other cache nodes automatically.

        // Store a data item for an hour.  
        // The client will decide which cache host will store this item. 
        client.set("theKey", 3600, "This is the data value");
    }
}
```

# PHP용 ElastiCache 클러스터 클라이언트 사용
<a name="AutoDiscovery.Using.ModifyApp.PHP"></a>

아래 프로그램은 ElastiCache 클러스터 클라이언트를 사용하여 클러스터 구성 엔드포인트에 연결하고 데이터 항목을 캐시에 추가하는 방법을 설명합니다. 프로그램은 Auto Discovery를 사용하여 추가 개입 없이 클러스터에 있는 모든 노드에 연결합니다.

PHP용 ElastiCache 클러스터 클라이언트를 사용하려면 먼저 클라이언트를 Amazon EC2 인스턴스에 설치해야 합니다. 자세한 내용은 [PHP용 ElastiCache 클러스터 클라이언트 설치](Appendix.PHPAutoDiscoverySetup.md) 섹션을 참조하세요.

```
<?php
	
 /**
  * Sample PHP code to show how to integrate with the Amazon ElastiCache
  * Auto Discovery feature.
  */

  /* Configuration endpoint to use to initialize memcached client. 
   * This is only an example. 	*/
  $server_endpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
  
  /* Port for connecting to the ElastiCache cluster. 
   * This is only an example 	*/
  $server_port = 11211;

 /**
  * The following will initialize a Memcached client to utilize the Auto Discovery feature.
  * 
  * By configuring the client with the Dynamic client mode with single endpoint, the
  * client will periodically use the configuration endpoint to retrieve the current cache
  * cluster configuration. This allows scaling the cluster up or down in number of nodes
  * without requiring any changes to the PHP application. 
  *
  * By default the Memcached instances are destroyed at the end of the request. 
  * To create an instance that persists between requests, 
  *    use persistent_id to specify a unique ID for the instance. 
  * All instances created with the same persistent_id will share the same connection. 
  * See [http://php.net/manual/en/memcached.construct.php](http://php.net/manual/en/memcached.construct.php) for more information.
  */
  $dynamic_client = new Memcached('persistent-id');
  $dynamic_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::DYNAMIC_CLIENT_MODE);
  $dynamic_client->addServer($server_endpoint, $server_port);
  
  /**
  * Store the data for 60 seconds in the cluster. 
  * The client will decide which cache host will store this item.
  */  
  $dynamic_client->set('key', 'value', 60);  


 /**
  * Configuring the client with Static client mode disables the usage of Auto Discovery
  * and the client operates as it did before the introduction of Auto Discovery. 
  * The user can then add a list of server endpoints.
  */
  $static_client = new Memcached('persistent-id');
  $static_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::STATIC_CLIENT_MODE);
  $static_client->addServer($server_endpoint, $server_port);

 /**
  * Store the data without expiration. 
  * The client will decide which cache host will store this item.
  */  
  $static_client->set('key', 'value');  
  ?>
```

TLS가 활성화된 ElastiCache 클러스터 클라이언트를 사용하는 방법의 예제는 [PHP 및 Memcached에서 전송 시 암호화 사용](in-transit-encryption.md#in-transit-encryption-connect-php-mc) 섹션을 참조하세요.

# .NET용 ElastiCache 클러스터 클라이언트 사용
<a name="AutoDiscovery.Using.ModifyApp.DotNET"></a>

**참고**  
ElastiCache .NET 클러스터 클라이언트는 2022년 5월부터 사용 중단되었습니다.

ElastiCache용 .NET 클라이언트는 [https://github.com/awslabs/elasticache-cluster-config-net](https://github.com/awslabs/elasticache-cluster-config-net)에 있는 오픈 소스입니다.

 .NET 애플리케이션은 대개 구성 파일에서 구성을 가져옵니다. 다음은 샘플 애플리케이션 구성 파일입니다.

```
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section 
            name="clusterclient" 
            type="Amazon.ElastiCacheCluster.ClusterConfigSettings, Amazon.ElastiCacheCluster" />
    </configSections>

    <clusterclient>
        <!-- the hostname and port values are from step 1 above -->
        <endpoint hostname="mycluster.fnjyzo.cfg.use1.cache.amazonaws.com" port="11211" />
    </clusterclient>
</configuration>
```

아래 C\$1 프로그램은 ElastiCache 클러스터 클라이언트를 사용하여 클러스터 구성 엔드포인트에 연결하고 데이터 항목을 캐시에 추가하는 방법을 설명합니다. 프로그램은 Auto Discovery를 사용하여 추가 개입 없이 클러스터에 있는 모든 노드에 연결합니다.

```
// *****************
// Sample C# code to show how to integrate with the Amazon ElastiCcache Auto Discovery feature.

using System;

using Amazon.ElastiCacheCluster;

using Enyim.Caching;
using Enyim.Caching.Memcached;

public class DotNetAutoDiscoveryDemo  {

    public static void Main(String[] args)  {
    
        // instantiate a new client.
        ElastiCacheClusterConfig config = new ElastiCacheClusterConfig();
        MemcachedClient memClient = new MemcachedClient(config);
        
        // Store the data for 3600 seconds (1hour) in the cluster. 
        // The client will decide which cache host will store this item.
        memClient.Store(StoreMode.Set, 3600, "This is the data value.");
        
    }  // end Main
    
}  // end class DotNetAutoDiscoverDemo
```

# Memcached 캐시 노드에 수동으로 연결
<a name="AutoDiscovery.Manual"></a>

클라이언트 프로그램이 Auto Discovery를 사용하지 않는 경우 프로그램은 수동으로 Memached 캐시 노드 각각에 연결할 수 있습니다. 이 방법이 Memcached 클라이언트의 기본 방법입니다.

[AWS관리 콘솔](https://aws.amazon.com/console/)에서 캐시 노드 호스트 이름 및 포트 번호 목록을 확보할 수 있습니다. `--show-cache-node-info` 파라미터와AWS CLI`aws elasticache describe-cache-clusters` 함께 명령을 사용할 수도 있습니다.

**Example**  
다음 Java 코드 조각은 노드가 4개인 클러스터에 있는 모든 노드에 연결하는 방법을 보여 줍니다.  

```
...

ArrayList<String> cacheNodes = new ArrayList<String>(
	Arrays.asList(
	    "mycachecluster.fnjyzo.0001.use1.cache.amazonaws.com:11211",
	    "mycachecluster.fnjyzo.0002.use1.cache.amazonaws.com:11211",
	    "mycachecluster.fnjyzo.0003.use1.cache.amazonaws.com:11211",
	    "mycachecluster.fnjyzo.0004.use1.cache.amazonaws.com:11211"));
	      
MemcachedClient cache = new MemcachedClient(AddrUtil.getAddresses(cacheNodes));

...
```

**중요**  
노드를 추가 또는 삭제하여 클러스터를 스케일 업 또는 스케일 다운하는 경우 클라이언트 노드에서 노드 목록을 업데이트해야 합니다.

# Memcached 클라이언트 라이브러리에 Auto Discovery 추가
<a name="AutoDiscovery.AddingToYourClientLibrary"></a>

Auto Discovery의 구성 정보는 각 Memcached 클러스터 노드에 중복 저장됩니다. 클라이언트 애플리케이션은 모든 캐시 노드를 쿼리하고 클러스터에서 모든 노드의 구성 정보를 확보할 수 있습니다.

애플리케이션이 이 작업을 수행하는 방법은 캐시 엔진 버전에 따라 달라집니다.
+ 캐시 엔진 버전이 **1.4.14 이상**인 경우 `config` 명령을 사용합니다.
+ 캐시 엔진 버전이 **1.4.14 미만인 경우** `get AmazonElastiCache:cluster` 명령을 사용합니다.

이러한 두 명령의 출력은 동일하며 아래 [출력 형식](#AutoDiscovery.AddingToYourClientLibrary.OutputFormat) 섹션에서 설명됩니다.

## 캐시 엔진 버전 1.4.14 이상
<a name="AutoDiscovery.AddingToYourClientLibrary.1-4-14-plus"></a>

캐시 엔진 버전 1.4.14 이상인 경우 `config` 명령을 사용합니다. 이 명령은 ElastiCache에 의해 Memcached ASCII 및 바이너리 프로토콜에 추가되었으며 ElastiCache 클러스터 클라이언트에서 구현됩니다. 다른 클라이언트 라이브러리에 Auto Discovery를 사용하려면 해당 라이브러리가 `config` 명령을 지원하도록 확장될 필요가 있습니다.

**참고**  
다음 설명은 ASCII 프로토콜에 관련한 것이지만 `config` 명령은 ASCII 및 바이너리 모두를 지원합니다. 바이너리 프로토콜을 사용하여 Auto Discovery 지원을 추가하려면 [ElastiCache 클러스터 클라이언트에 대한 소스 코드](https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java/tree/master/src/main/java/net/spy/memcached/protocol/binary)를 참조하세요.

**구문**

`config [sub-command] [key]`

### 옵션
<a name="AutoDiscovery.AddingToYourClientLibrary.1-4-14-plus.Options"></a>


| 이름 | 설명 | 필수 | 
| --- | --- | --- | 
| sub-command |  캐시 노드와 상호 작용하는 데 사용되는 하위 명령입니다. Auto Discovery의 경우 이 하위 명령은 `get`입니다.  | 예 | 
| key |  클러스터 구성이 저장되어 있는 키입니다. Auto Discovery의 경우 이 키 이름은 `cluster`입니다.  | 예 | 

클러스터 구성 정보를 보려면 다음 명령을 사용합니다.

```
config get cluster
```

## 캐시 엔진 버전 1.4.14 미만
<a name="AutoDiscovery.AddingToYourClientLibrary.pre-1-4-14"></a>

클러스터 구성 정보를 보려면 다음 명령을 사용합니다.

```
get AmazonElastiCache:cluster
```

**참고**  
"AmazonElastiCache:cluster" 키에는 클러스터 구성 정보가 상주하므로 이 키를 함부로 변경하지 마십시오. 이 키를 덮어쓰면 ElastiCache가 자동으로 올바르게 구성 정보를 업데이트하기 전에 클라이언트가 짧은 시간 동안(15초 미만) 잘못 구성될 수 있습니다.

## 출력 형식
<a name="AutoDiscovery.AddingToYourClientLibrary.OutputFormat"></a>

`config get cluster`를 사용하든, `get AmazonElastiCache:cluster`를 사용하든 응답은 두 줄로 구성됩니다.
+ 구성 정보의 버전 번호. 매번 노드가 클러스터에서 추가 또는 제거될 때마다 버전 번호가 하나씩 증가합니다.
+ 캐시 노드 목록. 목록의 각 노드는 *hostname\$1ip-address\$1port* 그룹으로 표현되며 각 노드는 공백으로 구분됩니다.

캐리지 리턴 및 줄 바꿈 문자(CR \$1 LF)는 각 행의 끝에 표시됩니다. 데이터 행 끝에 줄 바꿈 문자(LF)가 포함되며 여기에 CR \$1 LF가 추가됩니다. 구성 버전 행은 CR 없이 LF로 종결됩니다.

노드가 3개인 클러스터는 다음과 같이 표현됩니다.

```
configversion\n
hostname|ip-address|port hostname|ip-address|port hostname|ip-address|port\n\r\n
```

각 노드는 CNAME 및 사설 IP 주소 모두를 표시됩니다. CNAME은 항상 있으며 사설 IP 주소가 사용 불가능한 경우 표시되지 않지만 파이프 문자 "`|`"는 여전히 프린트됩니다.

**Example**  
다음은 구성 정보를 쿼리할 때 반환되는 페이로드의 예입니다.  

```
CONFIG cluster 0 136\r\n
12\n
myCluster.pc4ldq.0001.use1.cache.amazonaws.com|10.82.235.120|11211 myCluster.pc4ldq.0002.use1.cache.amazonaws.com|10.80.249.27|11211\n\r\n 
END\r\n
```

**참고**  
두 번째 행은 구성 정보가 이제까지 12회 수정되었음을 나타냅니다.
세 번째 행에서는 노드 목록이 호스트 이름의 사전순으로 지정됩니다. 이 정렬 순서는 클라이언트 애플리케이션에서 현재 사용 중인 것과 다른 순서로 되어 있을 수도 있습니다.

# Auto Discovery가 있는 ElastiCache 클라이언트
<a name="Clients"></a>

클러스터 클라이언트 프로그램은 Memcached 엔진을 실행하는 모든 클러스터 노드를 자동으로 식별하고 연결할 수 있습니다.

이 섹션에서는 자동 검색에 사용할 수 있도록 ElastiCache PHP 및 .NET 클라이언트를 설치 및 구성하는 방법에 대해 설명합니다.

**Topics**
+ [클러스터 클라이언트 설치 및 컴파일](Appendix.InstallingClients.md)
+ [ElastiCache 클라이언트 구성](ClientConfig.md)

# 클러스터 클라이언트 설치 및 컴파일
<a name="Appendix.InstallingClients"></a>

이 섹션에서는 PHP 및 .NET Amazon ElastiCache 자동 검색 클러스터 클라이언트의 설치, 구성 및 컴파일을 다룹니다.

**Topics**
+ [.NET용 ElastiCache 클러스터 클라이언트 설치](Appendix.DotNETAutoDiscoverySetup.md)
+ [PHP용 ElastiCache 클러스터 클라이언트 설치](Appendix.PHPAutoDiscoverySetup.md)
+ [PHP용 ElastiCache 클러스터 클라이언트에 대한 소스 코드 컴파일](Appendix.PHPAutoDiscoveryCompile.md)

# .NET용 ElastiCache 클러스터 클라이언트 설치
<a name="Appendix.DotNETAutoDiscoverySetup"></a>

ElastiCache .NET 클러스터 클라이언트 코드는 [https://github.com/awslabs/elasticache-cluster-config-net](https://github.com/awslabs/elasticache-cluster-config-net)에서 오픈 소스로 찾을 수 있습니다.

이 섹션에서는 Amazon EC2 인스턴스에서 ElastiCache 클러스터 클라이언트에 대한 .NET 구성 요소를 설치, 업데이트 및 제거하는 방법에 대해 설명합니다. Auto Discovery에 대한 자세한 내용은 [클러스터의 노드 자동 식별(Memcached)](AutoDiscovery.md) 섹션을 참조하세요. 클라이언트를 사용할 샘플 .NET 코드는 [.NET용 ElastiCache 클러스터 클라이언트 사용](AutoDiscovery.Using.ModifyApp.DotNET.md) 섹션을 참조하세요.

**Topics**
+ [.NET 설치](#Appendix.DotNETAutoDiscoverySetup.DotNET)
+ [ElastiCache용 ElastiCache .NET 클러스터 클라이언트 다운로드](#Appendix.DotNETAutoDiscoverySetup.Downloading)
+ [NuGet으로 AWS 어셈블리 설치](#Appendix.DotNETAutoDiscoverySetup.Installing)

## .NET 설치
<a name="Appendix.DotNETAutoDiscoverySetup.DotNET"></a>

ElastiCache용 AWS .NET SDK를 사용하려면 .NET 3.5 이상이 설치되어 있어야 합니다. .NET 3.5 이상이 설치되어 있지 않은 경우 [http://www.microsoft.com/net](http://www.microsoft.com/net)에서 최신 버전을 다운로드하여 설치할 수 있습니다.

## ElastiCache용 ElastiCache .NET 클러스터 클라이언트 다운로드
<a name="Appendix.DotNETAutoDiscoverySetup.Downloading"></a>

**ElastiCache .NET 클러스터 클라이언트를 다운로드하려면**

1. AWS Management Console에 로그인하고[ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 [**ElastiCache Cluster Client**]를 클릭합니다.

1. [**Download ElastiCache Memcached Cluster Client**] 목록에서 [**.NET**]을 선택한 다음 [**Download**]를 클릭합니다.

## NuGet으로 AWS 어셈블리 설치
<a name="Appendix.DotNETAutoDiscoverySetup.Installing"></a>

NuGet은 .NET 플랫폼을 위한 패키지 관리 시스템입니다. NuGet은 어셈블리 종속성을 인식하며 모든 필수 파일을 자동으로 설치합니다. NuGet이 설치된 어셈블리는 `Program Files`와 같은 중앙 위치가 아닌 솔루션에 저장되므로 호환성 문제 없이 애플리케이션에 특정한 버전을 설치할 수 있습니다.

### NuGet 설치
<a name="Appendix.DotNETAutoDiscoverySetup.Installing.NuGet"></a>

MSDN의 Installation Gallery([https://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c](https://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c) 참조)에서 NuGet을 설치할 수 있습니다. Visual Studio 2010 이상을 사용하는 경우 NuGet이 자동으로 설치됩니다.

[**Solution Explorer**] 또는 [**Package Manager Console**]에서 NuGet을 사용할 수 있습니다.

### Solution Explorer에서 NuGet 사용
<a name="Appendix.DotNETAutoDiscoverySetup.NuGet.SolutionExplorer"></a>

**Visual Studio 2010의 Solution Explorer에서 NuGet을 사용하려면**

1. [**Tools**] 메뉴에서 [**Library Package Manager**]를 선택합니다.

1. [**Package Manager Console**]을 클릭합니다.

**Visual Studio 2012 또는 Visual Studio 2013의 Solution Explorer에서 NuGet을 사용하려면**

1. [**Tools**] 메뉴에서 [**NuGet Package Manager**]를 선택합니다.

1. [**Package Manager Console**]을 클릭합니다.

명령줄에서 다음에 표시된 대로 `Install-Package`를 사용하여 어셈블리를 설치할 수 있습니다.

```
Install-Package Amazon.ElastiCacheCluster
```

AWSSDK 및 AWS.Extensions 어셈블리 등 NuGet을 통해 사용할 수 있는 모든 패키지에 대한 페이지를 보려면 [http://www.nuget.org](http://www.nuget.org)의 NuGet 웹 사이트를 참조하세요. 각 패키지의 페이지에는 콘솔을 사용하여 패키지를 설치하기 위한 샘플 명령줄과 NuGet을 통해 사용할 수 있는 패키지의 이전 버전 목록이 포함되어 있습니다.

**Package Manager Console** 명령에 대한 자세한 내용은 [http://nuget.codeplex.com/wikipage?title=Package%20Manager%20Console%20Command%20Reference%20%28v1.3%29](http://nuget.codeplex.com/wikipage?title=Package%20Manager%20Console%20Command%20Reference%20%28v1.3%29)를 참조하세요.

# PHP용 ElastiCache 클러스터 클라이언트 설치
<a name="Appendix.PHPAutoDiscoverySetup"></a>

이 섹션에서는 Amazon EC2 인스턴스에서 ElastiCache 클러스터 클라이언트에 대한 PHP 구성 요소를 설치, 업데이트 및 제거하는 방법에 대해 설명합니다. Auto Discovery에 대한 자세한 내용은 [클러스터의 노드 자동 식별(Memcached)](AutoDiscovery.md) 섹션을 참조하세요. 클라이언트를 사용할 샘플 PHP 코드는 [PHP용 ElastiCache 클러스터 클라이언트 사용](AutoDiscovery.Using.ModifyApp.PHP.md) 섹션을 참조하세요.

**Topics**
+ [설치 패키지 다운로드](Appendix.PHPAutoDiscoverySetup.Downloading.md)
+ [이미 *php-memcached* 확장 프로그램을 설치한 사용자의 경우](#Appendix.PHPAutoDiscoverySetup.InstallingExisting)
+ [신규 사용자를 위한 설치 단계](Appendix.PHPAutoDiscoverySetup.Installing.md)
+ [PHP 클러스터 클라이언트 제거](Appendix.PHPAutoDiscoverySetup.Removing.md)

# 설치 패키지 다운로드
<a name="Appendix.PHPAutoDiscoverySetup.Downloading"></a>

올바른 버전의 PHP용 ElastiCache 클러스터 클라이언트를 사용하는지 확인하려면 Amazon EC2 인스턴스에 설치된 PHP 버전을 알아야 합니다. Amazon EC2 인스턴스에서 실행되는 Linux 버전이 64비트인지 32비트인지도 알아야 합니다.

**Amazon EC2 인스턴스에 설치되어 있는 PHP 버전을 확인하려면**
+ 명령 프롬프트에서 다음 명령을 실행합니다.

  ```
  php -v
  ```

  PHP 버전은 다음 예와 같이 출력에 표시됩니다.

  ```
  PHP 5.4.10 (cli) (built: Jan 11 2013 14:48:57) 
  Copyright (c) 1997-2012 The PHP Group
  Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
  ```
**참고**  
PHP 및 Memcached 버전이 호환되지 않는 경우 다음과 같은 오류 메시지가 표시됩니다.  

  ```
  PHP Warning: PHP Startup: memcached: Unable to initialize module
  Module compiled with module API=20100525
  PHP compiled with module API=20131226
  These options need to match
  in Unknown on line 0
  ```
이러한 경우 소스 코드에서 모듈을 컴파일해야 합니다. 자세한 내용은 [PHP용 ElastiCache 클러스터 클라이언트에 대한 소스 코드 컴파일](Appendix.PHPAutoDiscoveryCompile.md) 섹션을 참조하세요.

**Amazon EC2 AMI 아키텍처(64비트 또는 32비트)를 확인하려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. **인스턴스** 목록에서 Amazon EC2 인스턴스를 클릭합니다.

1. **Description** 탭에서 **AMI:** 필드를 찾습니다. 64비트 인스턴스는 설명에 `x86_64`를 포함해야 하며 32비트 인스턴스는 이 필드에 `i386` 또는 `i686`를 포함합니다.

이제 ElastiCache 클러스터 클라이언트를 다운로드할 준비가 되었습니다.

**PHP용 ElastiCache 클러스터 클라이언트를 다운로드하려면**

1. AWS Management Console에 로그인하고[ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. ElastiCache 콘솔에서 **ElastiCache Cluster Client(ElastiCache 클러스터 클라이언트)**를 선택합니다.

1. **ElastiCache Memcached 클러스터 클라이언트 다운로드** 목록에서 PHP 버전 및 AMI 아키텍처에 맞는 ElastiCache 클러스터 클라이언트를 선택한 다음 **다운로드** 버튼을 선택합니다.

## 이미 *php-memcached* 확장 프로그램을 설치한 사용자의 경우
<a name="Appendix.PHPAutoDiscoverySetup.InstallingExisting"></a>

**`php-memcached` 설치를 업데이트하려면**

1. [PHP 클러스터 클라이언트 제거](Appendix.PHPAutoDiscoverySetup.Removing.md) 항목에 명시된 대로 이전에 설치된 PHP용 Memcached 확장명을 제거합니다.

1. 이전에 [신규 사용자를 위한 설치 단계](Appendix.PHPAutoDiscoverySetup.Installing.md)에 명시된 대로 새 ElastiCache `php-memcached` 확장 프로그램을 설치합니다.

# 신규 사용자를 위한 설치 단계
<a name="Appendix.PHPAutoDiscoverySetup.Installing"></a>

**Topics**
+ [신규 사용자를 위한 PHP 7.x 설치](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x)
+ [신규 사용자를 위한 PHP 5.x 설치](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x)

## 신규 사용자를 위한 PHP 7.x 설치
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x"></a>

**Topics**
+ [Ubuntu 서버 14.04 LTS AMI(64비트 및 32비트)에서 PHP 7을 설치하려면](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.Ubuntu)
+ [Amazon Linux 201609 AMI에서 PHP 7을 설치하려면](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.AmznLinux)
+ [SUSE Linux AMI에서 PHP 7을 설치하려면](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.SuseLinux)

### Ubuntu 서버 14.04 LTS AMI(64비트 및 32비트)에서 PHP 7을 설치하려면
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.Ubuntu"></a>

1. AMI에서 새 인스턴스를 시작합니다.

1. 다음 명령을 실행합니다.

   ```
   sudo apt-get update
   sudo apt-get install gcc g++
   ```

1. PHP 7을 설치합니다.

   ```
   sudo yum install php70
   ```

1. Amazon ElastiCache 클러스터 클라이언트를 다운로드합니다.

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. `latest-64bit`를 추출합니다.

   ```
   tar -zxvf latest-64bit
   ```

1. 루트 권한으로 추출된 아티팩트 파일 `amazon-elasticache-cluster-client.so`를 `/usr/lib/php/20151012`로 복사합니다.

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib/php/20151012
   ```

1. `extension=amazon-elasticache-cluster-client.so` 라인을 `/etc/php/7.0/cli/php.ini` 파일에 삽입합니다.

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php/7.0/cli/php.ini
   ```

1. Apache 서버를 시작하거나 다시 시작합니다.

   ```
   sudo /etc/init.d/httpd start
   ```

 

### Amazon Linux 201609 AMI에서 PHP 7을 설치하려면
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.AmznLinux"></a>

1. AMI에서 새 인스턴스를 시작합니다.

1. 다음 명령을 실행합니다.

   ```
   sudo yum install gcc-c++
   ```

1. PHP 7을 설치합니다.

   ```
   sudo yum install php70
   ```

1. Amazon ElastiCache 클러스터 클라이언트를 다운로드합니다.

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. `latest-64bit`를 추출합니다.

   ```
   tar -zxvf latest-64bit
   ```

1. 루트 권한으로 추출된 아티팩트 파일 `amazon-elasticache-cluster-client.so`를 `/usr/lib64/php/7.0/modules/`로 복사합니다.

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib64/php/7.0/modules/
   ```

1. `50-memcached.ini` 파일을 생성합니다.

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php-7.0.d/50-memcached.ini
   ```

1. Apache 서버를 시작하거나 다시 시작합니다.

   ```
   sudo /etc/init.d/httpd start
   ```

 

### SUSE Linux AMI에서 PHP 7을 설치하려면
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.SuseLinux"></a>

1. AMI에서 새 인스턴스를 시작합니다.

1. 다음 명령을 실행합니다.

   ```
   sudo zypper install gcc
   ```

1. PHP 7을 설치합니다.

   ```
   sudo yum install php70
   ```

1. Amazon ElastiCache 클러스터 클라이언트를 다운로드합니다.

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. `latest-64bit`를 추출합니다.

   ```
   tar -zxvf latest-64bit
   ```

1. 루트 권한으로 추출된 아티팩트 파일 `amazon-elasticache-cluster-client.so`를 `/usr/lib64/php7/extensions/`로 복사합니다.

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib64/php7/extensions/
   ```

1. `extension=amazon-elasticache-cluster-client.so` 라인을 `/etc/php7/cli/php.ini` 파일에 삽입합니다.

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php7/cli/php.ini
   ```

1. Apache 서버를 시작하거나 다시 시작합니다.

   ```
   sudo /etc/init.d/httpd start
   ```

 

## 신규 사용자를 위한 PHP 5.x 설치
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x"></a>

**Topics**
+ [Amazon Linux AMI 2014.03(64비트 및 32비트)에서 PHP 5를 설치하려면](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.AmznLinux)
+ [Red Hat Enterprise Linux 7.0 AMI(64비트 및 32비트)에서 PHP 5를 설치하려면](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.RHEL)
+ [Ubuntu 서버 14.04 LTS AMI(64비트 및 32비트)에서 PHP 5를 설치하려면](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Ubuntu)
+ [SUSE Linux 엔터프라이즈 서버 11 AMI(64비트 또는 32비트)용 PHP 5를 설치하려면](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.SuseLinux)
+ [기타 Linux 배포](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Other)

### Amazon Linux AMI 2014.03(64비트 및 32비트)에서 PHP 5를 설치하려면
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.AmznLinux"></a>

1. Amazon Linux 인스턴스(64비트 또는 32비트 )를 시작하여 인스턴스에 로그인합니다.

1. PHP 종속 파일을 설치합니다.

   ```
   sudo yum install gcc-c++ php php-pear
   ```

1. Amazon EC2 인스턴스 및 PHP 버전용 올바른 `php-memcached` 패키지를 다운로드합니다. 자세한 내용은 [설치 패키지 다운로드](Appendix.PHPAutoDiscoverySetup.Downloading.md) 섹션을 참조하세요.

1. `php-memcached`을 설치합니다. URI는 설치 패키지에 대한 다운로드 경로여야 합니다.

   ```
   sudo pecl install <package download path>
   ```

   다음은 PHP 5.4, 64비트 Linux용 샘플 설치 명령입니다. 이 샘플에 사용된 *X.Y.Z*를 실제 버전 번호로 교체해야 합니다.

   ```
   sudo pecl install /home/AmazonElastiCacheClusterClient-X.Y.Z-PHP54-64bit.tgz
   ```
**참고**  
최신 버전의 설치 아티팩트를 사용하세요.

1. 루트/sudo 권한으로 `memcached.ini` 디렉터리에 이름이 `/etc/php.d`인 새 파일을 추가하고 파일에 "extension=amazon-elasticache-cluster-client.so"를 삽입합니다.

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php.d/memcached.ini
   ```

1. Apache 서버를 시작하거나 다시 시작합니다.

   ```
   sudo /etc/init.d/httpd start
   ```

 

### Red Hat Enterprise Linux 7.0 AMI(64비트 및 32비트)에서 PHP 5를 설치하려면
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.RHEL"></a>

1. Red Hat Enterprise Linux 인스턴스(64비트 또는 32비트)를 시작하여 인스턴스에 로그인합니다.

1. PHP 종속 파일을 설치합니다.

   ```
   sudo yum install gcc-c++ php php-pear
   ```

1. Amazon EC2 인스턴스 및 PHP 버전용 올바른 `php-memcached` 패키지를 다운로드합니다. 자세한 내용은 [설치 패키지 다운로드](Appendix.PHPAutoDiscoverySetup.Downloading.md) 섹션을 참조하세요.

1. `php-memcached`을 설치합니다. URI는 설치 패키지에 대한 다운로드 경로여야 합니다.

   ```
   sudo pecl install <package download path>
   ```

1. 루트/sudo 권한으로 `memcached.ini` 디렉터리에 이름이 `/etc/php.d`인 새 파일을 추가하고 파일에 `extension=amazon-elasticache-cluster-client.so`를 삽입합니다.

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php.d/memcached.ini
   ```

1. Apache 서버를 시작하거나 다시 시작합니다.

   ```
   sudo /etc/init.d/httpd start
   ```

 

### Ubuntu 서버 14.04 LTS AMI(64비트 및 32비트)에서 PHP 5를 설치하려면
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Ubuntu"></a>

1. Ubuntu Linux 인스턴스(64비트 또는 32비트)를 시작하여 인스턴스에 로그인합니다.

1. PHP 종속 파일을 설치합니다.

   ```
   sudo apt-get update 
   sudo apt-get install gcc g++ php5 php-pear
   ```

1. Amazon EC2 인스턴스 및 PHP 버전용 올바른 `php-memcached` 패키지를 다운로드합니다. 자세한 내용은 [설치 패키지 다운로드](Appendix.PHPAutoDiscoverySetup.Downloading.md) 섹션을 참조하세요.

1. `php-memcached`을 설치합니다. URI는 설치 패키지에 대한 다운로드 경로여야 합니다.

   ```
   sudo pecl install <package download path>
   ```
**참고**  
이 설치 단계에서는 빌드 아티팩트 `amazon-elasticache-cluster-client.so`를 `/usr/lib/php5/20121212*` 디렉터리에 설치합니다. 다음 단계에서 필요한 빌드 아티팩트의 절대 경로를 확인하세요.

   이전 명령이 작동하지 않으면 다운로드된 `amazon-elasticache-cluster-client.so` 파일에서 PHP 클라이언트 아티팩트 `*.tgz`를 수동으로 추출하여 `/usr/lib/php5/20121212*` 디렉터리에 복사해야 합니다.

   ```
   tar -xvf <package download path>
   cp amazon-elasticache-cluster-client.so /usr/lib/php5/20121212/
   ```

1. 루트/sudo 권한으로 `memcached.ini` 디렉터리에 이름이 `/etc/php5/cli/conf.d`인 새 파일을 추가하고 파일에 "extension=<absolute path to amazon-elasticache-cluster-client.so>"를 삽입합니다.

   ```
   echo "extension=<absolute path to amazon-elasticache-cluster-client.so>" | sudo tee --append /etc/php5/cli/conf.d/memcached.ini
   ```

1. Apache 서버를 시작하거나 다시 시작합니다.

   ```
   sudo /etc/init.d/httpd start
   ```

 

### SUSE Linux 엔터프라이즈 서버 11 AMI(64비트 또는 32비트)용 PHP 5를 설치하려면
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.SuseLinux"></a>

1. SUSE Linux 인스턴스(64비트 또는 32비트)를 시작하여 인스턴스에 로그인합니다.

1. PHP 종속 파일을 설치합니다.

   ```
   sudo zypper install gcc php53-devel
   ```

1. Amazon EC2 인스턴스 및 PHP 버전용 올바른 `php-memcached` 패키지를 다운로드합니다. 자세한 내용은 [설치 패키지 다운로드](Appendix.PHPAutoDiscoverySetup.Downloading.md) 섹션을 참조하세요.

1. `php-memcached`을 설치합니다. URI는 설치 패키지에 대한 다운로드 경로여야 합니다.

   ```
   sudo pecl install <package download path>
   ```

1. 루트/sudo 권한으로 `memcached.ini` 디렉터리에 이름이 `/etc/php5/conf.d`인 새 파일을 추가하고 파일에 **extension=`amazon-elasticache-cluster-client.so`**를 삽입합니다.

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php5/conf.d/memcached.ini
   ```

1. Apache 서버를 시작하거나 다시 시작합니다.

   ```
   sudo /etc/init.d/httpd start
   ```

**참고**  
이전의 모든 플랫폼에 대해 5단계가 작동하지 않으면 `amazon-elasticache-cluster-client.so`의 설치 경로를 확인하고 확장명에 바이너리의 전체 경로를 지정하세요. 또한 사용 중인 PHP가 지원되는 버전인지 확인하세요. 5.3\$15.5의 버전이 지원됩니다.

 

### 기타 Linux 배포
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Other"></a>

일부 시스템(특히 CentOS7 및 Red Hat Enterprise Linux (RHEL) 7.1)에서는 `libsasl2.so.3`이 `libsasl2.so.2`로 대체되었습니다. 이러한 시스템에서 ElastiCache 클러스터 클라이언트를 로드하면 `libsasl2.so.2`를 찾아 로드하려고 시도하지만 실패합니다. 이 문제를 해결하려면 `libsasl2.so.3`에 대한 심볼 링크를 생성합니다. 그러면 클라이언트가 libsasl2.so.2를 로드하려고 시도할 때 `libsasl2.so.3`으로 리디렉션됩니다. 다음 코드는 이 심볼 링크를 생성합니다.

```
cd /usr/lib64
sudo ln libsasl2.so.3 libsasl2.so.2
```

# PHP 클러스터 클라이언트 제거
<a name="Appendix.PHPAutoDiscoverySetup.Removing"></a>

**Topics**
+ [이전 버전의 PHP 7 제거](#Appendix.PHPAutoDiscoverySetup.Removing.PHP7x)
+ [이전 버전의 PHP 5 제거](#Appendix.PHPAutoDiscoverySetup.Removing.PHP5x)

## 이전 버전의 PHP 7 제거
<a name="Appendix.PHPAutoDiscoverySetup.Removing.PHP7x"></a>

**이전 버전의 PHP 7을 제거하려면**

1. 이전에 설치 지침에 표시된 대로 해당하는 PHP 라이브러리 디렉터리에서 `amazon-elasticache-cluster-client.so` 파일을 제거합니다. [이미 *php-memcached* 확장 프로그램을 설치한 사용자의 경우](Appendix.PHPAutoDiscoverySetup.md#Appendix.PHPAutoDiscoverySetup.InstallingExisting)의 설치에 대한 섹션을 참조하세요.

1. `extension=amazon-elasticache-cluster-client.so` 파일에서 `php.ini` 라인을 제거합니다.

1. Apache 서버를 시작하거나 다시 시작합니다.

   ```
   sudo /etc/init.d/httpd start
   ```

## 이전 버전의 PHP 5 제거
<a name="Appendix.PHPAutoDiscoverySetup.Removing.PHP5x"></a>

**이전 버전의 PHP 5를 제거하려면**

1. `php-memcached` 확장 프로그램을 삭제합니다.

   ```
   sudo pecl uninstall __uri/AmazonElastiCacheClusterClient
   ```

1.  이전 설치 단계에 표시된 대로 해당하는 디렉터리에 추가된 `memcached.ini` 파일을 제거합니다.

# PHP용 ElastiCache 클러스터 클라이언트에 대한 소스 코드 컴파일
<a name="Appendix.PHPAutoDiscoveryCompile"></a>

이 섹션에서는 PHP용 ElastiCache 클러스터 클라이언트에 대한 소스 코드를 획득 및 컴파일하는 방법을 다룹니다.

[aws-elasticache-cluster-client-libmemcached](https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached) 및 [aws-elasticache-cluster-client-memcached-for-php](https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php)의 두 패키지는 GitHub에서 가져와 컴파일해야 합니다.

**Topics**
+ [libmemcached 라이브러리 컴파일](#Appendix.PHPAutoDiscoveryCompile.Libmemcached)
+ [PHP용 ElastiCache Memcached 자동 검색 클라이언트 컴파일](#Appendix.PHPAutoDiscoveryCompile.Client)

## libmemcached 라이브러리 컴파일
<a name="Appendix.PHPAutoDiscoveryCompile.Libmemcached"></a>

**aws-elasticache-cluster-client-libmemcached 라이브러리를 컴파일하려면 다음을 수행하세요.**

1. Amazon EC2 인스턴스 시작

1. 라이브러리 종속 항목을 설치합니다.
   + Amazon Linux 201509 AMI의 경우

     ```
     sudo yum install gcc gcc-c++ autoconf libevent-devel
     ```
   + Ubuntu 14.04 AMI의 경우

     ```
     sudo apt-get update
     sudo apt-get install libevent-dev gcc g++ make autoconf libsasl2-dev
     ```

1. 리포지토리를 가져오고 코드를 컴파일합니다.

   ```
   Download and install [ https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached/archive/v1.0.18.tar.gz]( https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached/archive/v1.0.18.tar.gz)
   ```

## PHP용 ElastiCache Memcached 자동 검색 클라이언트 컴파일
<a name="Appendix.PHPAutoDiscoveryCompile.Client"></a>

다음 섹션에서는 ElastiCache Memcached Auto Discovery 클라이언트를 컴파일하는 방법을 설명합니다.

**Topics**
+ [PHP 7용 ElastiCache Memcached 클라이언트 컴파일](#Appendix.PHPAudiscoveryCompile.Client.PHP7)
+ [PHP 5용 ElastiCache Memcached 클라이언트 컴파일](#Appendix.PHPAudiscoveryCompile.PHP5)

### PHP 7용 ElastiCache Memcached 클라이언트 컴파일
<a name="Appendix.PHPAudiscoveryCompile.Client.PHP7"></a>

코드 디렉터리에서 다음 명령 세트를 실행합니다.

```
git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git
cd aws-elasticache-cluster-client-memcached-for-php 
git checkout php7
sudo yum install php70-devel
phpize
./configure --with-libmemcached-dir=<libmemcached-install-directory> --disable-memcached-sasl
make
make install
```

**참고**  
다양한 Linux 플랫폼으로 이식될 수 있도록 libmemcached 라이브러리를 PHP 바이너리에 정적으로 연결할 수 있습니다. 이렇게 하려면 `make` 전에 다음 명령을 실행하세요.  

```
sed -i "s#-lmemcached#<libmemcached-install-directory>/lib/libmemcached.a -lcrypt -lpthread -lm -lstdc++ -lsasl2#" Makefile 
```

### PHP 5용 ElastiCache Memcached 클라이언트 컴파일
<a name="Appendix.PHPAudiscoveryCompile.PHP5"></a>

`aws-elasticache-cluster-client-memcached-for-php` 폴더에서 다음 명령을 실행하여 `aws-elasticache-cluster-client-memcached-for-php/`를 컴파일합니다.

```
git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git
cd aws-elasticache-cluster-client-memcached-for-php 
sudo yum install zlib-devel
phpize
./configure --with-libmemcached-dir=<libmemcached-install-directory>
make
make install
```

# ElastiCache 클라이언트 구성
<a name="ClientConfig"></a>

ElastiCache 클러스터는 Valkey, Memcached, Redis OSS와 프로토콜이 호환됩니다. 현재 기존 환경과 함께 사용하고 있는 코드, 애플리케이션 및 인기 도구는 서비스와 원활하게 연동합니다.

이 섹션은 ElastiCache에 있는 캐시 노드에 연결하기 위한 특정 고려 사항을 설명합니다.

**Topics**
+ [제한된 명령](ClientConfig.RestrictedCommands.md)
+ [노드 엔드포인트 및 포트 번호 찾기](ClientConfig.FindingEndpointsAndPorts.md)
+ [자동 검색 사용을 위한 연결](ClientConfig.AutoDiscovery.md)
+ [Valkey 및 Redis OSS 클러스터의 노드에 연결](ClientConfig.ReplicationGroup.md)
+ [DNS 이름 및 기본 IP](ClientConfig.DNS.md)

# 제한된 명령
<a name="ClientConfig.RestrictedCommands"></a>

관리형 서비스 환경을 제공하기 위해 ElastiCache는 고급 권한이 필요한 특정 캐시 엔진별 명령에 대한 액세스를 제한합니다. Redis OSS를 실행하는 클러스터에서는 다음 명령을 사용할 수 없습니다.
+ `bgrewriteaof`
+ `bgsave`
+ `config`
+ `debug`
+ `migrate`
+ `replicaof`
+ `save`
+ `slaveof`
+ `shutdown`
+ `sync`

# 노드 엔드포인트 및 포트 번호 찾기
<a name="ClientConfig.FindingEndpointsAndPorts"></a>

캐시 노드에 연결하려는 애플리케이션은 해당 노드의 Endpoint 및 포트 번호를 알아야 합니다.

## 노드 엔드포인트 및 포트 번호 찾기(콘솔)
<a name="ClientConfig.FindingEndpointsAndPorts.CON"></a>

 **노드 엔드포인트 및 포트 번호를 확인하려면** 

1. [Amazon ElastiCache 관리 콘솔](https://aws.amazon.com/elasticache)에 로그인한 후 클러스터에서 실행 중인 엔진을 선택합니다.

   선택한 엔진을 실행하고 있는 모든 클러스터의 목록이 표시됩니다.

1. 실행 중인 엔진 및 구성에 대해 다음을 계속합니다.

1. 관심 있는 클러스터의 이름을 선택합니다.

1. 관심이 있는 노드에 대한 [**Port**] 및 [**Endpoint**] 열을 찾습니다.

## 캐시 노드 엔드포인트 및 포트 번호 찾기(AWS CLI)
<a name="ClientConfig.FindingEndpointsAndPorts.CLI"></a>

캐시 노드 엔드포인트 및 포트 번호를 확인하려면 `describe-cache-clusters` 명령을 `--show-cache-node-info` 파라미터와 함께 사용하세요.

```
aws elasticache describe-cache-clusters --show-cache-node-info 
```

정규화된 DNS 이름 및 포트 번호는 출력의 엔드포인트 섹션에 있습니다.

## 캐시 노드 엔드포인트 및 포트 번호 찾기(ElastiCache API)
<a name="ClientConfig.FindingEndpointsAndPorts.API"></a>

캐시 노드 엔드포인트 및 포트 번호를 확인하려면 `DescribeCacheClusters` 작업을 `ShowCacheNodeInfo=true` 파라미터와 함께 사용하세요.

**Example**  

```
 1. https://elasticache.us-west-2.amazonaws.com /
 2.     ?Action=DescribeCacheClusters
 3.     &ShowCacheNodeInfo=true
 4.     &SignatureVersion=4
 5.     &SignatureMethod=HmacSHA256
 6.     &Timestamp=20140421T220302Z
 7.     &Version=2014-09-30   
 8.     &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
 9.     &X-Amz-Credential=<credential>
10.     &X-Amz-Date=20140421T220302Z
11.     &X-Amz-Expires=20140421T220302Z
12.     &X-Amz-Signature=<signature>
13.     &X-Amz-SignedHeaders=Host
```

# 자동 검색 사용을 위한 연결
<a name="ClientConfig.AutoDiscovery"></a>

애플리케이션이 Auto Discovery를 사용하는 경우에는 각 캐시 노드에 대한 개별 Endpoint가 아니라 클러스터에 대한 구성 Endpoint만 알면 됩니다. 자세한 내용은 [클러스터의 노드 자동 식별(Memcached)](AutoDiscovery.md) 단원을 참조하십시오.

**참고**  
이때, Auto Discovery는 Memcached를 실행하는 클러스터에 대해서만 사용할 수 있습니다.

# Valkey 및 Redis OSS 클러스터의 노드에 연결
<a name="ClientConfig.ReplicationGroup"></a>

**참고**  
이때, 복제를 지원하는 클러스터(API/CLI: 복제 그룹) 및 읽기 전용 복제본은 Valkey 및 Redis OSS를 실행하는 클러스터에 대해서만 지원됩니다.

클러스터의 경우 ElastiCache는 콘솔, CLI 및 API 인터페이스를 제공하여 개별 노드에 대한 연결 정보를 얻습니다.

읽기 전용 활동의 경우 애플리케이션은 클러스터의 모든 노드에 연결할 수 있습니다. 그러나 쓰기 활동의 경우 애플리케이션은 직접 노드에 연결하는 대신 클러스터에 대한 기본 엔드포인트(Valkey 및 Redis OSS(클러스터 모드 비활성화됨)) 또는 구성 엔드포인트(Valkey 및 Redis OSS(클러스터 모드 활성화됨))에 연결하는 것이 좋습니다. 이렇게 하면 읽기 전용 복제본을 기본 역할로 승격하여 클러스터를 재구성할 경우에도 애플리케이션이 항상 올바른 노드를 찾을 수 있습니다.

## 복제 그룹의 클러스터에 연결(콘솔)
<a name="ClientConfig.ReplicationGroup.CON"></a>

**Endpoint 및 포트 번호를 확인하려면**
+ [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 엔드포인트 찾기(콘솔)](Endpoints.md#Endpoints.Find.Redis) 항목을 참조하세요.

## 복제 그룹의 클러스터에 연결(AWS CLI)
<a name="ClientConfig.ReplicationGroup.CLI"></a>

 **캐시 노드 Endpoint 및 포트 번호를 확인하려면**

`describe-replication-groups` 명령을 복제 그룹 이름과 함께 사용합니다.

```
aws elasticache describe-replication-groups redis2x2
```

이 명령은 다음과 유사한 출력을 생성합니다.

```
{
    "ReplicationGroups": [
        {
            "Status": "available", 
            "Description": "2 shards, 2 nodes (1 + 1 replica)", 
            "NodeGroups": [
                {
                    "Status": "available", 
                    "Slots": "0-8191", 
                    "NodeGroupId": "0001", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2c", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0001-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0001-002"
                        }
                    ]
                }, 
                {
                    "Status": "available", 
                    "Slots": "8192-16383", 
                    "NodeGroupId": "0002", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2b", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0002-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0002-002"
                        }
                    ]
                }
            ], 
            "ConfigurationEndpoint": {
                "Port": 6379, 
                "Address": "redis2x2.9dcv5r.clustercfg.usw2.cache.amazonaws.com"
            }, 
            "ClusterEnabled": true, 
            "ReplicationGroupId": "redis2x2", 
            "SnapshotRetentionLimit": 1, 
            "AutomaticFailover": "enabled", 
            "SnapshotWindow": "13:00-14:00", 
            "MemberClusters": [
                "redis2x2-0001-001", 
                "redis2x2-0001-002", 
                "redis2x2-0002-001", 
                "redis2x2-0002-002"
            ], 
            "CacheNodeType": "cache.m3.medium", 
            "PendingModifiedValues": {}
        }
    ]
}
```

## 복제 그룹의 클러스터에 연결(ElastiCache API)
<a name="ClientConfig.ReplicationGroup.API"></a>

 **캐시 노드 Endpoint 및 포트 번호를 확인하려면** 

`DescribeReplicationGroups`를 다음 파라미터를 사용하여 호출합니다.

`ReplicationGroupId` = 복제 그룹 이름

**Example**  

```
 1. https://elasticache.us-west-2.amazonaws.com /
 2.     ?Action=DescribeCacheClusters
 3.     &ReplicationGroupId=repgroup01
 4.     &Version=2014-09-30   
 5.     &SignatureVersion=4
 6.     &SignatureMethod=HmacSHA256
 7.     &Timestamp=20140421T220302Z
 8.     &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
 9.     &X-Amz-Date=20140421T220302Z
10.     &X-Amz-SignedHeaders=Host
11.     &X-Amz-Expires=20140421T220302Z
12.     &X-Amz-Credential=<credential>
13.     &X-Amz-Signature=<signature>
```

# DNS 이름 및 기본 IP
<a name="ClientConfig.DNS"></a>

클라이언트는 캐시 데이터를 보관 중인 서버의 주소 및 포트 번호를 포함하는 서버 목록을 유지 관리합니다. ElastiCache를 사용할 때 DescribeCacheClusters API(또는 describe-cache-clusters 명령줄 유틸리티)는 서버 목록에 사용할 수 있는 정규화된 DNS 항목과 포트 번호를 반환합니다.

**중요**  
중요한 것은 클라이언트 애플리케이션이 캐시 노드 Endpoint에 연결을 시도할 때 캐시 노드의 DNS 이름을 자주 확인하도록 구성되어 있다는 점입니다.

ElastiCache는 실패 시 캐시 노드가 복구될 때 캐시 노드의 DNS 이름이 모두 동일하게 유지되도록 합니다.

클라이언트 라이브러리는 대부분 기본적으로 영구 캐시 노드 연결을 지원합니다. ElastiCache를 사용할 때 영구 캐시 노드 연결을 사용하는 것이 좋습니다. 클라이언트 측 DNS 캐싱은 클라이언트 라이브러리, 언어 런타임 또는 클라이언트 운영 체제 등 여러 위치에서 발생할 수 있습니다. 캐시 노드의 IP 주소를 자주 확인하도록 하려면 각 계층의 애플리케이션 구성을 검토해야 합니다.

# ElastiCache의 데이터 계층화
<a name="data-tiering"></a>

복제 그룹을 구성하고 r6gd 패밀리의 노드 유형을 사용하는 ElastiCache for Valkey 또는 Redis OSS 클러스터는 메모리와 로컬 SSD(솔리드 스테이트 드라이브) 스토리지 간에 데이터를 계층화합니다. 데이터 계층화는 데이터를 메모리에 저장하는 것 외에도 각 클러스터 노드에서 저렴한 SSD(solid state drives)를 활용하여 Valkey 또는 Redis OSS 워크로드에 대한 새로운 가격 대비 성능 옵션을 제공합니다. 데이터 계층화는 전체 데이터세트의 최대 20%까지 정기적으로 액세스하는 워크로드와 SSD에서 데이터에 액세스할 때 추가 지연 시간을 허용할 수 있는 애플리케이션에 이상적입니다.

데이터 계층화가 있는 ElastiCache 클러스터에서 ElastiCache는 저장하는 모든 항목의 마지막 액세스 시간을 모니터링합니다. 사용 가능한 메모리(DRAM)가 모두 사용되면 ElastiCache는 최근최소사용(LRU) 알고리즘을 사용하여 자주 액세스하지 않는 항목을 메모리에서 SSD로 자동으로 이동합니다. 이후에 SSD의 데이터에 액세스하면 ElastiCache가 요청을 처리하기 전에 자동 및 비동기식으로 다시 메모리로 이동합니다. 데이터의 하위 집합에만 정기적으로 액세스하는 워크로드가 있는 경우 데이터 계층화는 용량을 비용 효율적으로 확장할 수 있는 최적의 방법입니다.

데이터 계층화를 사용하면 키 자체는 항상 메모리에 남아 있지만 LRU는 메모리 대 디스크의 값 배치를 제어합니다. 일반적으로 데이터 계층화를 사용하는 경우 키 크기가 값 크기보다 작은 것이 좋습니다.

데이터 계층화는 애플리케이션 워크로드에 미치는 성능 영향을 최소화하도록 설계되었습니다. 예를 들어 500바이트 문자열 값을 가정하면 SSD에 저장된 데이터에 대한 요청 및 메모리의 데이터에 대한 요청과 비교하여 평균 300마이크로초의 지연 시간을 추가로 기대할 수 있습니다.

가장 큰 데이터 계층화 노드 크기(cache.r6gd.16xlarge)를 사용하면 단일 500노드 클러스터에 최대 1페타바이트까지 저장할 수 있습니다(읽기 전용 복제본 1개를 사용하는 경우는 500TB). 데이터 계층화는 ElastiCache에서 지원되는 모든 Valkey 또는 Redis OSS 명령 및 데이터 구조와 호환됩니다. 이 기능을 사용하려면 클라이언트 측 변경 사항이 필요하지 않습니다.

**Topics**
+ [모범 사례](#data-tiering-best-practices)
+ [제한 사항](#data-tiering-prerequisites)
+ [요금](#data-tiering-pricing)
+ [모니터링](#data-tiering-monitoring)
+ [데이터 계층화 사용](#data-tiering-enabling)
+ [데이터 계층화가 활성화된 상태에서 백업에서 클러스터로 데이터 복원](#data-tiering-enabling-snapshots)

## 모범 사례
<a name="data-tiering-best-practices"></a>

다음 모범 사례를 따르는 것이 좋습니다.
+ 데이터 계층화는 전체 데이터세트의 최대 20%까지 정기적으로 액세스하는 워크로드와 SSD에서 데이터에 액세스할 때 추가 지연 시간을 허용할 수 있는 애플리케이션에 이상적입니다.
+ 데이터 계층화 노드에서 사용 가능한 SSD 용량을 사용하는 경우 값 크기가 키 크기보다 큰 것이 좋습니다. DRAM과 SSD 간에 항목이 이동하면 키는 항상 메모리에 남아 있고 값만 SSD 계층으로 이동합니다.

## 제한 사항
<a name="data-tiering-prerequisites"></a>

데이터 계층화에는 다음과 같은 제한 사항이 있습니다.
+ 복제 그룹에 속하는 클러스터에서만 데이터 계층화를 사용할 수 있습니다.
+ 사용하는 노드 유형은 `us-east-2`, `us-east-1`, `us-west-2`, `us-west-1`, `eu-west-1`, `eu-central-1`, `eu-north-1`, `eu-west-3`, `ap-northeast-1`, `ap-southeast-1`, `ap-southeast-2`, `ap-south-1`, `ca-central-1` 및 `sa-east-1`과 같은 리전에서 사용할 수 있는 r6gd 패밀리의 노드 유형이어야 합니다.
+ Valkey 7.2 이상 또는 Redis OSS 6.2 이상의 엔진을 사용해야 합니다.
+ r6gd 클러스터를 사용하지 않는 한 r6gd 클러스터의 백업을 다른 클러스터로 복원할 수 없습니다.
+ 데이터 계층화 클러스터를 위해 백업을 Amazon S3로 내보낼 수 없습니다.
+ r6gd 노드 유형에서 실행되는 클러스터에는 온라인 마이그레이션이 지원되지 않습니다.
+ 데이터 계층화 클러스터(예: r6gd 노드 유형을 사용하는 클러스터)에서 데이터 계층화를 사용하지 않는 클러스터(예: r6g 노드 유형을 사용하는 클러스터)로 확장은 지원되지 않습니다. 자세한 내용은 [ElastiCache 규모 조정](Scaling.md) 섹션을 참조하세요.
+ 오토 스케일링은 Valkey 버전 7.2 이상 및 Redis OSS 버전 7.0.7 이상에 대한 데이터 계층화를 사용하는 클러스터에서 지원됩니다. 자세한 내용은 [오토 스케일링 Valkey 및 Redis OSS 클러스터](AutoScaling.md) 섹션을 참조하세요.
+ 데이터 계층화는 `volatile-lru`, `allkeys-lru`, `volatile-lfu`, `allkeys-lfu` 및 `noeviction` 메모리 사용량 제한 정책만 지원합니다.
+ Forkless 저장은 Valkey 버전 7.2 이상 및 Redis OSS 버전 7.0.7 이상에서 지원됩니다. 자세한 내용은 [동기화 및 백업 구현 방법](Replication.Redis.Versions.md) 섹션을 참조하세요.
+ 128MiB보다 큰 항목은 SSD로 이동되지 않습니다.
+ Valkey 8.1 이상부터 키 \$1 값 크기가 40바이트 미만인 항목은 SSD로 이동되지 않습니다.

## 요금
<a name="data-tiering-pricing"></a>

R6gD 노드는 총 용량(메모리 \$1 SSD)의 4.8배 더 많으며 R6g 노드에 비해 최대 사용률로 실행될 때 60% 이상의 절감 효과를 얻을 수 있습니다(메모리만 해당). 자세한 내용은 [ElastiCache 요금](https://aws.amazon.com/elasticache/pricing/)을 참조하세요.

## 모니터링
<a name="data-tiering-monitoring"></a>

ElastiCache는 데이터 계층화를 사용하는 성능 클러스터를 모니터링하도록 특별히 설계된 지표를 제공합니다. SSD와 비교하여 DRAM의 항목 비율을 모니터링하려면 [Valkey 및 Redis OSS 지표](CacheMetrics.Redis.md)에서 `CurrItems` 지표를 사용할 수 있습니다. 백분율은 *(측정기준이 있는 CurrItems: 계층 = 메모리 \$1 100) / (측정기준 필터가 없는 CurrItems)*로 계산할 수 있습니다.

 구성된 제거 정책이 허용하는 경우 메모리의 항목 비율이 5% 미만으로 감소하면 ElastiCache가 항목 제거를 시작합니다. 제거 정책으로 구성된 노드에서 쓰기 작업은 메모리 부족 오류를 수신합니다.

 메모리에 있는 항목의 비율이 5% 미만으로 감소하면 클러스터 모드 사용 클러스터에 대해 스케일 아웃하거나 클러스터 모드 사용 클러스터에 대해 스케일 업하는 것을 고려하는 것이 좋습니다. 규모 조정에 대한 자세한 내용은 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 규모 조정](scaling-redis-cluster-mode-enabled.md) 섹션을 참조하세요. 데이터 계층화를 사용하는 Valkey 또는 Redis OSS 클러스터의 메트릭에 대한 자세한 내용은 [Valkey 및 Redis OSS에 대한 지표](CacheMetrics.Redis.md) 섹션을 참조하십시오.

## 데이터 계층화 사용
<a name="data-tiering-enabling"></a>

### AWS Management Console을 사용하여 데이터 계층화 사용
<a name="data-tiering-enabling-console"></a>

복제 그룹에 속하는 클러스터를 생성할 때 *cache.r6gd.xlarge*와 같은 r6gd 패밀리의 노드 유형을 선택하여 데이터 계층화를 사용합니다. 해당 노드 유형을 선택하면 데이터 계층화가 자동으로 사용됩니다.

클러스터 생성에 대한 자세한 내용은 [Valkey 또는 Redis OSS용 클러스터 생성](Clusters.Create.md) 섹션을 참조하세요.

### AWS CLI를 사용하여 데이터 계층화 사용
<a name="data-tiering-enabling-cli"></a>

AWS CLI를 사용하여 복제 그룹을 생성하는 경우 *cache.r6gd.xlarge*와 같은 r6gd 패밀리에서 노드 유형을 선택하고 `--data-tiering-enabled` 파라미터를 설정하여 데이터 계층화를 사용합니다.

r6gd 패밀리의 노드 유형을 선택하는 경우 데이터 계층화를 선택 해제할 수 없습니다. `--no-data-tiering-enabled` 파라미터를 설정하는 경우 작업이 실패합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache create-replication-group \
   --replication-group-id redis-dt-cluster \
   --replication-group-description "Redis OSS cluster with data tiering" \
   --num-node-groups 1 \
   --replicas-per-node-group 1 \
   --cache-node-type cache.r6gd.xlarge \
   --engine redis \   
   --cache-subnet-group-name default \
   --automatic-failover-enabled \
   --data-tiering-enabled
```

Windows의 경우:

```
aws elasticache create-replication-group ^
   --replication-group-id redis-dt-cluster ^
   --replication-group-description "Redis OSS cluster with data tiering" ^
   --num-node-groups 1 ^
   --replicas-per-node-group 1 ^
   --cache-node-type cache.r6gd.xlarge ^
   --engine redis ^   
   --cache-subnet-group-name default ^
   --automatic-failover-enabled ^
   --data-tiering-enabled
```

이 작업을 실행하면 다음과 유사한 응답이 표시됩니다.

```
{
    "ReplicationGroup": {
        "ReplicationGroupId": "redis-dt-cluster",
        "Description": "Redis OSS cluster with data tiering",
        "Status": "creating",           
        "PendingModifiedValues": {},
        "MemberClusters": [
            "redis-dt-cluster"
        ],
        "AutomaticFailover": "enabled",
        "DataTiering": "enabled",
        "SnapshotRetentionLimit": 0,
        "SnapshotWindow": "06:00-07:00",
        "ClusterEnabled": false,
        "CacheNodeType": "cache.r6gd.xlarge",       
        "TransitEncryptionEnabled": false,
        "AtRestEncryptionEnabled": false
    }
}
```

## 데이터 계층화가 활성화된 상태에서 백업에서 클러스터로 데이터 복원
<a name="data-tiering-enabling-snapshots"></a>

(콘솔), (AWS CLI) 또는 (ElastiCache API)를 사용하여 데이터 계층화가 활성화된 새 클러스터로 백업을 복원할 수 있습니다. r6gd 패밀리의 노드 유형을 사용하여 클러스터를 생성하는 경우 데이터 계층화가 활성화됩니다.

### 데이터 계층화가 활성화된 상태로 백업에서 클러스터로 데이터 복원(콘솔)
<a name="data-tiering-enabling-snapshots-console"></a>

**데이터 계층화가 활성화된 새 클러스터로 백업을 복원하려면(콘솔)**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 [**Backups**]를 선택합니다.

1. 백업 목록에서 복원할 백업의 이름 왼쪽에 있는 상자를 선택합니다.

1. **복원**을 선택합니다.

1. [**Restore Cluster**] 대화 상자를 완료합니다. 모든 **필수** 필드와 기본값을 변경하려는 다른 필드를 완료해야 합니다.

   1. **클러스터 ID** - 필수입니다. 새 클러스터의 이름입니다.

   1. **클러스터 모드 활성화(스케일 아웃)** - Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 선택합니다.

   1. **노드 유형** - **cache.r6gd.xlarge** 또는 r6gd 패밀리의 다른 노드 유형을 지정합니다.

   1. **샤드 수(Number of Shards)** - 새 클러스터(API/CLI: 노드 그룹)에 포함할 샤드 수를 선택합니다.

   1. **샤드 당 복제본** - 각 샤드에 포함할 읽기 전용 복제본 노드 수를 선택합니다.

   1. **슬롯 및 키스페이스** - 샤드에 키를 배포할 방법을 선택합니다. 키 배포를 지정하도록 선택할 경우 각 샤드의 키 범위를 지정하는 표를 완료합니다.

   1. **가용 영역** - 클러스터의 가용 영역 선택 방법을 지정합니다.

   1. **포트** - 이 클러스터에 다른 포트를 사용하려는 경우에만 변경합니다.

   1. **VPC 선택** - 이 클러스터를 생성할 VPC를 선택합니다.

   1. **파라미터 그룹** - 선택한 노드 유형의 Valkey 또는 Redis OSS 오버헤드를 수용할 만큼 충분한 메모리가 있는 파라미터 그룹을 선택합니다.

1. 원하는 대로 설정되었으면 [**Create**]를 선택합니다.

클러스터 생성에 대한 자세한 내용은 [Valkey 또는 Redis OSS용 클러스터 생성](Clusters.Create.md) 섹션을 참조하세요.

### 데이터 계층화가 활성화된 상태에서 백업에서 클러스터로 데이터 복원(AWS CLI)
<a name="data-tiering-enabling-snapshots-cli"></a>

AWS CLI를 사용하여 복제 그룹을 생성하는 경우 데이터 계층화는 기본적으로 *cache.r6gd.xlarge*와 같은 r6gd 패밀리의 노드 유형을 선택하고 `--data-tiering-enabled` 파라미터를 설정하여 사용됩니다.

r6gd 패밀리의 노드 유형을 선택하는 경우 데이터 계층화를 선택 해제할 수 없습니다. `--no-data-tiering-enabled` 파라미터를 설정하는 경우 작업이 실패합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache create-replication-group \
   --replication-group-id redis-dt-cluster \
   --replication-group-description "Redis OSS cluster with data tiering" \
   --num-node-groups 1 \
   --replicas-per-node-group 1 \
   --cache-node-type cache.r6gd.xlarge \
   --engine redis \   
   --cache-subnet-group-name default \
   --automatic-failover-enabled \
   --data-tiering-enabled \
   --snapshot-name my-snapshot
```

Linux, macOS, Unix의 경우:

```
aws elasticache create-replication-group ^
   --replication-group-id redis-dt-cluster ^
   --replication-group-description "Redis OSS cluster with data tiering" ^
   --num-node-groups 1 ^
   --replicas-per-node-group 1 ^
   --cache-node-type cache.r6gd.xlarge ^
   --engine redis ^   
   --cache-subnet-group-name default ^
   --automatic-failover-enabled ^
   --data-tiering-enabled ^
   --snapshot-name my-snapshot
```

이 작업을 실행하면 다음과 유사한 응답이 표시됩니다.

```
{
    "ReplicationGroup": {
        "ReplicationGroupId": "redis-dt-cluster",
        "Description": "Redis OSS cluster with data tiering",
        "Status": "creating",           
        "PendingModifiedValues": {},
        "MemberClusters": [
            "redis-dt-cluster"
        ],
        "AutomaticFailover": "enabled",
        "DataTiering": "enabled",
        "SnapshotRetentionLimit": 0,
        "SnapshotWindow": "06:00-07:00",
        "ClusterEnabled": false,
        "CacheNodeType": "cache.r6gd.xlarge",        
        "TransitEncryptionEnabled": false,
        "AtRestEncryptionEnabled": false
    }
}
```

# ElastiCache에서 클러스터 준비
<a name="Clusters.Prepare"></a>

다음에 ElastiCache 콘솔, AWS CLI 또는 ElastiCache API를 사용하는 클러스터 생성에 관한 지침이 나와 있습니다.

ElastiCache 클러스터는 [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)을 사용하여 생성할 수도 있습니다. 자세한 정보는 *AWS Cloud Formation 사용 설명서*의 [AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html) 섹션을 참조하세요. 여기에는 이 접근 방식을 구현하는 방법에 대한 지침도 포함되어 있습니다.

클러스터 또는 복제 그룹을 생성할 때마다 준비 작업을 미리 하면 즉시 업그레이드하거나 변경할 필요가 없어 좋습니다.

**Topics**
+ [ElastiCache 클러스터 요구 사항 확인](cluster-create-determine-requirements.md)
+ [노드 크기 선택](CacheNodes.SelectSize.md)

# ElastiCache 클러스터 요구 사항 확인
<a name="cluster-create-determine-requirements"></a>

**준비**  
다음 질문에 대한 답을 알고 있으면 ElastiCache 클러스터를 더 원활하게 만들 수 있습니다.
+ 필요한 노드 인스턴스 유형은 무엇입니까?

  인스턴스 노드 유형 선택에 도움이 필요한 경우 [노드 크기 선택](CacheNodes.SelectSize.md)를 참조하세요.
+ Amazon VPC를 기반으로 Virtual Private Cloud(VPC)에서 클러스터를 시작할 예정입니까?
**중요**  
VPC에서 클러스터를 시작하는 경우 클러스터를 생성하기 전에 동일한 VPC에서 서브넷 그룹을 생성해야 합니다. 자세한 내용은 [서브넷 및 서브넷 그룹](SubnetGroups.md) 섹션을 참조하세요.  
ElastiCache는 Amazon EC2를 사용하여 AWS 내에서 액세스하도록 고안되었습니다. 하지만 Amazon VPC 기반의 VPC에서 시작하고 클러스터가 VPC에 있는 경우 AWS 밖에서 액세스 권한을 제공할 수 있습니다. 자세한 내용은 [외부에서 ElastiCache 리소스에 액세스AWS](accessing-elasticache.md#access-from-outside-aws) 섹션을 참조하세요.
+ 파라미터 값을 사용자 지정해야 합니까?

  그렇다면 사용자 지정 파라미터 그룹을 만듭니다. 자세한 내용은 [ElastiCache 파라미터 그룹 생성](ParameterGroups.Creating.md) 섹션을 참조하세요.

   Valkey 또는 Redis OSS를 실행하는 경우 `reserved-memory` 또는 `reserved-memory-percent` 설정을 고려합니다. 자세한 내용은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 섹션을 참조하세요.
+ 자체 *VPC 보안 그룹*을 생성해야 합니까?

  자세한 내용은 [VPC의 보안](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html)을 참조하세요.
+ 어떤 방법으로 내결함성을 구현하시겠습니까?

  자세한 내용은 [장애 완화](disaster-recovery-resiliency.md#FaultTolerance) 섹션을 참조하세요.

**Topics**
+ [ElastiCache 메모리 및 프로세서 요구 사항](#cluster-create-determine-requirements-memory)
+ [Memcached 클러스터 구성](#memcached-cluster-configuration)
+ [Valkey 및 Redis OSS 클러스터 구성](#redis-cluster-configuration)
+ [ElastiCache 규모 조정 요구 사항](#cluster-create-determine-requirements-scaling)
+ [ElastiCache 액세스 요구 사항](#cluster-create-determine-requirements-access)
+ [ElastiCache에 대한 리전, 가용 영역 및 로컬 영역 요구 사항](#cluster-create-determine-requirements-region)

## ElastiCache 메모리 및 프로세서 요구 사항
<a name="cluster-create-determine-requirements-memory"></a>

Amazon ElastiCache의 기본 빌딩 블록은 노드입니다. 노드는 개별적으로 또는 그룹으로 구성되어 클러스터를 형성합니다. 클러스터에 사용할 노드 유형을 결정할 때 클러스터의 노드 구성과 저장해야하는 데이터의 양을 고려합니다.

Memcached 엔진은 다중 스레드이므로 노드의 코어 수가 클러스터에 사용할 수 있는 컴퓨팅 파워에 영향을 줍니다.

## Memcached 클러스터 구성
<a name="memcached-cluster-configuration"></a>

ElastiCache for Memcached 클러스터는 1개에서 60개의 노드로 구성됩니다. Memcached 클러스터의 데이터는 클러스터의 노드로 분할됩니다. 애플리케이션은 엔드포인트라는 네트워크 주소를 사용하여 Memcached 클러스터에 연결됩니다. Memcached 클러스터의 각 노드에는 애플리케이션이 특정 노드에(서) 읽고 쓰는 데 사용하는 자체 엔드포인트가 있습니다. 노드 엔드포인트 외에도 Memcached 클러스터는 *구성 엔드포인트*라는 엔드포인트를 가지고 있습니다. 애플리케이션에서는 이 엔드포인트를 사용하여 클러스터에서 읽거나 쓸 수 있으며, 읽을 노드 또는 쓸 노드에 대한 결정은 자동 검색에 맡깁니다.

![\[Memcached 클러스터가 클러스터의 노드 간에 분할되는 방법을 보여주는 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-Cluster-Memcached.png)


자세한 내용은 [ElastiCache에서 클러스터 관리](Clusters.md) 섹션을 참조하세요.

## Valkey 및 Redis OSS 클러스터 구성
<a name="redis-cluster-configuration"></a>

ElastiCache for Valkey 및 Redis OSS 클러스터는 0개에서 500개의 샤드(노드 그룹이라고도 함)로 구성됩니다. Valkey 또는 Redis OSS 클러스터에 있는 데이터는 클러스터의 여러 샤드에 두루 분할됩니다. 애플리케이션은 엔드포인트라는 네트워크 주소를 사용하여 Valkey 또는 Redis OSS 클러스터에 연결됩니다. Valkey 또는 Redis OSS 샤드에 있는 노드는 읽기/쓰기 프라이머리 노드 하나 및 기타 노드 읽기 전용 보조(읽기 전용 복제본이라고도 함) 두 가지 역할 중 하나를 이행합니다. 노드 엔드포인트 외에도 Valkey 또는 Redis OSS 클러스터는 *구성 엔드포인트*라는 엔드포인트를 가지고 있습니다. 애플리케이션에서는 이 엔드포인트를 사용하여 클러스터에서 읽거나 쓸 수 있으며, ElastiCache for Redis OSS에서 읽을 노드 또는 쓸 노드에 대한 결정을 남깁니다.

![\[비활성화 모드와 활성화 모드의 Valkey 또는 Redis OSS 클러스터를 비교하는 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-Redis-ClustersRGs.png)


자세한 내용은 [ElastiCache에서 클러스터 관리](Clusters.md) 섹션을 참조하세요.

## ElastiCache 규모 조정 요구 사항
<a name="cluster-create-determine-requirements-scaling"></a>

더 크고 새로운 노드 유형으로 새 클러스터를 생성하여 모든 클러스터를 조정할 수 있습니다. Memcached 클러스터를 스케일 업하면 새 클러스터가 비워집니다. Valkey 또는 Redis OSS 클러스터를 스케일 업하면 백업에서 볼 수 있고 새 클러스터가 비워지는 것을 방지할 수 있습니다.

Amazon ElastiCache for Memcached 클러스터는 확장하거나 축소할 수 있습니다. Memcached 클러스터를 스케일 아웃하거나 스케일 인하려면 클러스터에서 노드를 추가하거나 삭제하세요. Auto Discovery를 사용하고 애플리케이션이 클러스터의 구성 엔드포인트와 연결된 경우 노드를 추가하거나 제거할 때 애플리케이션을 변경할 필요가 없습니다.

자세한 내용은 이 가이드의 [ElastiCache 규모 조정](Scaling.md)을 참조하세요.

## ElastiCache 액세스 요구 사항
<a name="cluster-create-determine-requirements-access"></a>

설계에 따라 Amazon ElastiCache 클러스터는 Amazon EC2 인스턴스에서 액세스합니다. ElastiCache 클러스터에 대한 네트워크 액세스는 클러스터를 생성한 계정에 대해 제한됩니다. 따라서 Amazon EC2 인스턴스에서 클러스터에 액세스하려면 먼저 Amazon EC2 인스턴스가 클러스터에 액세스하도록 승인해야 합니다. 이를 수행하는 단계는 EC2-VPC로 시작했는지, EC2-Classic으로 시작했는지에 따라 다릅니다.

클러스터를 EC2-VPC로 시작한 경우 클러스터에 대한 네트워크 진입을 허용해야 합니다. 클러스터를 EC2-Classic으로 시작한 경우 ElastiCache 보안 그룹에 액세스하여 인스턴스와 연결된 Amazon Elastic Compute Cloud 보안 그룹을 허용해야 합니다. 자세한 지침은 이 가이드의 [3단계. 클러스터에 대한 액세스 허가](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)를 참조하세요.

## ElastiCache에 대한 리전, 가용 영역 및 로컬 영역 요구 사항
<a name="cluster-create-determine-requirements-region"></a>

Amazon ElastiCache는 모든 AWS 리전을 지원합니다. 애플리케이션과 가까운 AWS 리전에 ElastiCache 클러스터를 배치하면 지연 시간을 줄일 수 있습니다. 클러스터에 다중 노드가 있는 경우 다른 가용 영역이나 Local Zones에 노드를 배치하면 클러스터에 장애가 미치는 영향을 줄일 수 있습니다.

자세한 내용은 다음 자료를 참조하세요.
+ [ElastiCache에 대한 리전 및 가용 영역 선택](RegionsAndAZs.md)
+ [ElastiCache에서 로컬 영역 사용](Local_zones.md)
+ [장애 완화](disaster-recovery-resiliency.md#FaultTolerance)

# 노드 크기 선택
<a name="CacheNodes.SelectSize"></a>

ElastiCache 클러스터에 대해 선택하는 노드 크기는 비용, 성능, 내결함성에 영향을 미칩니다.

## 노드 크기(Valkey 및 Redis OSS)
<a name="CacheNodes.SelectSize.redis"></a>

Graviton 프로세서의 이점에 대한 자세한 내용은 [AWS Graviton 프로세서](https://aws.amazon.com/pm/ec2-graviton/)를 참조하세요.

다음 질문의 답을 생각해 보면 Valkey 또는 Redis OSS 구현에 필요한 최소한의 노드 유형을 결정하는 데 도움이 될 수 있습니다.
+ 여러 클라이언트 연결을 사용하는 처리량 제한 워크로드를 기대하십니까?

  그렇다면 Redis OSS 버전 5.0.6 이상을 실행하는 경우 Redis OSS 엔진을 대신해 사용 가능한 CPU를 사용하여 클라이언트 연결을 오프로드하는 향상된 I/O 기능을 사용하면 처리량과 지연 시간을 개선할 수 있습니다. Redis OSS 버전 7.0.4 이상을 실행하는 경우 향상된 I/O 기능 외에도 향상된 I/O 멀티플렉싱을 통해 가속화의 이점을 추가로 얻을 수 있습니다. 각 전용 네트워크 I/O는 여러 클라이언트의 파이프라인 명령을 Redis OSS 엔진으로 엮어 명령을 배치로 효율성 있게 처리하는 Redis OSS의 기능을 활용합니다. Redis OSS v7.1 이상의 ElastiCache에서는 프레젠테이션 계층 로직도 처리하도록 향상된 I/O 스레드 기능을 확장했습니다. 프레젠테이션 계층이란 이제 향상된 I/O 스레드가 클라이언트 입력을 읽을 뿐만 아니라 입력을 Redis OSS 바이너리 명령 형식으로 구문 분석한 다음, 실행을 위해 기본 스레드로 전달되므로 성능이 향상된다는 의미입니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/database/achieve-over-500-million-requests-per-second-per-cluster-with-amazon-elasticache-for-redis-7-1/)과 [지원되는 버전](VersionManagement.md#supported-engine-versions) 페이지를 참조하세요.
+ 소량의 데이터에 정기적으로 액세스하는 워크로드가 있나요?

  이 경우라면 Redis OSS 엔진 버전 6.2 이상에서 실행 중인 경우 r6gd 노드 유형을 선택하여 데이터 계층화를 활용할 수 있습니다. 데이터 계층화를 사용하면 최소최근사용 데이터가 SSD에 저장됩니다. 검색 시 대기 시간 비용이 적게 들고 비용 절감으로 균형을 이룹니다. 자세한 내용은 [ElastiCache의 데이터 계층화](data-tiering.md) 섹션을 참조하세요.

  자세한 내용은 [지원되는 노드 유형](CacheNodes.SupportedTypes.md) 섹션을 참조하세요.
+ 데이터에 필요한 총 메모리는 얼마나 됩니까?

  일반적인 에상치를 알아보려면 캐시할 항목의 크기를 선택합니다. 이 크기를 동시에 캐시에 보관할 항목 수로 곱합니다. 적당한 항목 크기 예상치를 구하고 캐시 항목을 직렬화한 후 문자 수를 계산합니다. 그런 다음 클러스터에 있는 샤드의 수에 대해 이를 나눕니다.

  자세한 내용은 [지원되는 노드 유형](CacheNodes.SupportedTypes.md) 섹션을 참조하세요.
+ 실행 중인 Redis OSS 버전은 무엇입니까?

  2.8.22 이전의 Redis OSS 버전에서는 장애 조치, 스냅샷, 동기화, 기본 작업으로 복제본 승격을 위해 더 많은 메모리를 확보해야 합니다. 프로세스 중에 발생하는 모든 쓰기에 충분한 메모리를 사용할 수 있어야 하기 때문입니다.

  Redis OSS 버전 2.8.22 이상에서는 이전 프로세스에 비해 사용 가능한 메모리가 더 적게 필요한 forkless 저장 프로세스가 사용됩니다.

  자세한 내용은 다음 자료를 참조하세요.
  + [동기화 및 백업 구현 방법](Replication.Redis.Versions.md)
  + [충분한 메모리를 확보하여 Valkey 또는 Redis OSS 스냅샷 생성](BestPractices.BGSAVE.md)
+ 애플리케이션의 쓰기 작업이 얼마나 많습니까?

  쓰기 작업이 많은 애플리케이션에서는 스냅샷을 만들거나 장애 조치를 할 때 데이터에 사용되지 않으며 사용할 수 있는 메모리가 훨씬 더 많이 필요할 수 있습니다. `BGSAVE` 프로세스가 수행될 때마다 `BGSAVE` 프로세스 중에 발생하는 모든 쓰기를 수용할 수 있도록 데이터가 사용하지 않는 메모리가 충분해야 합니다. 예로는 스냅샷을 만들 때, 클러스터의 복제본과 기본 클러스터를 동기화할 때, AOF(append-only file) 기능을 활성화할 때 등이 있습니다. 또 다른 예로는 복제본을 기본으로 승격하는 경우입니다(활성화된 다중 AZ가 있는 경우). 최악의 경우는 프로세스 중에 모든 데이터가 다시 작성되는 경우입니다. 이 경우 데이터에만 필요한 메모리의 두 배가 되는 노드 인스턴스 크기가 필요합니다.

  더 자세한 내용은 [충분한 메모리를 확보하여 Valkey 또는 Redis OSS 스냅샷 생성](BestPractices.BGSAVE.md) 섹션을 참조하세요.
+ 구현 애플리케이션이 독립 실행형 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터입니까, 아니면 샤드가 여러 개인 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터입니까?

**Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터**  
Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터를 구현하는 경우 노드 유형은 위에서 설명한 대로 필요한 오버헤드와 모든 데이터를 수용할 수 있어야 합니다.

  예를 들어, 모든 항목의 총 크기를 12GB로 추정합니다. 이 경우, 메모리가 13.3GB인 `cache.m3.xlarge` 노드 또는 메모리가 13.5GB인 `cache.r3.large` 노드를 사용할 수 있습니다. 하지만 `BGSAVE` 작업에는 메모리가 더 필요할 수 있습니다. 애플리케이션이 쓰기 작업이 많은 경우 메모리 요구 사항을 최소 24GB로 두 배로 늘립니다. 따라서 27.9GB의 메모리가 있는 `cache.m3.2xlarge` 또는 30.5GB의 메모리가 있는 `cache.r3.xlarge`를 사용합니다.

**샤드가 여러 개인 Valkey 또는 Redis OSS(클러스터 모드 활성화됨)**  
샤드가 여러 개인 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터를 구현하는 경우 노드 유형은 `bytes-for-data-and-overhead / number-of-shards`바이트의 데이터를 수용할 수 있어야 합니다.

  예를 들어, 모든 항목의 총 크기를 12GB로 추정하고 샤드가 2개입니다. 이 경우, 메모리가 6.05GB인 `cache.m3.large` 노드를 사용할 수 있습니다(12GB/2). 하지만 `BGSAVE` 작업에는 메모리가 더 필요할 수 있습니다. 애플리케이션이 쓰기 작업이 많은 경우 메모리 요구 사항을 최소 샤드당 12GB로 두 배로 늘립니다. 따라서 13.3GB의 메모리가 있는 `cache.m3.xlarge` 또는 13.5GB의 메모리가 있는 `cache.r3.large`를 사용합니다.
+ Local Zones를 사용하고 있습니까?

[Local Zones](Local_zones.md)를 사용하면 사용자에게 가까운 여러 위치에서 ElastiCache 클러스터와 같은 리소스를 배치할 수 있습니다. 그러나 노드 크기를 선택할 때 사용 가능한 노드 크기는 용량 요구 사항에 관계없이 현재 다음과 같이 제한된다는 것에 주의하세요.
  + 현재 세대: 

    **M5 노드 유형:** `cache.m5.large`, `cache.m5.xlarge`, `cache.m5.2xlarge`, `cache.m5.4xlarge`, `cache.m5.12xlarge`, `cache.m5.24xlarge` 

    **R5 노드 유형:** `cache.r5.large`, `cache.r5.xlarge`, `cache.r5.2xlarge`, `cache.r5.4xlarge`, `cache.r5.12xlarge`, `cache.r5.24xlarge` 

    **T3 노드 유형:** `cache.t3.micro`, `cache.t3.small`, `cache.t3.medium` 

클러스터가 실행 중이면 CloudWatch에 게시된 메모리 사용량, 프로세서 사용률, 캐시 적중률 및 캐시 누락을 모니터링할 수 있습니다. 클러스터의 적중률이 기대에 미치지 못하거나 키가 너무 자주 제거되고 있음을 알 수 있습니다. 이러한 경우 CPU 및 메모리 사양이 더 큰 다른 노드 크기를 선택할 수 있습니다.

CPU 사용량을 모니터링할 때 Valkey 또는 Redis OSS는 단일 스레드입니다. 따라서 보고된 CPU 사용량을 CPU 코어 수에 곱하면 실제 사용량을 확인할 수 있습니다. 예를 들어, 사용률 20%로 보고된 4 코어 CPU는 실제로 코어 1개인 Redis OSS가 80% 사용률로 실행되는 것입니다.

## 노드 크기(Memcached)
<a name="CacheNodes.SelectSize.Mem"></a>

Memcached 클러스터에는 여러 노드로 분할된 클러스터 데이터와 한 개 이상의 노드가 포함되어 있습니다. 클러스터의 메모리 요구와 노드의 메모리가 서로 관련은 있지만 동일하지는 않습니다. 큰 노드 두세 개나 작은 노드 여러 개를 두어 필요한 클러스터 메모리 용량을 확보할 수 있습니다. 또한 요구량이 달라지면 클러스터에서 노드를 추가하거나 제거하여 필요한 만큼만 비용을 지불할 수 있습니다.

클러스터의 총 메모리 용량은 시스템 오버헤드를 뺀 각 노드의 RAM 용량을 클러스터에 있는 노드 수에 곱하는 방식으로 계산됩니다. 각 노드의 용량은 노드 유형에 따라 다릅니다.

```
cluster_capacity = number_of_nodes * (node_capacity - system_overhead)
```

클러스터의 노드 수는 Memcached를 실행하는 클러스터의 가용성을 결정하는 핵심 요인입니다. 단일 노드의 오류는 애플리케이션 가용성과 백엔드 데이터베이스에 대한 로드에 영향을 미칠 수 있습니다. 이러한 경우, ElastiCache가 오류 캐시 노드를 대체하기 위해 프로비저닝하고 다시 채워집니다. 이러한 가용성 영향을 줄이려면 적은 수의 대용량 노드를 사용하는 대신 더 적은 용량의 더 여러 개의 노드로 메모리 및 컴퓨팅 용량을 분산해야 합니다.

캐시 메모리가 35GB인 시나리오에서 다음과 같은 구성으로 설정할 수 있습니다.
+ `cache.t2.medium`메모리 3.22GB인 노드 11개에 스레드가 각각 2개이면 35.42GB, 스레드 22개와 같습니다.
+ `cache.m4.large`메모리 6.42GB인 노드 6개에 스레드가 각각 2개이면 38.52GB, 스레드 12개와 같습니다.
+ `cache.r4.large`메모리 12.3GB인 노드 3개에 스레드가 각각 2개이면 36.90GB, 스레드 6개와 같습니다.
+ `cache.m4.xlarge`메모리 14.28GB인 노드 3개에 스레드가 각각 4개이면 42.84GB, 스레드 12개와 같습니다.


**노드 옵션 비교**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/CacheNodes.SelectSize.html)

여기에 나와 있는 옵션은 각각 비슷한 메모리 용량을 제공하지만 컴퓨팅 용량과 비용은 다릅니다. 옵션별 비용을 비교하려면 [Amazon ElastiCache 요금](https://aws.amazon.com/elasticache/pricing/)을 참조하세요.

Memcached를 실행하는 클러스터의 경우 각 노드의 사용 가능한 메모리 일부가 연결 오버헤드에 사용됩니다. 자세한 내용은 [Memcached 연결 오버헤드](ParameterGroups.Engine.md#ParameterGroups.Memcached.Overhead) 섹션을 참조하세요.

여러 노드를 사용하면 노드에 키를 분산시켜야 합니다. 노드마다 고유한 엔드포인트가 있습니다. ElastiCache Auto Discovery 기능을 사용하면 클라이언트 프로그램이 클러스터의 모든 노드를 자동으로 식별하여 엔드포인트를 쉽게 관리할 수 있습니다. 자세한 내용은 [클러스터의 노드 자동 식별(Memcached)](AutoDiscovery.md) 섹션을 참조하세요.

경우에 따라 얼마나 많은 용량이 필요한지 확신할 수 없을 수도 있습니다. 그렇다면, 테스트를 위해 1개의 `cache.m5.large` 노드를 사용하는 것이 좋습니다. 그런 다음 Amazon CloudWatch에 게시된 ElastiCache 지표를 사용하여 메모리 사용량, CPU 사용률 및 캐시 적중률을 모니터링합니다. ElastiCache용 CloudWatch 지표에 대한 자세한 내용은 [CloudWatch 지표를 사용한 사용량 모니터링](CacheMetrics.md) 섹션을 참조하세요. 프로덕션 및 대규모 워크로드에는 R5 노드의 성능과 RAM 비용 가치가 가장 우수합니다.

클러스터의 적중률이 기대에 미치지 못하면 간편하게 노드를 더 추가하여 클러스터의 총 가용 메모리를 늘릴 수 있습니다.

클러스터가 CPU의 제약을 받지만 적중률은 충분할 경우 컴퓨팅 파워가 더 큰 노드 유형으로 새로운 클러스터를 설정해 보십시오.

# Valkey 또는 Redis OSS용 클러스터 생성
<a name="Clusters.Create"></a>

다음 예제에서는AWS Management ConsoleAWS CLI및 ElastiCache API를 사용하여 Valkey 또는 Redis OSS 클러스터를 생성하는 방법을 보여줍니다.

## Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스트 생성(콘솔)
<a name="Clusters.Create.CON.Redis"></a>

ElastiCache는 Valkey 또는 Redis OSS 엔진을 사용할 때 복제를 지원합니다. Valkey 또는 Redis OSS 읽기/쓰기 기본 클러스터에 데이터가 쓰여지는 시간과 데이터가 읽기 전용 보조 클러스터에 전파되는 시간 사이의 지연 시간을 모니터링하기 위해 ElastiCache가 특수 키 `ElastiCacheMasterReplicationTimestamp`를 클러스터에 추가합니다. 이 키는 현재 UCT(협정 세계시) 시간입니다. 나중에 Valkey 또는 Redis OSS 클러스터가 복제 그룹에 추가될 수 있으므로 처음에는 복제 그룹의 멤버가 아니어도 모든 Valkey 또는 Redis OSS 클러스터에 이 키가 포함됩니다. 복제 그룹에 대한 자세한 정보는 [고가용성을 위한 복제 그룹 사용](Replication.md) 섹션을 참조하세요.

Valkey 또는 Redis OSS(클러스터 모드 사용 중지됨) 클러스터를 생성하려면 [Valkey(클러스터 모드 비활성화됨) 클러스터 생성(콘솔)](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs) 섹션의 단계를 수행하세요.

클러스터 상태가 *사용 가능*이 되면 클러스터에 Amazon EC2 액세스 권한을 부여하고 클러스터에 연결하며 사용할 수 있습니다. 자세한 내용은 [3단계. 클러스터에 대한 액세스 허가](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey) 및 [4단계. 클러스터의 노드에 연결](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey) 섹션을 참조하세요.

**중요**  
클러스터를 사용할 수 있게 되면 클러스터를 적극 사용하지 않더라도 클러스터가 활성화되어 있는 매 시간 또는 60분 미만 단위로 비용이 청구됩니다. 이 클러스터의 요금 발생을 중지하려면 클러스터를 삭제해야 합니다. [ElastiCache에서 클러스터 삭제](Clusters.Delete.md)을(를) 참조하세요.

## Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(콘솔)
<a name="Clusters.Create.CON.RedisCluster"></a>

Redis OSS 3.2.4 이상을 실행 중이면 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터를 생성할 수 있습니다. Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터는 현재 일부 제한이 있지만 1개부터 500개의 샤드(API/CLI: 노드 그룹)에 데이터를 분할하도록 지원합니다. Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)과 Valkey 또는 Redis OSS(클러스터 모드 활성화됨)의 비교 내용은 [지원되는 엔진 및 버전](VersionManagement.md#supported-engine-versions) 섹션을 참조하세요.

**ElastiCache 콘솔을 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터를 생성하려면**

1. 에 로그인AWS Management Console하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) Amazon ElastiCache 콘솔을 엽니다.

1. 오른쪽 상단의 목록에서이 클러스터를 시작할AWS리전을 선택합니다.

1. 탐색 창에서 **시작하기(Get started)**를 선택하세요.

1. **VPC 생성(Create VPC)**을 선택하고 [Virtual Private Cloud(VPC) 생성(Creating a Virtual Private Cloud (VPC))](VPCs.CreatingVPC.md)에 설명된 단계를 수행하세요.

1. ElastiCache 대시보드 페이지에서 **Create cluster(클러스터 생성)**를 선택한 다음 **Create Valkey cluster(Valkey 클러스터 생성)** 또는 **Create Redis OSS cluster(Redis OSS 클러스터 생성)**를 선택합니다.

1. **클러스터 설정(Cluster settings)**에서 다음을 수행합니다.

   1. **Configure and create a new cluster**(새 클러스터 구성 및 생성)를 선택합니다.

   1. **Cluster mode**(클러스터 모드)에서 **Enabled**(사용 설정됨)를 선택합니다.

   1. **Cluster info**(클러스터 정보)에 **Name**(이름) 값을 입력합니다.

   1. (선택 사항) **설명(Description)** 값을 입력합니다.

1. **Location**(위치)에서 다음을 수행합니다.

------
#### [ AWS Cloud  ]

   1. **AWS Cloud**의 경우 **Multi-AZ**(다중 AZ) 및 **Auto-failover**(자동 장애 조치)의 기본 설정을 수락하는 것이 좋습니다. 자세한 정보는 [다중 AZ로 ElastiCache for Redis OSS의 가동 중지 시간 최소화](AutoFailover.md)를 참조하세요.

   1. **클러스터 설정(Cluster settings)**에서 다음을 수행합니다.

      1. **엔진 버전(Engine version)**의 경우 사용 가능한 버전을 선택합니다.

      1. **포트(Port)**의 경우 기본 포트인 6379를 사용합니다. 다른 포트를 사용해야 하는 경우 포트 번호를 입력합니다.

      1. **파라미터 그룹**에서 파라미터 그룹을 선택하거나 새 파라미터 그룹을 만듭니다. 파라미터 그룹은 클러스터의 런타임 파라미터를 제어합니다. 파라미터 그룹에 대한 자세한 정보는 [Valkey 및 Redis OSS 파라미터](ParameterGroups.Engine.md#ParameterGroups.Redis) 및 [ElastiCache 파라미터 그룹 생성](ParameterGroups.Creating.md) 섹션을 참조하세요.
**참고**  
파라미터 그룹을 선택하여 엔진 구성 값을 설정하면 해당 파라미터 그룹이 글로벌 데이터 스토어의 모든 클러스터에 적용됩니다. **파라미터 그룹** 페이지에서 yes/no **글로벌** 속성은 파라미터 그룹이 글로벌 데이터 스토어의 일부인지 여부를 나타냅니다.

      1. **노드 유형**에서 아래쪽 화살표(![\[Downward-pointing triangle icon, typically used to indicate a dropdown menu.\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-DnArrow.png))를 선택합니다. **노드 유형 변경** 대화 상자에서 원하는 노드 유형의 **인스턴스 패밀리** 값을 선택합니다. 그런 다음 이 클러스터에 사용할 노드 유형을 선택한 다음 **저장**을 선택합니다.

         자세한 정보는 [노드 크기 선택](CacheNodes.SelectSize.md) 섹션을 참조하세요.

         r6gd 노드 유형을 선택하는 경우 데이터 계층화가 자동으로 사용 설정됩니다. 자세한 내용은 [ElastiCache의 데이터 계층화](data-tiering.md) 단원을 참조하십시오.

      1. **샤드 수**에서 이 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에 사용할 샤드(파티션/노드 그룹) 수를 선택합니다.

         일부 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 버전의 경우 클러스터의 샤드 수를 동적으로 변경할 수 있습니다.
         + **Redis OSS 3.2.10 이상** - 클러스터에서 Redis OSS 3.2.10 이상 버전을 실행하는 경우 클러스터의 샤드 수를 동적으로 변경할 수 있습니다. 자세한 내용은 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 규모 조정](scaling-redis-cluster-mode-enabled.md) 단원을 참조하십시오.
         + **다른 Redis OSS 버전** - 클러스터에서 버전 3.2.10 이전의 Redis OSS 버전을 실행하는 경우 다른 방법이 있습니다. 이 경우 클러스터의 샤드 수를 변경하려면 새 샤드 수로 새 클러스터를 만듭니다. 자세한 내용은 [백업에서 새 캐시로 복원](backups-restoring.md) 단원을 참조하십시오.

      1. **샤드당 복제본**에서 각 샤드에 포함할 읽기 전용 복제본 노드 수를 선택합니다.

         Valkey 또는 Redis OSS(클러스터 모드 활성화됨)에는 다음과 같은 제한 사항이 있습니다.
         + 다중 AZ를 활성화한 경우 샤드당 복제본이 하나 이상 있어야 합니다.
         + 콘솔을 사용하여 클러스터를 생성할 때 샤드마다 복제본 수가 동일합니다.
         + 샤드당 읽기 전용 복제본 수가 고정되어 변경할 수 없습니다. 샤드(API/CLI: 노드 그룹)당 복제본 수를 늘리거나 줄이려면 새로운 복제본 수로 새 클러스터를 생성해야 합니다. 자세한 내용은 [자습서: 외부에서 생성된 백업으로 새로운 노드 기반 클러스터 시드](backups-seeding-redis.md) 단원을 참조하십시오.

   1. **연결** 아래

      1. **네트워크 유형**에서 이 클러스터가 지원할 IP 버전을 선택합니다.

      1. **서브넷 그룹**에서 이 클러스터에 적용할 서브넷을 선택합니다. ElastiCache는 해당 서브넷 그룹을 사용하여 노드에 연결된 서브넷 내의 서브넷 및 IP 주소를 선택합니다. ElastiCache 클러스터가 이중 스택 모드에서 작동하려면 IPv4 및 IPv6 주소가 모두 할당된 이중 스택 서브넷이 필요하고, IPv6 전용으로 작동하려면 IPv6 전용 서브넷이 필요합니다.

         새 서브넷 그룹을 생성할 때 해당 그룹이 속한 **VPC ID**를 입력합니다.

         **검색 IP 유형**을 선택합니다. 선택한 프로토콜의 IP 주소만 반환됩니다.

         자세한 내용은 다음을 참조하세요.
         + [ElastiCache에서 네트워크 유형 선택](network-type.md).
         + VPC에서 서브넷 생성

         [ElastiCache에서 로컬 영역 사용](Local_zones.md)를 사용하는 경우 로컬 영역에 있는 서브넷을 선택하거나 생성해야 합니다.

         자세한 내용은 [서브넷 및 서브넷 그룹](SubnetGroups.md) 단원을 참조하십시오.

   1. **가용 영역 배치(Availability zone placements)**의 경우 다음 두 가지 옵션이 있습니다.
      + **기본 설정 없음** – ElastiCache에서 가용 영역을 선택합니다.
      + **가용 영역 지정** – 각 클러스터의 가용 영역을 지정합니다.

        가용 영역을 지정하도록 선택한 경우 샤드에 있는 각 클러스터에 대해 목록에서 가용 영역을 선택합니다.

      자세한 내용은 [ElastiCache에 대한 리전 및 가용 영역 선택](RegionsAndAZs.md) 단원을 참조하십시오.

   1. **다음(Next)**을 선택합니다.

   1. **고급 Valkey 설정** 또는 **고급 Redis OSS 설정** 또는 

      1. **보안(Security)**의 경우 

        1. 데이터를 암호화하려면 다음과 같은 옵션이 있습니다.
           + **저장된 데이터 암호화** - 디스크에 저장된 데이터 암호화를 활성화합니다. 자세한 정보는 [저장된 데이터 암호화](at-rest-encryption.md)를 참조하세요.
**참고**  
**고객 관리형AWS KMS** 키를 선택하고 키를 선택하여 다른 암호화 키를 제공할 수 있습니다. 자세한 정보는 [AWS KMS에서 고객 관리형 키 사용](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)을 참조하세요.
           + **전송 중 데이터 암호화** – 전송 데이터 암호화를 활성화합니다. 자세한 정보는 [전송 중 데이터 암호화](in-transit-encryption.md)를 참조하세요. Valkey 7.2 이상 또는 Redis OSS 6.0 이상의 경우 전송 중 암호화를 활성화하면 다음 **액세스 제어** 옵션 중 하나를 지정하라는 메시지가 표시됩니다.
             + **액세스 제어 안 함** – 기본 설정입니다. 이 옵션은 클러스터에 대한 사용자 액세스를 제한하지 않는다는 의미입니다.
             + **사용자 그룹 액세스 제어 목록** - 클러스터에 액세스할 수 있는 사용자 집합이 정의된 사용자 그룹을 선택합니다. 자세한 내용은 [콘솔 및 CLI를 사용하여 사용자 그룹 관리](Clusters.RBAC.md#User-Groups) 단원을 참조하십시오.
             + **AUTH 기본 사용자** – Valkey 또는 Redis OSS 서버의 인증 메커니즘입니다. 자세한 정보는 [AUTH](auth.md)를 참조하세요.
           + **AUTH** – Valkey 또는 Redis OSS 서버의 인증 메커니즘입니다. 자세한 정보는 [AUTH](auth.md)를 참조하세요.
**참고**  
버전 3.2.10을 제외한 3.2.6 이상의 Redis OSS 버전의 경우 AUTH가 유일한 옵션입니다.

        1. **보안 그룹**에서 이 클러스터에 사용할 보안 그룹을 선택합니다. *보안 그룹*은 클러스터에 대한 네트워크 액세스를 제어하는 방화벽 역할을 합니다. VPC의 기본 보안 그룹을 사용하거나 새 보안 그룹을 만들 수 있습니다.

           보안 그룹에 대한 자세한 정보는 *Amazon VPC 사용 설명서*의 [VPC의 보안 그룹](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)을 참조하세요.

   1. 정기적인 자동 백업을 예약할 경우 **Enable automatic backups(자동 백업 활성화)**를 선택한 후 자동으로 삭제되기 전에 각 자동 백업을 보존할 기간(일)을 입력합니다. 정기적인 자동 백업을 예약하지 않으려면 [**Enable automatic backups**] 확인란의 선택을 취소합니다. 어떤 경우든 수동 백업을 항상 생성할 수 있습니다.

      백업 및 복원에 대한 자세한 정보는 [스냅샷 및 복원](backups.md) 섹션을 참조하세요.

   1. (선택 사항) 유지 관리 기간을 지정합니다. *유지 관리 기간*은 ElastiCache가 클러스터의 시스템 유지 관리를 예약하는 시간이며 일반적으로 매주 한 시간입니다. ElastiCache에서 유지 관리 기간의 요일과 시간을 선택하도록 허용하거나(*기본 설정 없음*) 요일 시간 및 기간을 직접 선택할 수 있습니다(*유지 관리 기간 지정*). *유지 관리 기간 지정*을 선택할 경우 목록에서 유지 관리 기간의 *시작 요일*, *시작 시간* 및 *기간*을 선택합니다. 모든 시간은 UCT 시간입니다.

      자세한 내용은 [ElastiCache 클러스터 유지 관리](maintenance-window.md) 단원을 참조하십시오.

   1. (선택 사항) **로그**의 경우:
      + **로그 형식**에서 **텍스트** 또는 **JSON**을 선택합니다.
      + **대상 유형(Destination Type)**에서 **CloudWatch Logs** 또는 **Kinesis Firehose**를 선택합니다.
      + **로그 대상**에서 **새로 생성**을 선택하고 CloudWatch Logs 로그 그룹 이름이나 Firehose 스트림 이름을 입력하거나 **기존 항목 선택**을 선택한 다음 CloudWatch Logs 로그 그룹 이름이나 Firehose 스트림 이름을 선택합니다.

   1. **태그(Tags)**의 경우 클러스터 및 기타 ElastiCache 리소스 관리를 돕기 위해 태그 형식으로 각 리소스에 고유한 메타데이터를 할당할 수 있습니다. 자세한 정보는 [ElastiCache 리소스에 태그 지정](Tagging-Resources.md) 섹션을 참조하세요.

   1. **다음**을 선택합니다.

   1. 입력 및 선택한 내용을 모두 검토한 다음 필요한 내용을 수정합니다. 준비가 되었으면 **생성(Create)e**을 선택합니다.

------
#### [ On premises ]

   1. **On premises**(온프레미스)의 경우 **Auto-failover**(자동 장애 조치)를 사용 설정하는 것이 좋습니다. 자세한 정보는 [다중 AZ로 ElastiCache for Redis OSS의 가동 중지 시간 최소화](AutoFailover.md)를 참조하세요.

   1. [Outposts 사용](ElastiCache-Outposts.md)의 단계를 수행하세요.

------

ElastiCache API를 사용하거나 ElastiCache 콘솔AWS CLI대신에 동등한를 생성하려면 다음을 참조하세요.
+ API: [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ CLI: [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)

클러스터 상태가 *사용 가능*이 되면 클러스터에 EC2 액세스 권한을 부여하고 클러스터에 연결하며 사용할 수 있습니다. 자세한 내용은 [3단계. 클러스터에 대한 액세스 허가](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey) 및 [4단계. 클러스터의 노드에 연결](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey) 섹션을 참조하세요.

**중요**  
클러스터를 사용할 수 있게 되면 클러스터를 적극 사용하지 않더라도 클러스터가 활성화되어 있는 매 시간 또는 60분 미만 단위로 비용이 청구됩니다. 이 클러스터의 요금 발생을 중지하려면 클러스터를 삭제해야 합니다. [ElastiCache에서 클러스터 삭제](Clusters.Delete.md)을(를) 참조하세요.

## 클러스터 생성(AWS CLI)
<a name="Clusters.Create.CLI"></a>

를 사용하여 클러스터를 생성하려면 `create-cache-cluster` 명령을AWS CLI사용합니다.

**중요**  
클러스터를 사용할 수 있게 되면 클러스터를 적극 사용하지 않더라도 클러스터가 활성화되어 있는 매 시간 또는 60분 미만 단위로 비용이 청구됩니다. 이 클러스터의 요금 발생을 중지하려면 클러스터를 삭제해야 합니다. [ElastiCache에서 클러스터 삭제](Clusters.Delete.md)을(를) 참조하세요.

### Valkey 또는 Redis OSS(클러스터 모드 사용 중지됨) 캐시 클러스터 생성(CLI)
<a name="Clusters.Create.CLI.Redis"></a>

**Example - 읽기 전용 복제본이 없는 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터**  
다음 CLI 코드는 복제본 없이 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터를 생성합니다.  
r6gd 패밀리의 노드 유형을 사용하여 클러스터를 생성하는 경우 `data-tiering-enabled` 파라미터를 전달해야 합니다.
Linux, macOS, Unix의 경우:  

```
aws elasticache create-cache-cluster \
--cache-cluster-id my-cluster \
--cache-node-type cache.r4.large \
--engine redis \
--num-cache-nodes 1 \
--cache-parameter-group default.redis6.x \
--snapshot-arns arn:aws:s3:::amzn-s3-demo-bucket/snapshot.rdb
```
Windows의 경우:  

```
aws elasticache create-cache-cluster ^
--cache-cluster-id my-cluster ^
--cache-node-type cache.r4.large ^
--engine redis ^
--num-cache-nodes 1 ^
--cache-parameter-group default.redis6.x ^
--snapshot-arns arn:aws:s3:::amzn-s3-demo-bucket/snapshot.rdb
```

### Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(AWS CLI)
<a name="Clusters.Create.CLI.RedisCluster"></a>

Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터(API/CLI: 복제 그룹)는 `create-cache-cluster` 작업을 사용하여 생성할 수 없습니다. Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터(API/CLI: 복제 그룹)를 생성하려면 [처음부터 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 복제 그룹 만들기(AWS CLI)](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md#Replication.CreatingReplGroup.NoExistingCluster.Cluster.CLI) 섹션을 참조하세요.

자세한 내용은 ElastiCache AWS CLI용 참조 주제 단원을 참조하십시오[https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html).

## Valkey 또는 Redis OSS용 클러스터 생성(ElastiCache API)
<a name="Clusters.Create.API.red-heading"></a>

ElastiCache API를 사용하여 클러스터를 생성하려면 `CreateCacheCluster` 작업을 사용하세요.

**중요**  
클러스터를 사용할 수 있게 되면 클러스터를 사용하지 않더라도 클러스터가 활성화되어 있는 매 시간 또는 60분 미만 단위로 비용이 청구됩니다. 이 클러스터의 요금 발생을 중지하려면 클러스터를 삭제해야 합니다. [ElastiCache에서 클러스터 삭제](Clusters.Delete.md)을(를) 참조하세요.

**Topics**
+ [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터 생성(ElastiCache API)](#Clusters.Create.API.Redis)
+ [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(ElastiCache API)](#Clusters.Create.API.RedisCluster)

### Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터 생성(ElastiCache API)
<a name="Clusters.Create.API.Redis"></a>

다음 코드는 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터를 생성합니다(ElastiCache API).

줄바꿈은 가독성을 높이기 위해 추가되었습니다.

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=CreateCacheCluster
    &CacheClusterId=my-cluster
    &CacheNodeType=cache.r4.large
    &CacheParameterGroup=default.redis3.2
    &Engine=redis
    &EngineVersion=3.2.4
    &NumCacheNodes=1
    &SignatureVersion=4       
    &SignatureMethod=HmacSHA256
    &SnapshotArns.member.1=arn%3Aaws%3As3%3A%3A%3AmyS3Bucket%2Fdump.rdb
    &Timestamp=20150508T220302Z
    &Version=2015-02-02
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Credential=<credential>
    &X-Amz-Date=20150508T220302Z
    &X-Amz-Expires=20150508T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Signature=<signature>
```

### Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(ElastiCache API)
<a name="Clusters.Create.API.RedisCluster"></a>

Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터(API/CLI: 복제 그룹)는 `CreateCacheCluster` 작업을 사용하여 생성할 수 없습니다. Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터(API/CLI: 복제 그룹)를 생성하려면 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨)에서 복제 그룹을 처음부터 새로 생성(ElastiCache API)](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md#Replication.CreatingReplGroup.NoExistingCluster.Cluster.API) 섹션을 참조하세요.

자세한 정보는 ElastiCache API 참조 항목 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)을 참조하세요.

# Memcached용 클러스터 생성
<a name="Clusters.Create-mc"></a>

다음 예제에서는AWS Management ConsoleAWS CLI및 ElastiCache API를 사용하여 클러스터를 생성하는 방법을 보여줍니다.

## Memcached 클러스터 생성(콘솔)
<a name="Clusters.Create.CON.Memcached"></a>

Memcached 엔진을 사용하면 Amazon ElastiCache가 여러 노드에 데이터를 가로로 분할하도록 지원합니다. Memcached는 Auto Discovery를 지원하므로 각 노드의 엔드포인트를 추적할 필요가 없습니다. Memcached가 각 노드의 엔드포인트를 추적하여 노드가 추가되거나 제거되면 엔드포인트 목록을 업데이트합니다. 클러스터와 상호 작용이 필요한 모든 애플리케이션은 구성 엔드포인트입니다.

콘솔을 통해 Memcached 클러스터를 생성하려면 [Valkey(클러스터 모드 비활성화됨) 클러스터 생성(콘솔)](Clusters.Create.md#Clusters.Create.CON.RedisCluster)의 단계를 따릅니다. 5단계에 도달하면 **Memcached 캐시 생성**을 선택합니다.

클러스터 상태가 *사용 가능*이 되면 클러스터에 Amazon EC2 액세스 권한을 부여하고 클러스터에 연결하며 사용할 수 있습니다. 자세한 내용은 비슷한 단계인 [3단계. 클러스터에 대한 액세스 허가](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey) 및 [4단계. 클러스터의 노드에 연결](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey) 섹션을 참조하세요.

**중요**  
클러스터를 사용할 수 있게 되면 클러스터를 적극 사용하지 않더라도 클러스터가 활성화되어 있는 매 시간 또는 60분 미만 단위로 비용이 청구됩니다. 이 클러스터의 요금 발생을 중지하려면 클러스터를 삭제해야 합니다. [ElastiCache에서 클러스터 삭제](Clusters.Delete.md)을(를) 참조하세요.

## 클러스터 생성(AWS CLI)
<a name="Clusters.Create.CLI.memcached-intro"></a>

를 사용하여 클러스터를 생성하려면 `create-cache-cluster` 명령을AWS CLI사용합니다.

**중요**  
클러스터를 사용할 수 있게 되면 클러스터를 적극 사용하지 않더라도 클러스터가 활성화되어 있는 매 시간 또는 60분 미만 단위로 비용이 청구됩니다. 이 클러스터의 요금 발생을 중지하려면 클러스터를 삭제해야 합니다. [ElastiCache에서 클러스터 삭제](Clusters.Delete.md)을(를) 참조하세요.

### Memcached 캐시 클러스터 생성(AWS CLI)
<a name="Clusters.Create.CLI.Memcached"></a>

다음 CLI 코드는 3개 노드가 있는 Memcached 클러스터를 생성합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache create-cache-cluster \
--cache-cluster-id my-cluster \
--cache-node-type cache.r4.large \
--engine memcached \
--engine-version 1.4.24 \
--cache-parameter-group default.memcached1.4 \
--num-cache-nodes 3
```

Windows의 경우:

```
aws elasticache create-cache-cluster ^
--cache-cluster-id my-cluster ^
--cache-node-type cache.r4.large ^
--engine memcached ^
--engine-version 1.4.24 ^
--cache-parameter-group default.memcached1.4 ^
--num-cache-nodes 3
```

## Memcached용 클러스터 생성(ElastiCache API)
<a name="Clusters.Create.API.mem-heading"></a>

ElastiCache API를 사용하여 클러스터를 생성하려면 `CreateCacheCluster` 작업을 사용하세요.

**중요**  
클러스터를 사용할 수 있게 되면 클러스터를 사용하지 않더라도 클러스터가 활성화되어 있는 매 시간 또는 60분 미만 단위로 비용이 청구됩니다. 이 클러스터의 요금 발생을 중지하려면 클러스터를 삭제해야 합니다. [ElastiCache에서 클러스터 삭제](Clusters.Delete.md)을(를) 참조하세요.

**Topics**
+ [Memcached 클러스터 생성(ElastiCache API)](#Clusters.Create.API.Memcached)

### Memcached 클러스터 생성(ElastiCache API)
<a name="Clusters.Create.API.Memcached"></a>

다음 코드는 3개 노드가 있는 Memcached 클러스터를 생성합니다(ElastiCache API).

줄바꿈은 가독성을 높이기 위해 추가되었습니다.

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=CreateCacheCluster
    &CacheClusterId=my-cluster
    &CacheNodeType=cache.r4.large
    &Engine=memcached
    &NumCacheNodes=3
    &SignatureVersion=4       
    &SignatureMethod=HmacSHA256
    &Timestamp=20150508T220302Z
    &Version=2015-02-02
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Credential=<credential>
    &X-Amz-Date=20150508T220302Z
    &X-Amz-Expires=20150508T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Signature=<signature>
```

# ElastiCache 클러스터의 세부 정보 보기
<a name="Clusters.ViewDetails"></a>

ElastiCache 콘솔, AWS CLI 또는 ElastiCache API를 사용하여 클러스터 하나 이상에 대한 세부 정보를 볼 수 있습니다.

## Memcached 클러스터의 세부 정보 보기(콘솔)
<a name="Clusters.ViewDetails.CON.Memcached"></a>

ElastiCache 콘솔, ElastiCache용 AWS CLI 또는 ElastiCache API를 사용하여 Memcached 클러스터의 세부 정보를 볼 수 있습니다.

다음 절차에서는 ElastiCache 콘솔을 사용하여 Memcached 클러스터의 세부 정보를 보는 방법을 자세히 설명합니다.

**Memcached 클러스터의 세부 정보를 보려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 Amazon ElastiCache 콘솔을 엽니다.

1. 상단 오른쪽 모서리의 목록에서 원하는 AWS 리전을 선택합니다.

1. ElastiCache 엔진 대시보드에서 **Memcached**를 선택합니다. 이렇게 하면 Memcached 엔진에서 실행 중인 모든 클러스터 목록이 표시됩니다.

1. 클러스터의 세부 정보를 보려면 클러스터 이름의 왼쪽에 있는 상자를 선택합니다.

1. 노드 정보를 보려면 노드 상태 및 엔드포인트에 대한 정보를 표시하는 **노드** 탭을 선택합니다.

1. 지표를 보려면 클러스터 내 모든 노드 관련 지표를 표시하는 **지표** 탭을 선택합니다. 자세한 내용은 [CloudWatch 지표를 사용한 사용량 모니터링](CacheMetrics.md) 섹션을 참조하세요.

1. **네트워크 및 보안** 탭을 선택하면 클러스터의 네트워크 연결 및 서브넷 그룹 구성과 VPC 보안 그룹에 대한 세부 정보를 볼 수 있습니다. 자세한 내용은 [서브넷 및 서브넷 그룹](SubnetGroups.md) 섹션을 참조하세요.

1. **유지 관리** 탭을 선택하면 클러스터의 유지 관리 설정에 대한 세부 정보를 볼 수 있습니다. 자세한 내용은 [ElastiCache 클러스터 유지 관리](maintenance-window.md) 섹션을 참조하세요.

1. **태그** 탭을 선택하면 클러스터 리소스에 적용된 모든 태그에 대한 세부 정보를 볼 수 있습니다. 자세한 내용은 [ElastiCache 리소스에 태그 지정](Tagging-Resources.md) 섹션을 참조하세요.

## Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 세부 정보 보기(콘솔)
<a name="Clusters.ViewDetails.CON.Redis"></a>

ElastiCache 콘솔, ElastiCache용 AWS CLI 또는 ElastiCache API를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 세부 정보를 볼 수 있습니다.

다음 절차에서는 ElastiCache 콘솔을 사용하여 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 세부 정보를 보는 방법을 자세히 설명합니다.

**Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터 세부 정보를 보려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 Amazon ElastiCache 콘솔을 엽니다.

1. ElastiCache 엔진 대시보드에서 **Valkey** 또는 **Redis OSS** 중 하나를 선택하여 해당 엔진에서 실행 중인 모든 클러스터 목록을 표시합니다.

1. 클러스터의 세부 정보를 보려면 클러스터 이름의 왼쪽에 있는 확인란을 선택합니다. Clustered Valkey 또는 Clustered Redis OSS가 아닌 Valkey 또는 Redis OSS 엔진을 실행하는 클러스터를 선택해야 합니다. 그러면 클러스터의 기본 엔드포인트를 포함하여 클러스터에 대한 세부 정보가 표시됩니다.

1. 노드 정보를 보려면

   1. 클러스터의 이름을 선택합니다.

   1. **샤드 및 노드(Shards and nodes)** 탭을 선택합니다. 그러면 클러스터에서 읽으려면 사용해야 하는 노드의 엔드포인트를 포함하여 각 노드의 세부 정보가 표시됩니다.

1. 지표를 보려면 클러스터 내 모든 노드 관련 지표를 표시하는 **지표** 탭을 선택합니다. 자세한 내용은 [CloudWatch 지표를 사용한 사용량 모니터링](CacheMetrics.md) 섹션을 참조하세요.

1. 로그를 보려면 클러스터가 느린 로그를 선택하는지, 엔진 로그를 선택하는지를 보여주고 관련 세부 정보를 제공해주는 **로그** 탭을 선택합니다. 자세한 내용은 [로그 전달](Log_Delivery.md) 섹션을 참조하세요.

1. **네트워크 및 보안** 탭을 선택하면 클러스터의 네트워크 연결 및 서브넷 그룹 구성에 대한 세부 정보를 볼 수 있습니다. 자세한 내용은 [서브넷 및 서브넷 그룹](SubnetGroups.md) 섹션을 참조하세요.

1. **유지 관리** 탭을 선택하면 클러스터의 유지 관리 설정에 대한 세부 정보를 볼 수 있습니다. 자세한 내용은 [ElastiCache 클러스터 유지 관리](maintenance-window.md) 섹션을 참조하세요.

1. **서비스 업데이트** 탭을 선택하면 사용 가능한 모든 서비스 업데이트에 대한 세부 정보와 권장 적용 기한을 볼 수 있습니다. 자세한 내용은 [ElastiCache의 서비스 업데이트](Self-Service-Updates.md) 섹션을 참조하세요.

1. **태그** 탭을 선택하면 클러스터 리소스에 적용된 모든 태그에 대한 세부 정보를 볼 수 있습니다. 자세한 내용은 [ElastiCache 리소스에 태그 지정](Tagging-Resources.md) 섹션을 참조하세요.

## Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 세부 정보 보기(콘솔)
<a name="Clusters.ViewDetails.CON.RedisCluster"></a>

ElastiCache 콘솔, ElastiCache용 AWS CLI 또는 ElastiCache API를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 세부 정보를 볼 수 있습니다.

다음 절차에서는 ElastiCache 콘솔을 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 세부 정보를 보는 방법을 자세히 설명합니다.

**Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 세부 정보를 보려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 Amazon ElastiCache 콘솔을 엽니다.

1. 상단 오른쪽 모서리의 목록에서 원하는 AWS 리전을 선택합니다.

1. ElastiCache 엔진 대시보드에서 **Valkey** 또는 **Redis OSS**를 선택하여 해당 엔진에서 실행 중인 모든 클러스터 목록을 표시합니다.

1. Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 세부 정보를 보려면 클러스터 이름의 왼쪽에 있는 상자를 선택합니다. Valkey 또는 Clustered Redis OSS 엔진을 실행하는 클러스터를 선택해야 합니다.

   화면에서 아래의 클러스터를 확대하여 클러스터 구성 엔드포인트를 포함해 클러스터에 대한 세부 정보를 표시합니다.

1. 클러스터의 샤드 목록과 각 샤드 내 노드 개수를 보려면 **샤드 및 노드** 탭을 선택합니다.

1. 노드의 특정 정보를 보려면

   1. 샤드 ID를 선택합니다.

     그러면 클러스터에서 데이터를 읽는 데 사용해야 하는 각 노드의 엔드포인트를 포함하여 각 노드에 대한 정보가 표시됩니다.

1. 지표를 보려면 클러스터 내 모든 노드 관련 지표를 표시하는 **지표** 탭을 선택합니다. 자세한 내용은 [CloudWatch 지표를 사용한 사용량 모니터링](CacheMetrics.md) 섹션을 참조하세요.

1. 로그를 보려면 클러스터가 느린 로그를 선택하는지, 엔진 로그를 선택하는지를 보여주고 관련 세부 정보를 제공해주는 **로그** 탭을 선택합니다. 자세한 내용은 [로그 전달](Log_Delivery.md) 섹션을 참조하세요.

1. **네트워크 및 보안** 탭을 선택하면 클러스터의 네트워크 연결 및 서브넷 그룹 구성과 VPC 보안 그룹, 그리고 암호화 방법이 클러스터에 활성화되어 있다면 어떤 것인지에 대한 세부 정보를 볼 수 있습니다. 자세한 내용은 [서브넷 및 서브넷 그룹](SubnetGroups.md) 및 [Amazon ElastiCache의 데이터 보안](encryption.md)(을)를 참조하세요.

1. **유지 관리** 탭을 선택하면 클러스터의 유지 관리 설정에 대한 세부 정보를 볼 수 있습니다. 자세한 내용은 [ElastiCache 클러스터 유지 관리](maintenance-window.md) 섹션을 참조하세요.

1. **서비스 업데이트** 탭을 선택하면 사용 가능한 모든 서비스 업데이트에 대한 세부 정보와 권장 적용 기한을 볼 수 있습니다. 자세한 내용은 [ElastiCache의 서비스 업데이트](Self-Service-Updates.md) 섹션을 참조하세요.

1. **태그** 탭을 선택하면 클러스터 리소스에 적용된 모든 태그에 대한 세부 정보를 볼 수 있습니다. 자세한 내용은 [ElastiCache 리소스에 태그 지정](Tagging-Resources.md) 섹션을 참조하세요.

## ElastiCache 클러스터의 세부 정보 보기(AWS CLI)
<a name="Clusters.ViewDetails.CLI"></a>

다음 코드는 *my-cluster*에 대한 세부 정보를 나열합니다.

```
aws elasticache describe-cache-clusters --cache-cluster-id my-cluster
```

`create-cache-cluster` 명령을 사용하여 1개의 캐시 노드와 0개의 샤드가 있는 클러스터를 만든 경우에는 *my-cluster*를 귀하의 클러스터 이름으로 대체합니다.

```
{
    "CacheClusters": [
        {
            "CacheClusterStatus": "available",
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "wed:12:00-wed:13:00",
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "08:30-09:30",
            "TransitEncryptionEnabled": false,
            "AtRestEncryptionEnabled": false,
            "CacheClusterId": "my-cluster1",
            "CacheClusterCreateTime": "2018-02-26T21:06:43.420Z",
            "PreferredAvailabilityZone": "us-west-2c",
            "AuthTokenEnabled": false,
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
           "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2"
            },
            "SnapshotRetentionLimit": 0,
            "AutoMinorVersionUpgrade": true,
            "EngineVersion": "3.2.10",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        }
```

```
{
    "CacheClusters": [
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": false,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:13:24.250Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": false,
            "PreferredAvailabilityZone": "us-west-2a",
            "TransitEncryptionEnabled": false,
            "ReplicationGroupId": "my-cluster2",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "sun:08:30-sun:09:30",
            "CacheClusterId": "my-cluster2-001",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": false,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:13:24.250Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": false,
            "PreferredAvailabilityZone": "us-west-2b",
            "TransitEncryptionEnabled": false,
            "ReplicationGroupId": "my-cluster2",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "sun:08:30-sun:09:30",
            "CacheClusterId": "my-cluster2-002",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": false,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:13:24.250Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": false,
            "PreferredAvailabilityZone": "us-west-2c",
            "TransitEncryptionEnabled": false,
            "ReplicationGroupId": "my-cluster2",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "sun:08:30-sun:09:30",
            "CacheClusterId": "my-cluster2-003",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "3.2.10",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        }
```

```
{
    "CacheClusters": [
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2a",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0001-001",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2b",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0001-002",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "3.2.6",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2c",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0001-003",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2b",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0002-001",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2c",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0002-002",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "3.2.6",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2a",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0002-003",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        }
    ]
}
```

AWS Management Console(클러스터 노드 활성화/비활성화, 1개 이상의 샤드)을 사용하여 클러스터를 만든 경우에는 다음 명령을 사용하여 클러스터의 세부 정보를 설명합니다(*my-cluster*를 복제 그룹 이름(귀하의 클러스터 이름)으로 대체).

```
aws elasticache describe-replication-groups --replication-group-id my-cluster 
```

자세한 내용은 ElastiCache용 AWS CLI 항목 [https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html)를 참조하세요.

## ElastiCache 클러스터의 세부 정보 보기(ElastiCache API)
<a name="Clusters.ViewDetails.API"></a>

ElastiCache API `DescribeCacheClusters` 작업을 사용하여 클러스터의 세부 정보를 볼 수 있습니다. `CacheClusterId` 파라미터가 포함되면 지정한 클러스터의 세부 정보가 반환됩니다. `CacheClusterId` 파라미터가 생략되면 클러스터 최대 `MaxRecords`개(기본값 100)의 세부 정보가 반환됩니다. `MaxRecords`의 값은 20 이상 또는 100 이하여야 합니다.

다음 코드는 `my-cluster`의 세부 정보를 나열합니다.

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheClusters
   &CacheClusterId=my-cluster
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

다음 코드는 클러스터 최대 25개의 세부 정보를 나열합니다.

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheClusters
   &MaxRecords=25
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

자세한 정보는 ElastiCache API 참조 항목 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html)을 참조하세요.

# ElastiCache 클러스터 수정
<a name="Clusters.Modify"></a>

ElastiCache 클러스터에서 노드를 추가하거나 제거하는 것 외에도 보안 그룹을 추가하거나 유지 관리 기간 또는 파라미터 그룹 변경과 같은 다른 변경을 수행해야 하는 경우가 있을 수 있습니다.

유지 관리 기간을 사용률이 가장 낮은 시간으로 낮추는 것이 유익하므로 수정해야 할 때도 있습니다.

클러스터의 파라미터를 변경하면 변경 사항은 또는 클러스터가 재시작된 즉시 또는 그 이후에 클러스터에 적용됩니다. 이는 클러스터의 파라미터 그룹 자체에서 변경하든 파라미터 값을 클러스터의 파라미터 그룹 내에서 변경하든 마찬가지입니다. 특정 파라미터 변경 사항이 적용되는 시점을 확인하려면 [Memcached 특정 파라미터](ParameterGroups.Engine.md#ParameterGroups.Memcached) 및 [Valkey 및 Redis OSS 파라미터](ParameterGroups.Engine.md#ParameterGroups.Redis)에 대한 테이블에 있는 **세부 정보** 열의 **변경 적용** 섹션을 참조하십시오. 클러스터의 노드 재부팅에 관한 자세한 정보는 [노드 재부팅](nodes.rebooting.md) 섹션을 참조하세요.

## ElastiCache AWS Management Console 사용
<a name="Clusters.Modify.CON"></a>

**클러스터를 수정하려면**

1. AWS Management Console에 로그인하고[ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 상단 오른쪽 모서리의 목록에서 수정하려는 클러스터가 있는 AWS 리전을 선택합니다.

1. 탐색 창에서 수정하려는 클러스터에서 실행 중인 엔진을 선택합니다.

   선택한 엔진의 클러스터 목록이 나타납니다.

1. 클러스터 목록에서 수정할 클러스터의 해당 이름을 선택합니다.

1. **작업**을 선택한 다음 **수정**을 선택합니다.

   [**Modify Cluster**] 창이 나타납니다.

1. **Modify Cluster(클러스터 수정)** 창에서 원하는 내용을 수정합니다. 옵션에는 다음이 포함됩니다.
   + 설명
   + 클러스터 모드 - 클러스터 모드를 **비활성화**에서 **활성화**로 수정하려면 먼저 클러스터 모드를 **호환**으로 설정해야 합니다.

     호환 모드를 사용하면 클러스터 모드를 활성화한 상태와 클러스터 모드를 비활성화한 상태 모두에서 Valkey 또는 Redis OSS 클라이언트를 연결할 수 있습니다. 클러스터 모드 활성화를 사용하도록 모든 Valkey 또는 Redis OSS 클라이언트를 마이그레이션한 후 클러스터 모드 구성을 완료하고 클러스터 모드를 **활성화**로 설정할 수 있습니다.
   + 엔진 버전 호환성
**중요**  
새로운 엔진 버전으로 업그레이드할 수 있습니다. 메이저 엔진 버전을 업그레이드하는 경우(예: 5.0.6에서 6.0으로 업그레이드) 새 엔진 버전과 호환되는 파라미터 그룹 패밀리를 선택해야 합니다. 이에 대한 자세한 내용은 [ElastiCache용 버전 관리](VersionManagement.md) 섹션을 참조하세요. 하지만 기존의 클러스터를 삭제하고 새로 만들지 않는 한 이전 엔진 버전으로 다운그레이드할 수 없습니다.
   + VPC 보안 그룹
   + Parameter Group
   + 노드 유형
**참고**  
클러스터가 r6gd 패밀리의 노드 유형을 사용하는 경우 해당 패밀리 내에서 다른 크기의 노드만 선택할 수 있습니다. r6gd 패밀리의 노드 유형을 선택하는 경우 데이터 계층화가 자동으로 활성화됩니다. 자세한 내용은 [데이터 계층화](data-tiering.md)를 참조하세요.
   + Multi-AZ
   + 자동 장애 조치(클러스터 모드 비활성화됨 전용)
   + 자동 백업 활성화
   + Backup 노드 ID
   + [Backup Retention Period]
   + 백업 기간
   + SNS 알림에 대한 주제
   + Memcached 엔진 버전 호환성
   + 네트워크 유형
**참고**  
IPv4에서 IPv6으로 전환하는 경우, IPv6과 호환되는 서브넷 그룹을 선택하거나 생성해야 합니다. 자세한 내용은 [ElastiCache에서 네트워크 유형 선택](network-type.md) 섹션을 참조하세요.
   + VPC 보안 그룹
   + Parameter Group
   + 유지 관리 기간
   + SNS 알림에 대한 주제

   **즉시 적용** 상자는 엔진 버전 및 노드 유형 수정에만 적용됩니다. 변경 사항을 즉시 적용하려면 **Apply Immediately(즉시 적용)** 확인란을 선택합니다. 이 상자를 선택하지 않으면 다음 번 유지 관리 기간에 엔진 버전 수정이 적용됩니다. 유지 관리 기간 변경과 같은 다른 수정은 즉시 적용됩니다.

**Redis에 대해 로그 전송을 사용 설정/사용 중지**

1. 클러스터 목록에서 수정할 클러스터를 선택합니다. **클러스터 이름**을 선택합니다(그 옆의 확인란 아님).

1. **클러스터 세부 정보** 페이지에서 **로그** 탭을 선택합니다.

1. 슬로우 로그를 사용 설정 또는 사용 중지하려면 **사용 설정(Enable)** 또는 **사용 중지(Disable)**를 선택합니다.

   사용 설정을 선택한 경우

   1. **로그 형식(Log format)**에서 **JSON** 또는 **텍스트(Text)**를 선택합니다.

   1. **로드 대상 유형(Log destination type)**에서 **CloudWatch Logs** 또는 **Kinesis Firehose**를 선택합니다.

   1. **로그 대상(Log destination)**에서 **새로 생성(Create new)**을 선택하고 CloudWatchLogs 로그 그룹 이름이나 Kinesis Data Firehose 스트림 이름을 입력할 수 있습니다. 또는 **기존 항목 선택**을 선택한 다음 CloudWatchLogs 로그 그룹 이름이나 Kinesis Data Firehose 스트림 이름을 선택할 수 있습니다.

   1. **활성화**를 선택합니다.

**Redis에 대한 구성을 변경하려면 다음을 수행합니다.**

1. **수정**을 선택합니다.

1. **로그 형식(Log format)**에서 **JSON** 또는 **텍스트(Text)**를 선택합니다.

1. **대상 유형(Destination Type)**에서 **CloudWatch Logs** 또는 **Kinesis Firehose**를 선택합니다.

1. **로그 대상(Log destination)**에서 **새로 생성(Create new)**을 선택하고 CloudWatch Logs 로그 그룹 이름이나 Kinesis Data Firehose 스트림 이름을 입력합니다. 또는 **기존 항목 선택(Select existing)**을 선택한 다음 CloudWatch Logs 로그 그룹 이름이나 Kinesis Data Firehose 스트림 이름을 선택합니다.

## ElastiCache와 함께 AWS CLI 사용
<a name="Clusters.Modify.CLI"></a>

AWS CLI `modify-cache-cluster` 작업을 사용하여 기존의 클러스터를 수정할 수 있습니다. 클러스터의 구성 값을 수정하려면 클러스터 ID, 변경할 파라미터 및 파라미터의 새 값을 지정합니다. 다음 예제에서는 `my-cluster`라는 클러스터의 유지 관리 기간을 변경하고 변경 사항을 즉시 적용합니다.

**중요**  
새로운 Memcached 엔진 버전으로 업그레이드할 수 있습니다. 이에 대한 자세한 내용은 [ElastiCache용 버전 관리](VersionManagement.md) 섹션을 참조하세요. 하지만 기존의 클러스터를 삭제하고 새로 만들지 않는 한 이전 엔진 버전으로 다운그레이드할 수 없습니다.

**중요**  
새로운 Valkey 또는 Redis OSS 엔진 버전으로 업그레이드할 수 있습니다. 메이저 엔진 버전을 업그레이드하는 경우(예: Redis OSS 5.0.6에서 Redis OSS 6.0으로 업그레이드) 새 엔진 버전과 호환되는 파라미터 그룹 패밀리를 선택해야 합니다. 이에 대한 자세한 내용은 [ElastiCache용 버전 관리](VersionManagement.md) 섹션을 참조하세요. 하지만 기존의 클러스터를 삭제하고 새로 만들지 않는 한 이전 엔진 버전으로 다운그레이드할 수 없습니다.

Linux, macOS, Unix의 경우:

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id my-cluster \
    --preferred-maintenance-window sun:23:00-mon:02:00
```

Windows의 경우:

```
aws elasticache modify-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --preferred-maintenance-window sun:23:00-mon:02:00
```

`--apply-immediately` 파라미터는 노드 유형, 엔진 버전의 수정 및 클러스터의 노드 수 변경에만 적용됩니다. 이 변경 사항을 즉시 적용하려면 `--apply-immediately` 파라미터를 사용하세요. 다음 번 유지 관리 기간으로 이 변경을 연기하려면 `--no-apply-immediately` 파라미터를 사용하세요. 유지 관리 기간 변경과 같은 다른 수정은 즉시 적용됩니다.

자세한 내용은 ElastiCache용 AWS CLI 항목 [https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html)를 참조하세요.

## ElastiCache API 사용
<a name="Clusters.Modify.API"></a>

ElastiCache API `ModifyCacheCluster` 작업을 사용하여 기존의 클러스터를 수정할 수 있습니다. 클러스터의 구성 값을 수정하려면 클러스터 ID, 변경할 파라미터 및 파라미터의 새 값을 지정합니다. 다음 예제에서는 `my-cluster`라는 클러스터의 유지 관리 기간을 변경하고 변경 사항을 즉시 적용합니다.

**중요**  
새로운 Memcached 엔진 버전으로 업그레이드할 수 있습니다. 이에 대한 자세한 내용은 [ElastiCache용 버전 관리](VersionManagement.md) 섹션을 참조하세요. 하지만 기존의 클러스터를 삭제하고 새로 만들지 않는 한 이전 엔진 버전으로 다운그레이드할 수 없습니다.

**중요**  
새로운 Valkey 또는 Redis OSS 엔진 버전으로 업그레이드할 수 있습니다. 메이저 엔진 버전을 업그레이드하는 경우(예: Redis OSS 5.0.6에서 Redis OSS 6.0으로 업그레이드) 새 엔진 버전과 호환되는 파라미터 그룹 패밀리를 선택해야 합니다. 이에 대한 자세한 내용은 [ElastiCache용 버전 관리](VersionManagement.md) 섹션을 참조하세요. 하지만 기존의 클러스터를 삭제하고 새로 만들지 않는 한 이전 엔진 버전으로 다운그레이드할 수 없습니다.

줄바꿈은 가독성을 높이기 위해 추가되었습니다.

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=ModifyCacheCluster
    &CacheClusterId=my-cluster
    &PreferredMaintenanceWindow=sun:23:00-mon:02:00
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150901T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20150202T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20150901T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

`ApplyImmediately` 파라미터는 노드 유형, 엔진 버전의 수정 및 클러스터의 노드 수 변경에만 적용됩니다. 이 변경 사항을 즉시 적용하려면 `ApplyImmediately` 파라미터를 `true`로 설정하세요. 다음 번 유지 관리 기간으로 이 변경을 연기하려면 `ApplyImmediately` 파라미터를 `false`로 설정하세요. 유지 관리 기간 변경과 같은 다른 수정은 즉시 적용됩니다.

자세한 정보는 ElastiCache API 참조 항목 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)을 참조하세요.

# ElastiCache 클러스터에 노드 추가
<a name="Clusters.AddNode"></a>

Memcached 클러스터에 노드를 추가하면 클러스터의 파티션 수가 증가합니다. 클러스터의 파티션 수를 변경할 때는 키스페이스의 일부를 다시 매핑해야 정확한 노드에 매핑됩니다. 키스페이스를 일시적으로 다시 매핑하면 클러스터의 캐시 누락 수가 증가합니다. 자세한 내용은 [효율적인 로드 밸런싱을 위해 ElastiCache 클라이언트 구성(Memcached)](BestPractices.LoadBalancing.md) 단원을 참조하십시오.

Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터를 재구성하려면 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 규모 조정](scaling-redis-cluster-mode-enabled.md) 섹션을 참조하세요.

ElastiCache 관리 콘솔,AWS CLI또는 ElastiCache API를 사용하여 클러스터에 노드를 추가할 수 있습니다.

## ElastiCache AWS Management Console사용
<a name="Clusters.AddNode.CON"></a>

단일 노드 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터(복제가 활성화되지 않은 클러스터)에 노드를 추가하려면 복제를 추가한 후 복제본 노드를 추가하는 2단계 프로세스를 진행합니다.

**주제**
+ [샤드 없이 Valkey 또는 Redis OSS 클러스터에 복제를 추가하려면](#AddReplication.CON)
+ [ElastiCache 클러스터에 노드를 추가하려면(콘솔)](#AddNode.CON)

다음 절차에서는 복제가 활성화되지 않은 단일 노드 Valkey 또는 Redis OSS에 복제를 추가합니다. 복제를 추가할 때 기존의 노드는 복제가 활성화된 클러스터의 기본 노드가 됩니다. 복제를 추가한 후에는 최대 5개의 복제본 노드를 클러스터에 추가할 수 있습니다.<a name="AddReplication.CON"></a>

**샤드 없이 Valkey 또는 Redis OSS 클러스터에 복제를 추가하려면**

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

   해당 엔진을 실행하는 클러스터 목록이 표시됩니다.

1. 노드를 추가하고자 하는 클러스터의 이름 왼쪽에 있는 상자가 아닌 클러스터의 이름을 선택합니다.

   복제가 활성화되지 않은 Redis OSS 클러스터에 다음 내용이 적용됩니다.
   + Clustered Redis OSS가 아닌 Redis OSS를 실행합니다.
   + 제로 샤드를 포함합니다.

     클러스터에 샤드가 있으면 복제가 이미 활성화되어 있으며 [ElastiCache 클러스터에 노드를 추가하려면(콘솔)](#AddNode.CON)에서 계속할 수 있습니다.

1. [**Add replication**]을 선택합니다.

1. 복제가 활성화된 이 클러스터에 대한 설명을 **Add Replication(복제 추가)**에 입력합니다.

1. **추가**를 선택합니다.

   클러스터 상태가 [*available*]로 돌아오면 다음 절차에서 계속 진행하고 복제본을 클러스터에 추가할 수 있습니다.<a name="AddNode.CON"></a>

**ElastiCache 클러스터에 노드를 추가하려면(콘솔)**

다음 절차에 따라 클러스터에 노드를 추가할 수 있습니다.

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 노드를 추가하려는 클러스터에서 실행 중인 엔진을 탐색 창에서 선택합니다.

   선택한 엔진을 실행하는 클러스터 목록이 표시됩니다.

1. 클러스터 목록에서 노드를 추가할 클러스터의 해당 이름을 선택합니다.

   클러스터가 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터인 경우 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 규모 조정](scaling-redis-cluster-mode-enabled.md) 섹션을 참조하세요.

   클러스터가 제로 샤드 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터인 경우에는 [샤드 없이 Valkey 또는 Redis OSS 클러스터에 복제를 추가하려면](#AddReplication.CON)의 단계들을 먼저 완료하세요.

1. [**Add node**]를 선택합니다.

1. **Add Node(노드 추가)** 대화 상자에 요청을 받은 정보를 입력합니다.

1. 이 노드를 즉시 추가하려면 [**Apply Immediately - Yes**] 버튼을 선택하고, 클러스터의 다음 유지 관리 기간 중에 이 노드를 추가하려면 [**No**]를 선택합니다.  
**신규 추가 및 제거 요청이 대기 중 요청에 미치는 영향**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/Clusters.AddNode.html)

   어떤 작업이 대기 중인지 알아보려면 **설명** 탭을 선택하여 대기 중 생성 또는 삭제 작업이 몇 개인지 확인합니다. 대기 중 생성 작업과 대기 중 삭제 작업이 동시에 있을 수는 없습니다.

1. [**Add**] 버튼을 선택합니다.

    잠시 후 [**creating**] 상태로 새로운 노드가 노드 목록에 나타납니다. 노드가 표시되지 않으면 브라우저 페이지를 새로 고치십시오. 노드가 *사용 가능* 상태가 되면 새로운 노드를 사용할 수 있습니다.

## ElastiCache AWS CLI에서 사용
<a name="Clusters.AddNode.CLI"></a>

를 사용하여 클러스터에 노드를 추가하려면 다음 파라미터`modify-cache-cluster`와 함께AWS CLI작업을AWS CLI사용합니다.
+ `--cache-cluster-id` 노드를 추가할 클러스터의 ID입니다.
+ `--num-cache-nodes` `--num-cache-nodes` 파라미터는 수정이 적용된 후 이 클러스터에 포함할 노드 수를 지정합니다. 이 클러스터에 노드를 추가하려면 `--num-cache-nodes`가 이 클러스터의 현재 노드 수보다 커야 합니다. 이 값이 현재 노드 수보다 작으면 ElastiCache가 파라미터 `cache-node-ids-to-remove` 및 클러스터에서 제거할 노드 목록을 필요로 합니다. 자세한 내용은 [ElastiCache AWS CLI에서 사용](Clusters.DeleteNode.md#Clusters.DeleteNode.CLI) 단원을 참조하십시오.
+ `--apply-immediately` 또는 `--no-apply-immediately` 이 노드를 즉시 추가할지 아니면 다음 번 유지 관리 기간에 추가할지 지정합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id my-cluster \
    --num-cache-nodes 5 \
    --apply-immediately
```

Windows의 경우:

```
aws elasticache modify-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --num-cache-nodes 5 ^
    --apply-immediately
```

이 작업은 다음과 유사한 출력을 생성합니다(JSON 형식).

```
{
    "CacheCluster": {
        "Engine": "memcached", 
        "CacheParameterGroup": {
            "CacheNodeIdsToReboot": [], 
            "CacheParameterGroupName": "default.memcached1.4", 
            "ParameterApplyStatus": "in-sync"
        }, 
        "CacheClusterId": "my-cluster", 
        "PreferredAvailabilityZone": "us-west-2b", 
        "ConfigurationEndpoint": {
            "Port": 11211, 
            "Address": "rlh-mem000.7alc7bf-example.cfg.usw2.cache.amazonaws.com"
        }, 
        "CacheSecurityGroups": [], 
        "CacheClusterCreateTime": "2016-09-21T16:28:28.973Z", 
        "AutoMinorVersionUpgrade": true, 
        "CacheClusterStatus": "modifying", 
        "NumCacheNodes": 2, 
        "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
        "SecurityGroups": [
            {
                "Status": "active", 
                "SecurityGroupId": "sg-dbe93fa2"
            }
        ], 
        "CacheSubnetGroupName": "default", 
        "EngineVersion": "1.4.24", 
        "PendingModifiedValues": {
            "NumCacheNodes": 5
        }, 
        "PreferredMaintenanceWindow": "sat:09:00-sat:10:00", 
        "CacheNodeType": "cache.m3.medium",
         "DataTiering": "disabled",
    }
}
```

자세한 내용은AWS CLI주제를 참조하세요[https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html).

## ElastiCache AWS CLI에서 사용
<a name="Clusters.AddNode.CLI"></a>

복제가 활성화되지 않은 기존 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터에 노드를 추가하려면 기존 클러스터를 기본 클러스터로 지정하여 먼저 복제 그룹을 만들어야 합니다. 자세한 내용은 [사용 가능한 Valkey 또는 Redis OSS 클러스터를 사용하여 복제 그룹 생성(AWS CLI)](Replication.CreatingReplGroup.ExistingCluster.md#Replication.CreatingReplGroup.ExistingCluster.CLI) 단원을 참조하십시오. 복제 그룹이 [*available*] 상태가 되면 다음 프로세스로 계속 진행할 수 있습니다.

를 사용하여 클러스터에 노드를 추가하려면 다음 파라미터`increase-replica-count`와 함께AWS CLI작업을AWS CLI사용합니다.
+ `--replication-group-id` 노드를 추가할 복제 그룹의 ID입니다.
+ `--new-replica-count`는 수정이 적용된 후 이 복제 그룹에 포함할 노드 수를 지정합니다. 이 클러스터에 노드를 추가하려면 `--new-replica-count`가 이 클러스터의 현재 노드 수보다 커야 합니다.
+ `--apply-immediately` 또는 `--no-apply-immediately` 이 노드를 즉시 추가할지 아니면 다음 번 유지 관리 기간에 추가할지 지정합니다.

Linux, macOS, Unix의 경우:

```
aws elasticache increase-replica-count \
    --replication-group-id my-replication-group \
    --new-replica-count 4 \
    --apply-immediately
```

Windows의 경우:

```
aws elasticache increase-replica-count ^
    --replication-group-id my-replication-group ^
    --new-replica-count 4 ^
    --apply-immediately
```

이 작업은 다음과 유사한 출력을 생성합니다(JSON 형식).

```
{
    "ReplicationGroup": {
        "ReplicationGroupId": "node-test",
        "Description": "node-test",       
        "Status": "modifying",
        "PendingModifiedValues": {},
        "MemberClusters": [
            "node-test-001",
            "node-test-002",
            "node-test-003",
            "node-test-004",
            "node-test-005"
        ],
        "NodeGroups": [
            {
                "NodeGroupId": "0001",
                "Status": "modifying",
                "PrimaryEndpoint": {
                    "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                    "Port": 6379
                },
                "ReaderEndpoint": {
                    "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                    "Port": 6379
                },
                "NodeGroupMembers": [
                    {
                        "CacheClusterId": "node-test-001",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-001.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2a",
                        "CurrentRole": "primary"
                    },
                    {
                        "CacheClusterId": "node-test-002",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-002.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2c",
                        "CurrentRole": "replica"
                    },
                    {
                        "CacheClusterId": "node-test-003",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-003.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2b",
                        "CurrentRole": "replica"
                    }
                ]
            }
        ],
        "SnapshottingClusterId": "node-test-002",
        "AutomaticFailover": "enabled",
        "MultiAZ": "enabled",
        "SnapshotRetentionLimit": 1,
        "SnapshotWindow": "07:30-08:30",
        "ClusterEnabled": false,
        "CacheNodeType": "cache.r5.large",
         "DataTiering": "disabled",
        "TransitEncryptionEnabled": false,
        "AtRestEncryptionEnabled": false,
        "ARN": "arn:aws:elasticache:us-west-2:123456789012:replicationgroup:node-test"
    }
}
```

자세한 내용은AWS CLI주제를 참조하세요[https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-replica-count.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-replica-count.html).

## ElastiCache API 사용
<a name="Clusters.AddNode.API"></a>

복제가 활성화되지 않은 기존 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터에 노드를 추가하려면 기존 클러스터를 기본 클러스터로 지정하여 먼저 복제 그룹을 만들어야 합니다. 자세한 내용은 [독립형 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터에 복제본 추가(ElastiCache API)](Replication.CreatingReplGroup.ExistingCluster.md#Replication.CreatingReplGroup.ExistingCluster.API) 단원을 참조하십시오. 복제 그룹이 [*available*] 상태가 되면 다음 프로세스로 계속 진행할 수 있습니다.

**클러스터에 노드를 추가하려면(ElastiCache API)**
+ 다음 파라미터와 함께 `IncreaseReplicaCount` API 작업을 호출합니다.
  + `ReplicationGroupId` 노드를 추가할 클러스터의 ID입니다.
  + `NewReplicaCount` `NewReplicaCount` 파라미터는 수정이 적용된 후 이 클러스터에 포함할 노드 수를 지정합니다. 이 클러스터에 노드를 추가하려면 `NewReplicaCount`가 이 클러스터의 현재 노드 수보다 커야 합니다. 이 값이 현재 노드 수보다 작으면 `DecreaseReplicaCount` API와 클러스터에서 제거할 노드 수를 사용합니다.
  + `ApplyImmediately` 이 노드를 즉시 추가할지 아니면 다음 번 유지 관리 기간에 추가할지 지정합니다.
  + `Region` 노드를 추가할 클러스터의AWS리전을 지정합니다.

  다음 예제에서는 클러스터에 노드를 추가하기 위한 호출을 보여줍니다.  
**Example**  

  ```
  https://elasticache.us-west-2.amazonaws.com/
      ?Action=IncreaseReplicaCount
      &ApplyImmediately=true
      &NumCacheNodes=4
      &ReplicationGroupId=my-replication-group
      &Region=us-east-2
      &Version=2014-12-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20141201T220302Z
      &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
      &X-Amz-Date=20141201T220302Z
      &X-Amz-SignedHeaders=Host
      &X-Amz-Expires=20141201T220302Z
      &X-Amz-Credential=<credential>
      &X-Amz-Signature=<signature>
  ```

자세한 내용은 ElastiCache API 항목 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_IncreaseReplicaCount.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_IncreaseReplicaCount.html)를 참조하세요.

## ElastiCache API 사용
<a name="Clusters.AddNode.API"></a>

**클러스터에 노드를 추가하려면(ElastiCache API)**
+ 다음 파라미터와 함께 `ModifyCacheCluster` API 작업을 호출합니다.
  + `CacheClusterId` 노드를 추가할 클러스터의 ID입니다.
  + `NumCacheNodes` `NumCachNodes` 파라미터는 수정이 적용된 후 이 클러스터에 포함할 노드 수를 지정합니다. 이 클러스터에 노드를 추가하려면 `NumCacheNodes`가 이 클러스터의 현재 노드 수보다 커야 합니다. 이 값이 현재 노드 수보다 작으면 ElastiCache가 클러스터에서 제거할 노드 목록과 함께 파라미터 `CacheNodeIdsToRemove`를 필요로 합니다([Memcached에서 ElastiCache API 사용](Clusters.DeleteNode.md#Clusters.DeleteNode.API) 참조).
  + `ApplyImmediately` 이 노드를 즉시 추가할지 아니면 다음 번 유지 관리 기간에 추가할지 지정합니다.
  + `Region` 노드를 추가할 클러스터의AWS리전을 지정합니다.

  다음 예제에서는 클러스터에 노드를 추가하기 위한 호출을 보여줍니다.  
**Example**  

  ```
  https://elasticache.us-west-2.amazonaws.com/
      ?Action=ModifyCacheCluster
      &ApplyImmediately=true
      &NumCacheNodes=5
  	&CacheClusterId=my-cluster
  	&Region=us-east-2
      &Version=2014-12-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20141201T220302Z
      &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
      &X-Amz-Date=20141201T220302Z
      &X-Amz-SignedHeaders=Host
      &X-Amz-Expires=20141201T220302Z
      &X-Amz-Credential=<credential>
      &X-Amz-Signature=<signature>
  ```

자세한 정보는 ElastiCache API 항목 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)를 참조하세요.

# ElastiCache 클러스터에서 노드 제거
<a name="Clusters.DeleteNode"></a>

, 또는 ElastiCache API를 사용하여 Valkey, Memcached AWS CLI또는 Redis OSS 클러스터에서 노드AWS Management Console를 삭제할 수 있습니다.

**참고**  
Memcached 클러스터의 노드 수를 변경할 때마다 키스페이스의 일부라도 다시 매핑해야 정확한 노드에 매핑됩니다. Memcached 클러스터의 로드 밸런싱에 대한 자세한 내용은 [효율적인 로드 밸런싱을 위해 ElastiCache 클라이언트 구성(Memcached)](BestPractices.LoadBalancing.md) 섹션을 참조하세요.

## ElastiCache AWS Management Console사용
<a name="Clusters.DeleteNode.CON"></a>

**클러스터 에서 노드를 제거하려면(콘솔)**

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 오른쪽 상단의 목록에서 노드를 제거할 클러스터의AWS리전을 선택합니다.

1. 노드를 제거하려는 클러스터에서 실행 중인 엔진을 탐색 창에서 선택합니다.

   선택한 엔진을 실행하는 클러스터 목록이 표시됩니다.

1. 클러스터 목록에서 노드를 제거할 클러스터 이름을 선택합니다.

   클러스터의 노드 목록이 나타납니다.

1. 제거할 노드의 노드 ID 왼쪽에 있는 상자를 선택합니다. ElastiCache 콘솔을 사용하면 노드를 한 번에 하나만 삭제할 수 있으므로 노드를 여러 개 선택하면 **노드 삭제** 버튼을 사용할 수 없습니다.

   *노드 삭제* 페이지가 나타납니다.

1. 노드를 삭제하려면 **노드 삭제** 페이지를 완료하고 **노드 삭제**를 선택합니다. 노드를 유지하려면 **취소**를 선택합니다.
**중요**  
Valkey 또는 Redis OSS를 사용하여 더 이상 다중 AZ를 준수하지 않는 클러스터의 노드 결과를 삭제하는 경우 먼저 **다중 AZ** 확인란의 선택을 취소한 다음 노드를 삭제해야 합니다. **다중 AZ** 확인란을 선택 취소하면 **Auto failover(자동 장애 조치)**를 활성화하도록 선택할 수 있습니다.


**신규 추가 및 제거 요청이 대기 중 요청에 미치는 영향**  

| 시나리오 | 대기 중 작업 | 신규 요청 | 결과 | 
| --- | --- | --- | --- | 
|  시나리오 1 |  Delete | Delete |  신규 삭제 요청(대기 중 또는 즉시)은 대기 중 삭제 요청을 대체합니다. 예를 들어 노드 0001, 0003 및 0007에서 삭제 요청이 대기 중일 때 노드 0002 및 0004를 삭제하는 신규 요청이 생성될 경우 노드 0002 및 0004만 삭제됩니다. 노드 0001, 0003 및 0007은 삭제되지 않습니다. | 
|  시나리오 2 |  Delete |  생성 |  신규 생성 요청(대기 중 또는 즉시)은 대기 중 삭제 요청을 대체합니다. 예를 들어 노드 0001, 0003 및 0007에서 삭제 요청이 대기 중일 때 노드를 생성하는 신규 요청이 생성될 경우 새 노드가 생성되고 노드 0001, 0003 및 0007은 삭제되지 않습니다. | 
|  시나리오 3 |  생성 |  Delete |  신규 삭제 요청(대기 중 또는 즉시)은 대기 중 생성 요청을 대체합니다. 예를 들어 노드 2개를 생성하는 요청이 대기 중일 때 노드 0003을 삭제하는 요청이 생성될 경우 새 노드는 생성되지 않고 노드 0003이 삭제됩니다. | 
|  시나리오 4 |  생성 |  생성 |  신규 생성 요청은 대기 중 생성 요청에 추가됩니다. 예를 들어 노드 2개를 생성하는 요청이 대기 중일 때 노드 3개를 생성하는 신규 요청이 생성될 경우 신규 요청이 대기 중 요청에 추가되어 노드 5개가 생성됩니다. 신규 생성 요청이 **Apply Immediately - Yes(즉시 적용 - 예)**로 설정된 경우 모든 생성 요청이 즉시 실행됩니다. 신규 생성 요청이 **Apply Immediately - No(즉시 적용 - 아니요)**로 설정된 경우 모든 생성 요청은 대기 중 작업입니다. | 

어떤 작업이 대기 중인지 알아보려면 **설명** 탭을 선택하여 대기 중 생성 또는 삭제 작업이 몇 개인지 확인합니다. 대기 중 생성 작업과 대기 중 삭제 작업이 동시에 있을 수는 없습니다.

## ElastiCache AWS CLI에서 사용
<a name="Clusters.DeleteNode.CLI"></a>

1. 제거할 노드의 ID를 확인합니다. 자세한 내용은 [ElastiCache 클러스터의 세부 정보 보기](Clusters.ViewDetails.md) 단원을 참조하십시오.

1. 다음 예제와 같이 제거할 노드 목록과 함께 `decrease-replica-count` CLI 작업을 사용하세요.

   명령줄 인터페이스를 사용하여 클러스터에서 노드를 제거하려면 다음 파라미터와 함께 `decrease-replica-count` 명령을 사용하세요.
   + `--replication-group-id` 노드를 제거할 복제 그룹의 ID입니다.
   + `--new-replica-count` `--new-replica-count` 파라미터는 수정이 적용된 후 이 클러스터에 포함할 노드 수를 지정합니다.
   + `--replicas-to-remove` 이 클러스터에서 제거할 노드 ID 목록입니다.
   + `--apply-immediately` 또는 `--no-apply-immediately` 이 노드를 즉시 제거할지 아니면 다음 번 유지 관리 기간에 제거할지 지정합니다.
   + `--region` 노드를 제거할 클러스터의AWS리전을 지정합니다.
**참고**  
이 작업을 호출 할 때 `--replicas-to-remove` 또는 `--new-replica-count` 파라미터 중 하나만 전달할 수 있습니다.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache decrease-replica-count \
       --replication-group-id my-replication-group \
       --new-replica-count 2 \   
       --region us-east-2 \
       --apply-immediately
   ```

   Windows의 경우:

   ```
   aws elasticache decrease-replica-count ^
       --replication-group-id my-replication-group ^
       --new-replica-count 3 ^   
       --region us-east-2 ^
       --apply-immediately
   ```

   이 작업은 다음과 유사한 출력을 생성합니다(JSON 형식).

   ```
   {
       "ReplicationGroup": {
           "ReplicationGroupId": "node-test",
           "Description": "node-test"
          },
           "Status": "modifying",
           "PendingModifiedValues": {},
           "MemberClusters": [
               "node-test-001",
               "node-test-002",
               "node-test-003",
               "node-test-004",
               "node-test-005",
               "node-test-006"
           ],
           "NodeGroups": [
               {
                   "NodeGroupId": "0001",
                   "Status": "modifying",
                   "PrimaryEndpoint": {
                       "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                       "Port": 6379
                   },
                   "ReaderEndpoint": {
                       "Address": "node-test-ro.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                       "Port": 6379
                   },
                   "NodeGroupMembers": [
                       {
                           "CacheClusterId": "node-test-001",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-001.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2a",
                           "CurrentRole": "primary"
                       },
                       {
                           "CacheClusterId": "node-test-002",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-002.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2c",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-003",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-003.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2b",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-004",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-004.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2c",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-005",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-005.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2b",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-006",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-006.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2b",
                           "CurrentRole": "replica"
                       }
                   ]
               }
           ],
           "SnapshottingClusterId": "node-test-002",
           "AutomaticFailover": "enabled",
           "MultiAZ": "enabled",
           "SnapshotRetentionLimit": 1,
           "SnapshotWindow": "07:30-08:30",
           "ClusterEnabled": false,
           "CacheNodeType": "cache.r5.large",
            "DataTiering": "disabled",
           "TransitEncryptionEnabled": false,
           "AtRestEncryptionEnabled": false,
           "ARN": "arn:aws:elasticache:us-west-2:123456789012:replicationgroup:node-test"
       }
   }
   ```

또는 `decrease-replica-count`를 호출하고 `--new-replica-count` 파라미터를 전달하는 대신 다음과 같이 `--replicas-to-remove` 파라미터를 전달할 수 있습니다.

Linux, macOS, Unix의 경우:

```
aws elasticache decrease-replica-count \
    --replication-group-id my-replication-group \
    --replicas-to-remove node-test-003 \   
    --region us-east-2 \
    --apply-immediately
```

Windows의 경우:

```
aws elasticache decrease-replica-count ^
    --replication-group-id my-replication-group ^
    --replicas-to-remove node-test-003 ^   
    --region us-east-2 ^
    --apply-immediately
```

자세한 내용은AWS CLI주제를 참조하세요[https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-replica-count.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-replica-count.html).

## Valkey 또는 Redis OSS와 함께 ElastiCache API 사용
<a name="Clusters.DeleteNode.API2"></a>

ElastiCache API를 사용하여 노드를 제거하려면 다음과 같이 복제 그룹 ID 및 제거할 노드 목록과 함께 `DecreaseReplicaCount` API 작업을 호출하세요.
+ `ReplicationGroupId` 노드를 제거할 복제 그룹의 ID입니다.
+ `ReplicasToRemove` `ReplicasToRemove` 파라미터는 수정이 적용된 후 이 클러스터에 포함할 노드 수를 지정합니다.
+ `ApplyImmediately` 이 노드를 즉시 제거할지 아니면 다음 번 유지 관리 기간에 제거할지 지정합니다.
+ `Region` 노드를 제거할 클러스터의AWS리전을 지정합니다.

다음 예제에서는 my-cluster 클러스터에서 노드 0004 및 0005를 즉시 제거합니다.

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DecreaseReplicaCount
    &ReplicationGroupId=my-replication-group
    &ApplyImmediately=true
    &ReplicasToRemove=node-test-003    
    &Region us-east-2
    &Version=2014-12-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20141201T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

자세한 내용은 ElastiCache API 항목 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DecreaseReplicaCount.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DecreaseReplicaCount.html)를 참조하세요.

## Memcached에서 ElastiCache API 사용
<a name="Clusters.DeleteNode.API"></a>

ElastiCache API를 사용하여 노드를 제거하려면 다음과 같이 캐시 클러스터 ID 및 제거할 노드 목록과 함께 `ModifyCacheCluster` API 작업을 호출하세요.
+ `CacheClusterId` 노드를 제거할 클러스터의 ID입니다.
+ `NumCacheNodes` `NumCacheNodes` 파라미터는 수정이 적용된 후 이 클러스터에 포함할 노드 수를 지정합니다.
+ `CacheNodeIdsToRemove.member.n` 클러스터에서 제거할 노드 ID 목록입니다.
  + `CacheNodeIdsToRemove.member.1=0004`
  + `CacheNodeIdsToRemove.member.1=0005`
+ `ApplyImmediately` 이 노드를 즉시 제거할지 아니면 다음 번 유지 관리 기간에 제거할지 지정합니다.
+ `Region` 노드를 제거할 클러스터의AWS리전을 지정합니다.

다음 예제에서는 my-cluster 클러스터에서 노드 0004 및 0005를 즉시 제거합니다.

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=ModifyCacheCluster
    &CacheClusterId=my-cluster
    &ApplyImmediately=true
    &CacheNodeIdsToRemove.member.1=0004
    &CacheNodeIdsToRemove.member.2=0005
    &NumCacheNodes=3   
    &Region us-east-2
    &Version=2014-12-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20141201T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

자세한 정보는 ElastiCache API 항목 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)를 참조하세요.

# ElastiCache에서 대기 중인 노드 추가 또는 삭제 작업 취소
<a name="Clusters.CancelPending"></a>

ElastiCache 클러스터 변경 사항을 즉시 적용하지 않도록 선택하면 다음 번 유지 관리 기간에 수행할 때까지 작업이 **보류 중** 상태가 됩니다. 대기 중인 작업을 추가 또는 삭제할 수 있습니다.

AWS CLI를 사용하여 보류 중인 노드 추가 또는 삭제 작업을 취소하려면 `modify-cache-cluster` 명령을 사용합니다. 클러스터의 현재 캐시 노드 수와 동일하게 `num-cache-nodes`를 설정한 다음 `--apply-immediately` 플래그를 추가합니다. 이렇게 하면 보류 중인 변경 사항이 재정의됩니다.

보류 중인 노드 추가 또는 삭제를 취소하려면:

```
aws elasticache modify-cache-cluster 
	--cache-cluster-id <your-cluster-id> 
	--num-cache-nodes <current-number-of-nodes> 
	--apply-immediately
```

보류 중인 노드 추가 또는 삭제가 있는지 명확하지 않은 경우 `describe-cache-clusters` 명령을 사용하여 상태를 확인할 수 있습니다.

```
aws elasticache describe-cache-clusters 
	--cache-cluster-id <your-cluster-id>
```

보류 중인 노드는 `PendingModifiedValues` 출력에 나타나야 합니다. 예:

```
"PendingModifiedValues": {
	"NumCacheNodes": 3
	},
```

# ElastiCache에서 클러스터 삭제
<a name="Clusters.Delete"></a>

ElastiCache 클러스터가 *사용 가능* 상태면 클러스터를 적극 사용하고 있는지 여부에 관계없이 요금이 부과됩니다. 요금 발생을 중지하려면 클러스터를 삭제하세요.

**주의**  
ElastiCache 클러스터를 삭제하는 경우 수동 스냅샷은 보존됩니다. 클러스터가 삭제되기 전에 최종 스냅샷을 생성할 수도 있습니다. 자동 캐시 스냅샷은 보존되지 않습니다.

## 사용AWS Management Console
<a name="Clusters.Delete.CON"></a>

다음은 배포에서 클러스터 하나를 삭제하는 절차입니다. 클러스터를 여러 개 삭제하려면 삭제할 클러스터마다 절차를 반복하세요. 클러스터 하나를 다 삭제한 후 다른 클러스터 삭제 절차가 시작될 때까지 기다릴 필요는 없습니다.

**클러스터 삭제**

1. 에 로그인AWS Management Console하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) Amazon ElastiCache 콘솔을 엽니다.

1. ElastiCache 엔진 대시보드에서 삭제하려는 클러스터에서 실행 중인 엔진을 선택합니다.

   해당 엔진을 실행하고 있는 모든 클러스터의 목록이 표시됩니다.

1. 삭제할 클러스터를 선택하려면 클러스터 목록에서 해당 클러스터의 이름을 선택합니다.
**중요**  
ElastiCache 콘솔에서는 클러스터를 한 번에 하나씩만 삭제할 수 있습니다. 여러 클러스터를 선택하면 삭제 작업이 비활성화됩니다.

1. **작업**에 대해 **삭제**를 선택합니다.

1. **클러스터 삭제** 확인 화면에서 **삭제**를 선택하여 클러스터를 삭제하거나 **취소**를 선택하여 클러스터를 유지합니다.

   [**Delete**]를 선택한 경우 클러스터 상태가 [*deleting*]으로 바뀝니다.

클러스터가 클러스터 목록에서 제거되는 즉시 요금 부과가 중단됩니다.

## AWS CLI를 사용하여 ElastiCache 클러스터 삭제
<a name="Clusters.Delete.CLI"></a>

다음 코드는 ElastiCache 클러스터 `my-cluster`를 삭제합니다.

```
aws elasticache delete-cache-cluster --cache-cluster-id my-cluster
```

`delete-cache-cluster` CLI 작업은 클러스터를 하나만 삭제합니다. 클러스터를 여러 개 삭제하려면 삭제할 캐시 클러스터마다 `delete-cache-cluster`를 직접 호출하세요. 클러스터 하나를 다 삭제한 후 다른 클러스터를 삭제할 때까지 기다릴 필요는 없습니다.

Linux, macOS, Unix의 경우:

```
aws elasticache delete-cache-cluster \
    --cache-cluster-id my-cluster \
    --region us-east-2
```

Windows의 경우:

```
aws elasticache delete-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --region us-east-2
```

자세한 내용은 ElastiCache AWS CLI주제를 참조하세요[https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-cluster.html).

## ElastiCache API 사용
<a name="Clusters.Delete.API"></a>

다음 코드는 클러스터 `my-cluster`를 삭제합니다.

```
https://elasticache.us-west-2.amazonaws.com/    
    ?Action=DeleteCacheCluster
    &CacheClusterId=my-cluster
    &Region us-east-2
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20150202T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20150202T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

`DeleteCacheCluster` API 작업은 클러스터를 하나만 삭제합니다. 클러스터를 여러 개 삭제하려면 삭제할 클러스터마다 `DeleteCacheCluster`를 호출하세요. 클러스터 하나를 다 삭제한 후 다른 클러스터를 삭제할 때까지 기다릴 필요는 없습니다.

자세한 정보는 ElastiCache API 참조 항목 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheCluster.html)을 참조하세요.

# ElastiCache 클러스터 또는 복제 그룹에 액세스
<a name="accessing-elasticache"></a>

Amazon ElastiCache 인스턴스는 Amazon EC2 인스턴스를 통해 액세스하도록 설계되었습니다.

Amazon Virtual Private Cloud(Amazon VPC)에서 ElastiCache 인스턴스를 시작한 경우에는 동일한 Amazon VPC에 있는 Amazon EC2 인스턴스에서 ElastiCache 인스턴스에 액세스할 수 있습니다. 또는 VPC 피어링을 사용하여 다른 Amazon VPC의 Amazon EC2에서 ElastiCache 인스턴스에 액세스할 수 있습니다.

EC2 Classic에서 ElastiCache 인스턴스를 시작하면, 인스턴스와 연결된 Amazon EC2 보안 그룹의 캐시 보안 그룹에 대한 액세스를 허용하여 EC2 인스턴스가 클러스터에 액세스하는 것을 허용합니다. 기본적으로 클러스터에 대한 액세스는 클러스터를 시작한 계정으로 제한됩니다.

**Topics**
+ [클러스터또는 복제 그룹에 액세스 권한 부여](#grant-access)

## 클러스터또는 복제 그룹에 액세스 권한 부여
<a name="grant-access"></a>

### 클러스터를 EC2-VPC로 시작한 경우
<a name="authorize-access-vpc"></a>

Amazon Virtual Private Cloud(Amazon VPC)로 클러스터를 시작한 경우 동일한 Amazon VPC에서 실행 중인 Amazon EC2 인스턴스에서만 ElastiCache 클러스터에 연결할 수 있습니다. 이 경우 클러스터에 네트워크 진입을 허용해야 합니다.

**참고**  
*Local Zones*를 사용 중인 경우 활성화했는지 확인합니다. 자세한 내용은 [Local Zones 활성화](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/using-regions-availability-zones.html#opt-in-local-zone)를 참조하세요. 이렇게 하면 VPC가 해당 Local Zones로 확장되고 VPC는 서브넷을 다른 가용 영역에 있는 서브넷으로 처리하고 관련 게이트웨이, 라우팅 테이블 및 기타 보안 그룹 고려 사항이 자동으로 조정됩니다.

**Amazon VPC 보안 그룹에서 클러스터로의 네트워크 진입을 허용하려면**

1. 에 로그인AWS Management Console하고 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) Amazon EC2 콘솔을 엽니다.

1. 탐색 창의 [**Network & Security**] 아래에서 [**Security Groups**]를 선택합니다.

1. 보안 그룹 목록에서 Amazon VPC를 위한 보안 그룹을 선택합니다. ElastiCache 사용을 위한 보안 그룹을 생성하지 않는 한 이 보안 그룹의 이름은 *default*로 지정됩니다.

1. [**Inbound**] 탭을 선택하고 다음을 수행합니다.

   1. **편집**을 선택합니다.

   1. **규칙 추가**를 선택합니다.

   1. [**Type**] 열에서 [**Custom TCP rule**]을 선택합니다.

   1. [**Port range**] 상자에 클러스터 노드의 포트 번호를 입력합니다. 이 번호는 클러스터를 시작할 때 지정한 번호와 동일해야 합니다. Memcached의 기본 포트는 **11211** 이며 Valkey 또는 Redis OSS의 기본 포트는 **6379**입니다.

   1. **소스** 상자에서 포트 범위(0.0.0.0/0)를 가진 **위치 무관**을 선택하면 Amazon VPC 내에서 시작한 Amazon EC2 인스턴스를 ElastiCache 노드에 연결할 수 있습니다.
**중요**  
ElastiCache 클러스터를 0.0.0.0/0으로 열면 공용 IP 주소가 없기 때문에 클러스터가 인터넷에 노출되지 않으므로 VPC 외부에서 액세스할 수 없습니다. 그러나 기본 보안 그룹이 고객 계정의 다른 Amazon EC2 인스턴스에 적용될 수 있으며 이러한 인스턴스는 공용 IP 주소를 가질 수 있습니다. 기본 포트에서 무언가를 실행하면 비의도적으로 해당 서비스가 노출될 수 있습니다. 따라서 ElastiCache가 독점적으로 사용하는 VPC 보안 그룹을 생성하는 것이 좋습니다. 자세한 정보는 [사용자 지정 보안 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#creating-your-own-security-groups)을 참조하세요.

   1. **저장**을 선택합니다.

Amazon EC2 인스턴스를 Amazon VPC로 시작하면 해당 인스턴스를 ElastiCache 클러스터에 연결할 수 있습니다.

### 외부에서 ElastiCache 리소스에 액세스AWS
<a name="access-from-outside-aws"></a>

Amazon ElastiCache는 클라우드 기반 인 메모리 키-값 저장소를 제공하는AWS서비스입니다. 이 서비스는 내부에서만 액세스하도록 설계되었습니다AWS. 그러나 ElastiCache 클러스터가 VPC 내에서 호스팅되는 경우 Network Address Translation(NAT) 인스턴스를 사용하여 외부 액세스 권한을 제공할 수 있습니다.

#### 요구 사항
<a name="access-from-outside-aws-requirements"></a>

AWS외부에서 ElastiCache 리소스에 액세스하려면 다음 요구 사항이 충족되어야 합니다.
+ 클러스터는 VPC에 상주해야 하며 NAT(Network Address Translation) 인스턴스를 통해 이 클러스터에 액세스해야 합니다. 이 요구 사항에는 예외가 없습니다.
+ 클러스터와 동일한 VPC에서 NAT 인스턴스를 시작해야 합니다.
+ 클러스터와 다른 퍼블릭 서브넷에서 NAT 인스턴스를 시작해야 합니다.
+ 탄력적 IP 주소(EIP)를 NAT 인스턴스와 연결해야 합니다. iptables의 포트 전달 기능은 NAT 인스턴스의 포트를 VPC에 있는 캐시 노드 포트로 전달하는 데 사용됩니다.

#### 고려 사항
<a name="access-from-outside-aws-considerations"></a>

ElastiCache 외부에서 ElastiCache 리소스에 액세스할 때 다음 사항을 고려해야 합니다.
+ 클라이언트가 NAT 인스턴스의 캐시 포트 및 EIP에 연결합니다. NAT 인스턴스의 포트 전달이 적절한 클러스터 노드로 트래픽을 전달합니다.
+ 클러스터 노드가 추가되거나 대체되면 이 변경 사항을 반영하도록 iptables 규칙을 업데이트해야 합니다.

#### 제한 사항
<a name="access-from-outside-aws-limitations"></a>

테스트 및 개발 목적으로만 이 접근 방식을 사용해야 합니다. 다음과 같은 제한으로 인해 프로덕션용으로는 사용하지 않는 것이 좋습니다.
+ NAT 인스턴스가 클라이언트와 여러 클러스터 간의 프록시로 작동하고 있습니다. 프록시를 추가하면 클러스터 성능에 영향을 줍니다. NAT 인스턴스를 통해 액세스하는 클러스터 수에 따라 영향이 커집니다.
+ 클라이언트에서 NAT 인스턴스로 향하는 트래픽은 암호화되지 않으므로 NAT 인스턴스를 통해 민감한 데이터를 전송하면 안 됩니다.
+ NAT 인스턴스로 인해 다른 인스턴스를 유지하는 부담이 커집니다.
+ NAT 인스턴스가 단일 장애 지점으로 사용됩니다. VPC에서 고가용성 NAT를 설정하는 방법에 대한 자세한 정보는 [Amazon VPC NAT 인스턴스의 고가용성: 예](https://aws.amazon.com/articles/2781451301784570)를 참조하십시오.

#### 외부에서 ElastiCache 리소스에 액세스하는 방법AWS
<a name="access-from-outside-aws-how-to"></a>

다음 절차에서는 NAT 인스턴스를 사용하여 ElastiCache 리소스에 연결하는 방법을 보여 줍니다.

이 단계에서는 다음과 같이 가정합니다.
+ `iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379`
+ `iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379`

다음으로 반대 방향의 NAT가 필요합니다.

`iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.55`

기본적으로 비활성화된 IP 전달도 활성화해야 합니다.

`sudo sed -i 's/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g' /etc/sysctl.conf sudo sysctl --system`
+ 다음을 사용하여 Memcached 클러스터에 액세스합니다.
  + IP 주소 – *10.0.1.230*
  + 기본 Memcached 포트 – *11211*
  + 보안 그룹 – *\$110\$1.0\$1.0\$1.55\$1*
+ 다음을 사용하여 Valkey 또는 Redis OSS 클러스터에 액세스합니다.
  + IP 주소 – *10.0.1.230*
  + 기본 포트 - *6379*
  + 보안 그룹 – *sg-bd56b7da*
  + AWS인스턴스 IP 주소 - *198.99.100.27*
+ 신뢰할 수 있는 클라이언트의 IP 주소가 *198.51.100.27*입니다.
+ NAT 인스턴스의 탄력적 IP 주소가 *203.0.113.73*입니다.
+ NAT 인스턴스의 보안 그룹이 *sg-ce56b7a9*입니다.



**NAT 인스턴스를 사용하여 ElastiCache 리소스에 연결하려면 다음과 같이 하세요.**

1. 퍼블릭 서브넷이 아닌 클러스터와 동일한 VPC에 NAT 인스턴스를 만듭니다.

   기본적으로 VPC 마법사가 *cache.m1.small* 노드 유형을 시작합니다. 필요에 따라 노드 크기를 선택해야 합니다.AWS외부에서 ElastiCache에 액세스하려면 EC2 NAT AMI를 사용해야 합니다.

   NAT 인스턴스 생성에 대한 자세한 내용은AWS VPC 사용 설명서의 [NAT 인스턴스](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html)를 참조하세요.

1. 클러스터 및 NAT 인스턴스의 보안 그룹 규칙을 만듭니다.

   NAT 인스턴스 보안 그룹과 클러스터 인스턴스에 다음과 같은 규칙을 지정해야 합니다.
   + 인바운드 규칙 2개
     + Memcached를 사용하는 첫 번째 규칙은 신뢰할 수 있는 클러스터에서 NAT 인스턴스로부터 전달된 각 캐시 포트(11211 - 11213)로 TCP 연결을 허용하는 것입니다.
     + Valkey 또는 Redis OSS를 사용하는 첫 번째 규칙은 신뢰할 수 있는 클러스터에서 NAT 인스턴스로부터 전달된 각 캐시 포트(6379 - 6381)로 TCP 연결을 허용하는 것입니다.
     + 두 번째 규칙은 신뢰할 수 있는 클라이언트에 대한 SSH 액세스를 허용합니다.  
**NAT 인스턴스 보안 그룹 - Memcached를 사용하는 인바운드 규칙**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/accessing-elasticache.html)  
**NAT 인스턴스 보안 그룹 - Valkey 또는 Redis OSS를 사용하는 인바운드 규칙**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + Memcached를 사용하는 아웃바운드 규칙은 캐시 포트(11211)와의 TCP 연결을 허용합니다.  
**NAT 인스턴스 보안 그룹 - 아웃바운드 규칙**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + Valkey 또는 Redis OSS를 사용하는 아웃바운드 규칙은 캐시 포트(6379)와의 TCP 연결을 허용합니다.  
**NAT 인스턴스 보안 그룹 - 아웃바운드 규칙**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + Memcached를 사용하는 인바운드 규칙은 NAT 인스턴스에서 캐시 포트(11211)로 TCP 연결을 허용하는 클러스터의 보안 그룹에 적용됩니다.  
**클러스터 인스턴스 보안 그룹 - 인바운드 규칙**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + Valkey 또는 Redis OSS를 사용하는 인바운드 규칙은 NAT 인스턴스에서 캐시 포트(6379)로 TCP 연결을 허용하는 클러스터의 보안 그룹에 적용됩니다.  
**클러스터 인스턴스 보안 그룹 - 인바운드 규칙**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/accessing-elasticache.html)

1. 규칙을 검증합니다.
   + 신뢰할 수 있는 클라이언트가 NAT 인스턴스로 SSH할 수 있음을 확인합니다.
   + 신뢰할 수 있는 클라이언트가 NAT 인스턴스에서 클러스터에 연결할 수 있음을 확인합니다.

1. **Memcached**

   NAT 인스턴스에 iptables 규칙을 추가합니다.

   클러스터에 있는 노드마다 NAT 테이블에 iptables 규칙을 추가해야 NAT 인스턴스에서 클러스터 노드로 캐시 포트를 전달할 수 있습니다. 예제는 다음과 같습니다.

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211
   ```

   포트 번호는 클러스터의 노드마다 고유해야 합니다. 예를 들어, 포트 11211 - 11213을 사용하여 노드가 3개인 Memcached 클러스터로 작업하는 경우 규칙은 다음과 같습니다.

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11212 -j DNAT --to 10.0.1.231:11211
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11213 -j DNAT --to 10.0.1.232:11211
   ```

   신뢰할 수 있는 클라이언트가 클러스터에 연결할 수 있음을 확인합니다.

   신뢰할 수 있는 클라이언트는 NAT 인스턴스와 연결된 EIP 및 적합한 클러스터 노드에 해당하는 클러스터 포트에 연결해야 합니다. 예를 들어, PHP의 연결 문자열은 다음과 같습니다.

   ```
   $memcached->connect( '203.0.113.73', 11211 );
   $memcached->connect( '203.0.113.73', 11212 );
   $memcached->connect( '203.0.113.73', 11213 );
   ```

   telnet 클라이언트를 사용하여 연결을 확인할 수도 있습니다. 예제:

   ```
   telnet 203.0.113.73 11211
   telnet 203.0.113.73 11212
   telnet 203.0.113.73 11213
   ```

   **Valkey 또는 Redis OSS**

   NAT 인스턴스에 iptables 규칙을 추가합니다.

   클러스터에 있는 노드마다 NAT 테이블에 iptables 규칙을 추가해야 NAT 인스턴스에서 클러스터 노드로 캐시 포트를 전달할 수 있습니다. 예제는 다음과 같습니다.

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379
   ```

   포트 번호는 클러스터의 노드마다 고유해야 합니다. 예를 들어 포트 6379 - 6381을 사용하여 노드가 3개인 Redis OSS 클러스터로 작업하는 경우 규칙은 다음과 같습니다.

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379
   ```

   신뢰할 수 있는 클라이언트가 클러스터에 연결할 수 있음을 확인합니다.

   신뢰할 수 있는 클라이언트는 NAT 인스턴스와 연결된 EIP 및 적합한 클러스터 노드에 해당하는 클러스터 포트에 연결해야 합니다. 예를 들어, PHP의 연결 문자열은 다음과 같습니다.

   ```
   redis->connect( '203.0.113.73', 6379 );
   redis->connect( '203.0.113.73', 6380 );
   redis->connect( '203.0.113.73', 6381 );
   ```

   telnet 클라이언트를 사용하여 연결을 확인할 수도 있습니다. 예제:

   ```
   telnet 203.0.113.73 6379
   telnet 203.0.113.73 6380
   telnet 203.0.113.73 6381
   ```

1. iptables 구성을 저장합니다.

   규칙을 테스트하고 확인한 후 저장합니다. Redhat 기반 Linux 배포(예: Amazon Linux)를 사용하는 경우 다음 명령을 실행합니다.

   ```
   service iptables save
   ```

#### 관련 주제
<a name="access-from-outside-aws-see-also"></a>

더 자세히 알고 싶으시면 다음 단원을 참조하십시오.
+ [Amazon VPC에 있는 ElastiCache 캐시에 액세스하기 위한 액세스 패턴](elasticache-vpc-accessing.md)
+ [고객의 데이터 센터에서 실행되는 애플리케이션에서 ElastiCache 캐시에 액세스](elasticache-vpc-accessing.md#elasticache-vpc-accessing-data-center)
+ [NAT 인스턴스](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html)
+ [ElastiCache 클라이언트 구성](ClientConfig.md)
+ [Amazon VPC NAT 인스턴스의 고가용성: 예](https://aws.amazon.com/articles/2781451301784570)

# ElastiCache에서 연결 엔드포인트 찾기
<a name="Endpoints"></a>

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

AWS PrivateLink를 통해 인터페이스 VPC 엔드포인트를 생성하여 VPC와 ElastiCache API 엔드포인트 간에 프라이빗 연결을 설정할 수도 있습니다. 자세한 내용은 [ElastiCache API 및 인터페이스 VPC 엔드포인트(AWS PrivateLink)](elasticache-privatelink.md) 섹션을 참조하세요.

**Valkey 또는 Redis OSS와 함께 사용할 엔드포인트**
+ **독립 실행형 노드**의 경우 읽기 작업과 쓰기 작업에 모두 노드의 엔드포인트를 사용합니다.

   
+ **Valkey나 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터**에서는 모든 쓰기 작업에 *기본 엔드포인트*를 사용합니다. *리더 엔드포인트*를 사용하여 모든 읽기 전용 복제본 사이에 수신 연결을 고르게 분할합니다. 읽기 작업에는 개별 *노드 엔드포인트*(API/CLI에서는 읽기 엔드포인트라고 함)를 사용하세요.

   
+ **Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터**에서는 클러스터 모드 활성화됨 명령을 지원하는 모든 작업에 클러스터의 *구성 엔드포인트*를 사용합니다. Valkey 클러스터 또는 Redis OSS 3.2 이상의 Redis OSS 클러스터를 지원하는 클라이언트를 사용해야 합니다. 개별 노드 엔드포인트(API/CLI에서는 읽기 엔드포인트라고 함)에서 계속 읽을 수 있습니다.

   

다음 섹션에서는 실행 중인 엔진에 필요한 엔드포인트를 찾는 방법을 안내합니다.

**Memcached와 함께 사용할 엔드포인트**

**ElastiCache for Memcached 서버리스 캐시**의 경우 콘솔에서 클러스터 엔드포인트 DNS와 포트를 가져오기만 하면 됩니다.

AWS CLI에서 `describe-serverless-caches` 명령을 사용하여 엔드포인트 정보를 획득합니다.

Linux

```
aws elasticache describe-serverless-caches --serverless-cache-name CacheName
```

Windows

```
aws elasticache describe-serverless-caches --serverless-cache-name CacheName
```

위 작업의 출력은 다음과 유사해야 합니다(JSON 형식).

```
{
    "ServerlessCaches": [
        {
            "ServerlessCacheName": "serverless-memcached",
            "Description": "test",
            "CreateTime": 1697659642.136,
            "Status": "available",
            "Engine": "memcached",
            "MajorEngineVersion": "1.6",
            "FullEngineVersion": "21",
            "SecurityGroupIds": [
                "sg-083eda453e1e51310"
            ],
            "Endpoint": {
                "Address": "serverless-memcached-01.amazonaws.com",
                "Port":11211
            },
            "ARN": "<the ARN>",
            "SubnetIds": [
                "subnet-0cf759df15bd4dc65",
                "subnet-09e1307e8f1560d17"
            ],
            "SnapshotRetentionLimit": 0,
            "DailySnapshotTime": "03:00"
        }
    ]
}
```

**인스턴스 기반 Memcached 클러스터**에서 Auto Discovery를 사용하는 경우 클러스터의 *구성 엔드포인트*를 사용하여 Memcached 클라이언트를 구성할 수 있습니다. Auto Discovery를 지원하는 클라이언트를 사용해야 합니다.

Auto Discovery를 사용하지 않으면 읽기 및 쓰기를 위해 개별 노드 엔드포인트를 사용하도록 클라이언트를 구성해야 합니다. 또한 노드를 추가 및 제거할 때 엔드포인트를 추적해야 합니다.

## Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 엔드포인트 찾기(콘솔)
<a name="Endpoints.Find.Redis"></a>

Valkey나 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터에 노드가 하나뿐이면 노드의 엔드포인트가 읽기와 쓰기에 모두 사용됩니다. Valkey나 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터에 여러 노드가 있는 경우 세 가지 유형의 엔드포인트(*기본 엔드포인트*, *리더 엔드포인트* 및 *노드 엔드포인트*)가 있습니다.

기본 엔드포인트는 항상 클러스터의 기본 노드로 확인되는 DNS 이름입니다. 기본 엔드포인트는 읽기 전용 복제본을 기본 역할로 승격하는 것과 같은 클러스터 변경의 영향을 받지 않습니다. 쓰기 활동의 경우 애플리케이션을 기본 엔드포인트에 연결하는 것이 좋습니다.

리더 엔드포인트는 ElastiCache for Redis OSS 클러스터의 모든 읽기 전용 복제본 간에 엔드포인트에 대한 수신 연결을 고르게 분할합니다. 애플리케이션이 연결을 생성하는 시기 또는 애플리케이션에서 연결을 다시 사용하는 방법과 같은 추가 요소가 트래픽 분산을 결정합니다. 리더 엔드포인트는 복제본이 추가 또는 제거되는 클러스터의 변경 사항을 실시간으로 반영합니다. ElastiCache for Redis OSS 클러스터의 여러 읽기 전용 복제본을 다양한 AWS 가용 영역(AZ)에 두어 리더 엔드포인트의 가용성을 높일 수 있습니다.

**참고**  
리더 엔드포인트는 로드 밸런서가 아닙니다. 라운드 로빈 방식으로 복제본 노드 중 하나의 IP 주소로 확인되는 DNS 레코드입니다.

읽기 활동의 경우 애플리케이션은 클러스터의 어떤 노드에도 연결할 수 있습니다. 기본 엔드포인트와 달리, 노드 엔드포인트는 특정 엔드포인트로 확인됩니다. 복제본을 추가하거나 삭제하는 것과 같이 클러스터를 변경하면 애플리케이션에서 노드 엔드포인트를 업데이트해야 합니다.

**Valkey나 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 엔드포인트를 찾으려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

   클러스터 화면에 Valkey 또는 Valkey 또는 Redis OSS(클러스터 모드 비활성화) 및 Valkey 또는 Redis OSS(클러스터 모드 활성화) 클러스터 목록이 표시됩니다.

1. 클러스터의 기본 엔드포인트 및/또는 리더 엔드포인트를 찾으려면 클러스터 이름(왼쪽에 있는 버튼 아님)을 선택합니다.  
![\[이미지: Valkey나 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 기본 엔드포인트\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/Reader-Endpoint.png)

   *Valkey나 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 기본 및 리더 엔드포인트*

   클러스터에 노드가 하나 뿐이면 기본 엔드포인트가 없으며 다음 단계에서 계속할 수 있습니다.

1. Valkey나 Valkey 또는 Redis OSS(클러스터 모드 비활성화) 클러스터에 복제본 노드가 있으면 클러스터 이름을 선택한 후 **노드** 탭을 선택하여 클러스터의 복제본 노드 엔드포인트를 찾을 수 있습니다.

   노드 화면에 클러스터의 각 노드, 기본 및 복제본이 엔드포인트와 함께 나열됩니다.  
![\[이미지: Valkey나 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 노드 엔드포인트\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-Endpoints-Redis-Node.png)

   *Valkey나 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 노드 엔드포인트*

1. 엔드포인트를 클립보드에 복사하려면

   1. 한 번에 엔드포인트 하나씩, 복사할 엔드포인트를 찾습니다.

   1. 엔드포인트 바로 앞에 있는 복사 아이콘을 선택합니다.

   엔드포인트가 클립보드에 복사됩니다. 엔드포인트를 사용하여 노드에 연결하는 방법에 대한 자세한 내용은 [Memcached 노드에 연결](nodes-connecting.md#nodes-connecting.mem) 섹션을 참조하세요.

Valkey나 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 기본 엔드포인트는 다음과 같습니다. 전송 중 데이터 암호화가 활성화되어 있는지 여부에 따라 차이가 있습니다.

**전송 중 데이터 암호화가 비활성화된 경우**

```
clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
			
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
```

**전송 중 데이터 암호화가 활성화된 경우**

```
master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port

master.ncit.ameaqx.use1.cache.amazonaws.com:6379
```

## Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에 대한 엔드포인트 찾기(콘솔)
<a name="Endpoints.Find.RedisCluster"></a>

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

**Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 엔드포인트를 찾으려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

   클러스터 목록이 포함된 클러스터 화면이 나타납니다. 연결하려는 클러스터를 선택합니다.

1. 클러스터의 구성 엔드포인트를 찾으려면 클러스터 이름(라디오 버튼 아님)을 선택합니다.

1. **Configuration endpoint**(구성 엔드포인트)는 **Cluster details**(클러스터 세부 정보) 아래 표시됩니다. 이를 복사하려면 엔드포인트 왼쪽에 있는 *복사* 아이콘을 선택합니다.

## 클러스터 엔드포인트 찾기(콘솔)(Memcached)
<a name="Endpoints.Find.Memcached"></a>

모든 Memcached 엔드포인트는 읽기/쓰기 엔드포인트입니다. Memcached 클러스터에 있는 노드에 연결하기 위해 애플리케이션은 각 노드의 엔드포인트를 사용하거나 Auto Discovery와 함께 클러스터의 구성 엔드포인트를 사용할 수 있습니다. Auto Discovery를 사용하려면 Auto Discovery를 지원하는 클라이언트를 사용해야 합니다.

Auto Discovery를 사용하면 클라이언트 애플리케이션이 구성 엔드포인트를 사용하여 Memcached 클러스터에 연결합니다. 노드를 추가하거나 제거하여 클러스터를 조정할 때는 애플리케이션에서 클러스터의 모든 노드를 자동으로 "인식"하고 그 중에서 어디에나 연결할 수 있습니다. Auto Discovery를 사용하지 않으면 애플리케이션에서 이 작업을 수행하거나, 사용자가 노드를 추가하거나 제거할 때마다 애플리케이션의 엔드포인트를 수동으로 업데이트해야 합니다.

엔드포인트를 복사하려면 엔드포인트 주소 바로 앞에 있는 복사 아이콘을 선택합니다. 엔드포인트를 사용하여 노드에 연결하는 방법에 대한 자세한 내용은 [Memcached 노드에 연결](nodes-connecting.md#nodes-connecting.mem) 섹션을 참조하세요.

구성 엔드포인트와 노드 엔드포인트는 매우 비슷합니다. 두 엔드포인트의 차이는 다음과 같이 **굵게** 표시됩니다.

```
myclustername.xxxxxx.cfg.usw2.cache.amazonaws.com:port   # configuration endpoint contains "cfg"
myclustername.xxxxxx.0001.usw2.cache.amazonaws.com:port  # node endpoint for node 0001
```

**중요**  
Memcached 구성 엔드포인트의 CNAME을 만들기로 선택하면 CNAME에 `.cfg.`를 포함해야 자동 검색 클라이언트가 CNAME을 구성 엔드포인트로 인식합니다.

## 엔드포인트 찾기(AWS CLI)
<a name="Endpoints.Find.CLI"></a>

Memcached의 경우, Amazon ElastiCache용 AWS CLI를 사용하여 노드 및 클러스터의 엔드포인트를 찾을 수 있습니다.

Redis OSS의 경우, Amazon ElastiCache용 AWS CLI를 사용하여 노드, 클러스터 및 복제 그룹의 엔드포인트를 찾을 수 있습니다.

**Topics**
+ [노드 및 클러스터의 엔드포인트 찾기(AWS CLI)](#Endpoints.Find.CLI.Nodes)
+ [Valkey 또는 Redis OSS 복제 그룹의 엔드포인트 찾기(AWS CLI)](#Endpoints.Find.CLI.ReplGroups)

### 노드 및 클러스터의 엔드포인트 찾기(AWS CLI)
<a name="Endpoints.Find.CLI.Nodes"></a>

AWS CLI 사용하여 `describe-cache-clusters` 명령으로 클러스터 및 해당 노드의 엔드포인트를 찾을 수 있습니다. Valkey 또는 Redis OSS 클러스터의 경우 명령이 클러스터 엔드포인트를 반환합니다. Memcached 클러스터의 경우 명령이 구성 엔드포인트를 반환합니다. 또한 선택적 파라미터 `--show-cache-node-info`를 포함할 경우 명령이 클러스터에 있는 개별 노드의 엔드포인트를 반환합니다.

**Example**  
다음 명령은 Memcached 클러스터 *mycluster*의 구성 엔드포인트(`ConfigurationEndpoint`) 및 개별 노드 엔드포인트(`Endpoint`)를 검색합니다.  
Linux, macOS, Unix의 경우:  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info
```
Windows의 경우:  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id mycluster ^
    --show-cache-node-info
```
위 작업의 출력은 다음과 같습니다(JSON 형식).  

```
{
   "CacheClusters": [
   {
       "Engine": "memcached", 
       "CacheNodes": [
          {
             "CacheNodeId": "0001", 
             "Endpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
             }, 
                "CacheNodeStatus": "available", 
                "ParameterGroupStatus": "in-sync", 
                "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                "CustomerAvailabilityZone": "us-west-2b"
          }, 
          {
             "CacheNodeId": "0002", 
             "Endpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
             }, 
                "CacheNodeStatus": "available", 
                "ParameterGroupStatus": "in-sync", 
                "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                "CustomerAvailabilityZone": "us-west-2b"
          }, 
          {
                "CacheNodeId": "0003", 
                "Endpoint": {
                   "Port": 11211, 
                   "Address": "mycluster.amazonaws.com"
                }, 
                   "CacheNodeStatus": "available", 
                   "ParameterGroupStatus": "in-sync", 
                   "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                   "CustomerAvailabilityZone": "us-west-2b"
          }
       ], 
       "CacheParameterGroup": {
       "CacheNodeIdsToReboot": [], 
       "CacheParameterGroupName": "default.memcached1.4", 
       "ParameterApplyStatus": "in-sync"
            }, 
            "CacheClusterId": "mycluster", 
            "PreferredAvailabilityZone": "us-west-2b", 
            "ConfigurationEndpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
            }, 
            "CacheSecurityGroups": [], 
            "CacheClusterCreateTime": "2016-09-22T21:30:29.967Z", 
            "AutoMinorVersionUpgrade": true, 
            "CacheClusterStatus": "available", 
            "NumCacheNodes": 3, 
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
            "CacheSubnetGroupName": "default", 
            "EngineVersion": "1.4.24", 
            "PendingModifiedValues": {}, 
            "PreferredMaintenanceWindow": "mon:09:00-mon:10:00", 
            "CacheNodeType": "cache.m4.large",
             "DataTiering": "disabled"
        }
    ]   
}
```
Memcached 구성 엔드포인트의 CNAME을 만들기로 선택하면 CNAME에 `.cfg.`를 포함해야 자동 검색 클라이언트가 CNAME을 구성 엔드포인트로 인식합니다. 예를 들어, `mycluster.cfg.local`가 `session.save_path` 파라미터의 php.ini 파일에 있습니다.

**Example**  
Valkey 및 Redis OSS의 경우, 다음 명령을 통해 단일 노드 클러스터인 *mycluster*의 클러스터 정보를 검색할 수 있습니다.  
파라미터 `--cache-cluster-id`는 복제 그룹에서 단일 노드 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터 ID 또는 특정 노드와 함께 사용할 수 있습니다. 복제 그룹의 `--cache-cluster-id`는 `0001`와 같은 4자리 값입니다. `--cache-cluster-id`가 복제 그룹에 있는 클러스터(노드)의 ID인 경우 `replication-group-id`가 출력에 포함됩니다.
Linux, macOS, Unix의 경우:  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id redis-cluster \
    --show-cache-node-info
```
Windows의 경우:  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id redis-cluster ^
    --show-cache-node-info
```
위 작업의 출력은 다음과 같습니다(JSON 형식).  

```
{
    "CacheClusters": [
        {
            "CacheClusterStatus": "available",
            "SecurityGroups": [
                {
                    "SecurityGroupId": "sg-77186e0d",
                    "Status": "active"
                }
            ],
            "CacheNodes": [
                {
                    "CustomerAvailabilityZone": "us-east-1b",
                    "CacheNodeCreateTime": "2018-04-25T18:19:28.241Z",
                    "CacheNodeStatus": "available",
                    "CacheNodeId": "0001",
                    "Endpoint": {
                        "Address": "redis-cluster.amazonaws.com",
                        "Port": 6379
                    },
                    "ParameterGroupStatus": "in-sync"
                }
            ],
            "AtRestEncryptionEnabled": false,
            "CacheClusterId": "redis-cluster",
            "TransitEncryptionEnabled": false,
            "CacheParameterGroup": {
                "ParameterApplyStatus": "in-sync",
                "CacheNodeIdsToReboot": [],
                "CacheParameterGroupName": "default.redis3.2"
            },
            "NumCacheNodes": 1,
            "PreferredAvailabilityZone": "us-east-1b",
            "AutoMinorVersionUpgrade": true,
            "Engine": "redis",
            "AuthTokenEnabled": false,
            "PendingModifiedValues": {},
            "PreferredMaintenanceWindow": "tue:08:30-tue:09:30",
            "CacheSecurityGroups": [],
            "CacheSubnetGroupName": "default",
            "CacheNodeType": "cache.t2.small",
             "DataTiering": "disabled"
            "EngineVersion": "3.2.10",
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "CacheClusterCreateTime": "2018-04-25T18:19:28.241Z"
        }
    ]
}
```

자세한 내용은 [describe-cache-clusters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html) 섹션을 참조하세요.

### Valkey 또는 Redis OSS 복제 그룹의 엔드포인트 찾기(AWS CLI)
<a name="Endpoints.Find.CLI.ReplGroups"></a>

AWS CLI를 사용하여 `describe-replication-groups` 명령으로 복제 그룹 및 해당 클러스터의 엔드포인트를 찾을 수 있습니다. 이 명령은 리더 엔드포인트와 함께, 복제 그룹의 기본 엔드포인트와 복제 그룹에 있는 모든 클러스터(노드)의 목록 및 해당 엔드포인트를 반환합니다.

다음 작업은 복제 그룹 `myreplgroup`의 기본 엔드포인트 및 리더 엔드포인트를 검색합니다. 모든 쓰기 작업에 기본 엔드포인트를 사용합니다.

```
aws elasticache describe-replication-groups \
    --replication-group-id myreplgroup
```

Windows의 경우:

```
aws elasticache describe-replication-groups ^
    --replication-group-id myreplgroup
```

이 작업의 출력은 다음과 같습니다(JSON 형식).

```
{
   "ReplicationGroups": [
     {
       "Status": "available", 
       "Description": "test", 
       "NodeGroups": [
         {
            "Status": "available", 
               "NodeGroupMembers": [
                  {
                     "CurrentRole": "primary", 
                     "PreferredAvailabilityZone": "us-west-2a", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-001.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-001"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2b", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-002.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-002"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2c", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-003.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-003"
                  }
               ], 
               "NodeGroupId": "0001", 
               "PrimaryEndpoint": {
                  "Port": 6379, 
                  "Address": "myreplgroup.amazonaws.com"
               },
               "ReaderEndpoint": {
                  "Port": 6379, 
                  "Address": "myreplgroup-ro.amazonaws.com"
               }
            }
         ], 
         "ReplicationGroupId": "myreplgroup", 
         "AutomaticFailover": "enabled", 
         "SnapshottingClusterId": "myreplgroup-002", 
         "MemberClusters": [
            "myreplgroup-001", 
            "myreplgroup-002", 
            "myreplgroup-003"
         ], 
         "PendingModifiedValues": {}
      }
   ]
}
```

자세한 내용은 *AWS CLI 명령 참조*에서 [describe-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-replication-groups.html)를 참조하세요.

## 엔드포인트 찾기(ElastiCache API)
<a name="Endpoints.Find.API"></a>

Memcached의 경우, Amazon ElastiCache API를 사용하여 노드 및 클러스터의 엔드포인트를 찾을 수 있습니다.

Redis OSS의 경우, Amazon ElastiCache API를 사용하여 노드, 클러스터 및 복제 그룹의 엔드포인트를 찾을 수 있습니다.

**Topics**
+ [노드 및 클러스터의 엔드포인트 찾기(ElastiCache API)](#Endpoints.Find.API.Nodes)
+ [Valkey 또는 Redis OSS 복제 그룹의 엔드포인트 찾기(ElastiCache API)](#Endpoints.Find.API.ReplGroups)

### 노드 및 클러스터의 엔드포인트 찾기(ElastiCache API)
<a name="Endpoints.Find.API.Nodes"></a>

ElastiCache API를 사용하여 `DescribeCacheClusters` 작업으로 클러스터 및 해당 노드의 엔드포인트를 찾을 수 있습니다. Valkey 또는 Redis OSS 클러스터의 경우 명령이 클러스터 엔드포인트를 반환합니다. Memcached 클러스터의 경우 명령이 구성 엔드포인트를 반환합니다. 또한 선택적 파라미터 `ShowCacheNodeInfo`를 포함할 경우 작업이 클러스터에 있는 개별 노드의 엔드포인트를 반환합니다.

**Example**  
Memcached의 경우, 다음 명령은 Memcached 클러스터 *mycluster*의 구성 엔드포인트(`ConfigurationEndpoint`) 및 개별 노드 엔드포인트(`Endpoint`)를 검색합니다.  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeCacheClusters
    &CacheClusterId=mycluster
    &ShowCacheNodeInfo=true
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T192317Z
    &Version=2015-02-02
    &X-Amz-Credential=<credential>
```
Memcached 구성 엔드포인트의 CNAME을 만들기로 선택하면 CNAME에 `.cfg.`를 포함해야 자동 검색 클라이언트가 CNAME을 구성 엔드포인트로 인식합니다. 예를 들어, `mycluster.cfg.local`가 `session.save_path` 파라미터의 php.ini 파일에 있습니다.

### Valkey 또는 Redis OSS 복제 그룹의 엔드포인트 찾기(ElastiCache API)
<a name="Endpoints.Find.API.ReplGroups"></a>

ElastiCache API를 사용하여 `DescribeReplicationGroups` 작업으로 복제 그룹 및 해당 클러스터의 엔드포인트를 찾을 수 있습니다. 이 작업은 리더 엔드포인트와 함께, 복제 그룹의 기본 엔드포인트와 복제 그룹에 있는 모든 클러스터의 목록 및 해당 엔드포인트를 반환합니다.

다음 작업은 복제 그룹 `myreplgroup`의 기본 엔드포인트(PrimaryEndpoint), 리더 엔드포인트(ReaderEndpoint) 및 개별 노드 엔드포인트(ReadEndpoint)를 검색합니다. 모든 쓰기 작업에 기본 엔드포인트를 사용합니다.

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeReplicationGroups
    &ReplicationGroupId=myreplgroup
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T192317Z
    &Version=2015-02-02
    &X-Amz-Credential=<credential>
```

자세한 정보는 [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)를 참조하세요.

# ElastiCache의 샤드 작업
<a name="Shards"></a>

샤드(API/CLI: 노드 그룹)는 1개에서 6개의 ElastiCache for Valkey 또는 Redis OSS 노드 모음입니다. Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터는 둘 이상의 샤드를 가질 수 없습니다. 샤드를 사용하면 대규모 데이터베이스를 데이터 샤드라는 더 작고 빠르며 쉽게 관리되는 부분으로 분리할 수 있습니다. 이렇게 하면 여러 별도의 섹션에 작업을 분산하여 데이터베이스 효율성을 높일 수 있습니다. 샤드를 사용하면 성능, 확장성 및 비용 효율성 향상 등 다양한 이점을 얻을 수 있습니다.

하나의 클러스터당 최대 90개의 노드로 구성된 더 많은 수의 샤드와 더 적은 수의 복제본을 가진 클러스터를 생성할 수 있습니다. 이 클러스터 구성은 90개의 샤드 및 0개의 복제본부터 15개의 샤드 및 5개의 복제본까지 해당될 수 있으며, 이는 허용되는 최대 복제본 수입니다. 클러스터의 데이터는 클러스터의 샤드로 분할됩니다. 샤드에 둘 이상의 노드가 있는 경우 샤드는 한 노드가 읽기/쓰기 프라이머리 노드가 되고 다른 노드가 읽기 전용 복제본 노드인 복제를 구현합니다.

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

 5.0.6 이하의 버전에서 한도는 클러스터당 250개입니다.

한도 증가를 요청하려면 [AWS 서비스 한도](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)를 참조하고 한도 유형을 **인스턴스 유형별 클러스터당 노드**로 선택하세요.

ElastiCache 콘솔을 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터를 생성할 때 클러스터의 샤드 수와 샤드의 노드 수를 지정합니다. 자세한 내용은 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(콘솔)](Clusters.Create.md#Clusters.Create.CON.RedisCluster) 섹션을 참조하세요. ElastiCache API 또는 AWS CLI를 사용하여 클러스터(API/CLI에서는 *복제 그룹*이라고 함)를 생성하는 경우 샤드(API/CLI: 노드 그룹)의 노드 수를 독립적으로 구성할 수 있습니다. 자세한 내용은 다음 자료를 참조하세요.
+ API: [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ CLI: [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)

샤드의 각 노드는 컴퓨팅, 스토리지 및 메모리 사양이 동일합니다. ElastiCache API는 노드 수, 보안 설정 및 시스템 유지 관리 기간과 같은 샤드 전체의 속성을 제어할 수 있도록 합니다.

![\[이미지: Valkey 또는 Redis OSS 샤드 구성.\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-CSN-RedisShards.png)


*Valkey 또는 Redis OSS 샤드 구성*

자세한 내용은 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨)에 대한 오프라인 리샤딩](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-offline) 및 [Valkey 또는 Redis OSS(클러스터 모드 활성화됨)에 대한 온라인 리샤딩](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online)(을)를 참조하세요.

## 샤드 ID 찾기
<a name="shard-find-id"></a>

AWS Management Console, AWS CLI 또는 ElastiCache API를 사용하여 샤드 ID를 찾을 수 있습니다.

### AWS Management Console 사용
<a name="shard-find-id-con"></a>



**Topics**
+ [Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)의 경우](#shard-find-id-con-classic)
+ [Valkey 또는 Redis OSS(클러스터 모드 활성화됨)의 경우](#shard-find-id-con-cluster)

#### Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)의 경우
<a name="shard-find-id-con-classic"></a>

Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 복제 그룹 샤드 ID는 항상 `0001`입니다.

#### Valkey 또는 Redis OSS(클러스터 모드 활성화됨)의 경우
<a name="shard-find-id-con-cluster"></a>

다음 절차에서는 AWS Management Console을 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 복제 그룹의 샤드 ID를 찾습니다.

**Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 복제 그룹의 샤드 ID를 찾으려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey** 또는 **Redis OSS**를 선택한 후 샤드 ID를 찾을 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 복제 그룹의 이름을 선택합니다.

1. **샤드 이름** 열에서 샤드 ID는 샤드 이름의 마지막 네 자리 숫자입니다.

### AWS CLI 사용
<a name="shard-find-id-cli"></a>

Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 또는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 복제 그룹의 샤드(노드 그룹) ID를 찾으려면 다음 선택적 파라미터와 함께 AWS CLI 작업 `describe-replication-groups`를 사용합니다.
+ **- `--replication-group-id`** 사용되면 지정된 복제 그룹의 세부 정보 출력을 제한하는 선택적 파라미터입니다. 이 파라미터가 생략되면 최대 100개의 복제 그룹의 세부 정보가 반환됩니다.

**Example**  
이 명령은 `sample-repl-group`의 세부 정보를 반환합니다.  
Linux, macOS, Unix의 경우:  

```
aws elasticache describe-replication-groups \
    --replication-group-id sample-repl-group
```
Windows의 경우:  

```
aws elasticache describe-replication-groups ^
    --replication-group-id sample-repl-group
```
이 명령의 출력은 다음과 같습니다. 샤드(노드 그룹) ID는 더 쉽게 찾을 수 있도록 여기에 *강조 표시*됩니다.  

```
{
    "ReplicationGroups": [
        {
            "Status": "available", 
            "Description": "2 shards, 2 nodes (1 + 1 replica)", 
            "NodeGroups": [
                {
                    "Status": "available", 
                    "Slots": "0-8191", 
                    "NodeGroupId": "0001", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2c", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0001-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0001-002"
                        }
                    ]
                }, 
                {
                    "Status": "available", 
                    "Slots": "8192-16383", 
                    "NodeGroupId": "0002", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2b", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0002-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0002-002"
                        }
                    ]
                }
            ], 
            "ConfigurationEndpoint": {
                "Port": 6379, 
                "Address": "sample-repl-group.9dcv5r.clustercfg.usw2.cache.amazonaws.com"
            }, 
            "ClusterEnabled": true, 
            "ReplicationGroupId": "sample-repl-group", 
            "SnapshotRetentionLimit": 1, 
            "AutomaticFailover": "enabled", 
            "SnapshotWindow": "13:00-14:00", 
            "MemberClusters": [
                "sample-repl-group-0001-001", 
                "sample-repl-group-0001-002", 
                "sample-repl-group-0002-001", 
                "sample-repl-group-0002-002"
            ], 
            "CacheNodeType": "cache.m3.medium", 
            "DataTiering": "disabled",
            "PendingModifiedValues": {}
        }
    ]
}
```

### ElastiCache API 사용
<a name="shard-find-id-api"></a>

Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 또는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 복제 그룹의 샤드(노드 그룹) ID를 찾으려면 다음 선택적 파라미터와 함께 AWS CLI 작업 `describe-replication-groups`를 사용합니다.
+ **- `ReplicationGroupId`** 사용되면 지정된 복제 그룹의 세부 정보 출력을 제한하는 선택적 파라미터입니다. 이 파라미터가 생략되면 최대 *xxx*개의 복제 그룹의 세부 정보가 반환됩니다.

**Example**  
이 명령은 `sample-repl-group`의 세부 정보를 반환합니다.  
Linux, macOS, Unix의 경우:  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeReplicationGroup
   &ReplicationGroupId=sample-repl-group
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

# 노드 기반 Valkey, Memcached 및 Redis OSS 클러스터 비교
<a name="SelectEngine"></a>

Amazon ElastiCache는 Valkey, Memcached, Redis OSS 캐시 엔진을 지원합니다. 각 엔진에는 몇 가지 장점이 있습니다. 이 항목의 정보를 활용하면 요구 사항에 가장 잘 맞는 엔진과 버전을 선택하는 데 도움이 됩니다.

**중요**  
캐시, 노드 기반 클러스터 또는 복제 그룹을 생성한 후에는 최신 엔진 버전으로 업그레이드할 수 있지만, 이전 엔진 버전으로 다운그레이드할 수는 없습니다. 이전 엔진 버전을 사용하려면 기존 캐시, 노드 기반 클러스터 또는 복제 그룹을 삭제하고 이전 엔진 버전을 통해 다시 생성해야 합니다.

표면적으로는 엔진이 유사하게 보입니다. 각 엔진은 인 메모리 키-값 저장소입니다. 그러나 실제로 상당한 차이점이 있습니다.

**다음과 같은 경우 Memcached를 선택합니다.**
+ 가능한 가장 단순한 모델이 필요한 경우
+ 여러 코어 또는 스레드가 있는 큰 노드를 실행해야 하는 경우
+ 시스템의 요구 사항이 증가하고 감소함에 따라 노드를 추가 및 제거하는 확장 및 축소 기능이 필요한 경우
+ 객체를 캐시에 저장해야 하는 경우

**다음 사항에 해당하는 경우 Valkey 또는 Redis OSS with ElastiCache를 선택하십시오.**
+ **ElastiCache for Valkey 버전 7.2 또는 ElastiCache for Redis OSS 버전 7.0**

  [함수](https://valkey.io/topics/functions-intro/), [샤딩된 Pub/Sub](https://valkey.io/topics/pubsub/) 또는 [ACL 개선 사항](https://valkey.io/topics/acl/)을 사용하고 싶습니다. 자세한 내용은 [Redis OSS 버전 7.0(향상된 버전)](engine-versions.md#redis-version-7.0)을 참조하세요.
+ **ElastiCache for Redis OSS 버전 6.2(향상된 버전)**

  r6gd 노드 유형을 사용하여 메모리와 SSD 간에 데이터를 계층화할 수 있어야 합니다. 자세한 내용은 [데이터 암호화](data-tiering.md)를 참조하세요.
+ **ElastiCache for Redis OSS 버전 6.0(향상된 버전)**

  역할 기반 액세스 제어로 사용자를 인증하려는 경우

  자세한 내용은 [Redis OSS 버전 6.0(향상된 버전)](engine-versions.md#redis-version-6.0)을 참조하세요.
+ **ElastiCache for Redis OSS 버전 5.0.0(향상된 버전)**

  생산자가 실시간으로 새 항목을 추가하고 소비자가 차단 또는 비 차단 방식으로 메시지를 사용할 수 있도록 지원하는 로그 데이터 구조인 [Redis OSS 스트림](https://redis.io/topics/streams-intro)을 사용할 수 있습니다.

  자세한 내용은 [Redis OSS 버전 5.0.0(향상된 버전)](engine-versions.md#redis-version-5-0)을 참조하세요.
+ **ElastiCache for Redis OSS 버전 4.0.10(향상된 버전)**

  암호화 및 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드의 동적인 추가 또는 제거를 지원합니다.

  자세한 내용은 [Redis OSS 버전 4.0.10(향상된 버전)](engine-versions.md#redis-version-4-0-10)을 참조하세요.

다음 버전은 더 이상 사용되지 않거나 수명이 다했거나 곧 종료될 예정입니다.
+ **ElastiCache for Redis OSS 버전 3.2.10(향상된 버전)**

  Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 동적으로 추가 또는 제거하는 기능을 지원합니다.
**중요**  
현재 ElastiCache for Redis OSS 3.2.10에서는 암호화가 지원되지 않습니다.

  자세한 내용은 다음을 참조하세요.
  + [Redis OSS 버전 3.2.10(확장)](engine-versions.md#redis-version-3-2-10)
  + Redis OSS에 대한 온라인 리샤딩 모범 사례에 대한 자세한 내용은 다음 자료를 참조하세요.
    + [모범 사례: 온라인 리샤딩](best-practices-online-resharding.md)
    + [Valkey 또는 Redis OSS(클러스터 모드 활성화됨)를 위한 온라인 리샤딩 및 샤드 재분배](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online)
  + Redis OSS 클러스터 조정에 대한 자세한 내용은 [조정](Scaling.md) 섹션을 참조하세요.

    
+ **ElastiCache for Redis OSS 버전 3.2.6(향상된 버전)**

  다음 기능 이외에 이전 Redis OSS 버전의 기능이 필요하면 3.2.6을 선택하세요.
  + 전송 중 데이터 암호화. 자세한 내용은 [Amazon ElastiCache for Redis OSS 전송 중 데이터 암호화](in-transit-encryption.md)를 참조하세요.
  + 미사용 데이터 암호화. 자세한 내용은 [Amazon ElastiCache for Redis OSS 저장 데이터 암호화](at-rest-encryption.md)를 참조하세요.
+ **ElastiCache for Redis OSS 버전 3.2.4(클러스터 모드 활성화됨)**

  다음 기능 이외에 2.8.x의 기능이 필요하면 3.2.4(클러스터 모드)를 선택합니다.
  + 2\$1500개의 노드 그룹으로 데이터를 분할해야 하는 경우(클러스터 모드에만 해당)
  + 지역 검색 인덱싱이 필요한 경우(클러스터 모드 또는 비클러스터 모드)
  + 여러 데이터베이스를 지원할 필요가 없는 경우
+ **ElastiCache for Redis OSS(비클러스터 모드) 2.8.x 및 3.2.4(향상된 버전)**

  다음과 같은 경우 2.8.x 또는 3.2.4(비클러스터 모드)를 선택합니다.
  + 문자열, 해시, 목록, 세트, 정렬된 세트 및 비트맵과 같은 복잡한 데이터 유형이 필요한 경우
  + 인 메모리 데이터세트를 정렬하거나 순위를 지정해야 하는 경우
  + 키 저장소의 지속성을 원할 경우
  + 읽기 집약적 애플리케이션을 위해 기본 항목에서 하나 이상의 읽기 전용 복제본으로 데이터를 복제해야 하는 경우
  + 프라이머리 노드가 실패할 때 자동 장애 조치가 필요한 경우
  + 서버에 대한 이벤트를 클라이언트에 알리기 위해 게시 및 구독(게시/구독) 기능이 필요합니다.
  + 노드 기반 클러스터와 서버리스 캐시를 위한 백업 및 복원 기능이 필요합니다.
  + 여러 데이터베이스를 지원해야 하는 경우


**Memcached, Valkey 또는 Redis OSS(클러스터 모드 비활성화) 및 Valkey 또는 Redis OSS(클러스터 모드 활성화)의 비교 요약**  

|  |  Memcached  |  Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)  |  Valkey 또는 Redis OSS(클러스터 모드 활성화됨)  | 
| --- |--- |--- |--- |
| Engine versions\$1 | 1.4.5 and later | 4.0.10 and later | 4.0.10 and later | 
| Data types | Simple  | 2.8.x - Complex \$1 | 3.2.x and later - Complex  | 
| Complex  | 
| Data partitioning | Yes | No | Yes | 
| Cluster is modifiable | Yes | Yes | 3.2.10 and later - Limited | 
| Online resharding | No | No | 3.2.10 and later | 
| Encryption | in-transit 1.6.12 and later | 4.0.10 and later | 4.0.10 and later | 
| Data tiering | No | 6.2 and later | 6.2 and later | 
| 규정 준수 인증 | 
| --- |
| Compliance Certification     FedRAMP     HIPAA     PCI DSS |   예 - 1.6.12 이상 예 - 1.6.12 이상 예 |   4.0.10 이상 4.0.10 이상 4.0.10 이상 |   4.0.10 이상 4.0.10 이상 4.0.10 이상 | 
| Multi-threaded | Yes | No | No | 
| Node type upgrade | No | Yes | Yes | 
| Engine upgrading | Yes | Yes | Yes | 
| High availability (replication) | No | Yes | Yes | 
| Automatic failover | No | Optional | Required | 
| Pub/Sub capabilities | No | Yes | Yes | 
| Sorted sets | No | Yes | Yes | 
| Backup and restore | For serverless caches only, not applicable to node-based clusters | Yes | Yes | 
| Geospatial indexing | No | 4.0.10 and later | Yes | 
| 참고: | 
|  string, objects (like databases) | 
| \$1 string, sets, sorted sets, lists, hashes, bitmaps, hyperloglog | 
|  string, sets, sorted sets, lists, hashes, bitmaps, hyperloglog, geospatial indexes | 
| \$1 Excludes versions which are deprecated, have reached or soon to reach end of life. | 

클러스터에 대한 엔진을 선택한 후 해당 엔진의 최신 버전을 사용하는 것이 좋습니다. 자세한 내용은 [지원되는 노드 유형](CacheNodes.SupportedTypes.md) 단원을 참조하십시오.

# Valkey 또는 Redis OSS의 온라인 마이그레이션
<a name="OnlineMigration"></a>

 온라인 마이그레이션을 사용하면 Amazon EC2의 자체 호스팅된 오픈 소스 Valkey 또는 Redis OSS에서 Amazon ElastiCache로 데이터를 마이그레이션할 수 있습니다.

이는 자체 호스팅 인스턴스에서 ElastiCache 서비스로 마이그레이션하는 것을 말합니다. ElastiCache에서 Redis OSS에서 Valkey로 업그레이드하는 방법에 대한 자세한 내용은 [엔진 간 업그레이드를 포함한 엔진 버전 업그레이드엔진 버전 업그레이드](VersionManagement.HowTo.md) 섹션을 참조하세요.

**참고**  
ElastiCache 서버리스 캐시 또는 r6gd 노드 유형에서 실행되는 클러스터에는 온라인 마이그레이션이 지원되지 않습니다.

## 개요
<a name="Migration-Overview"></a>

Amazon EC2에서 실행 중인 오픈 소스 Valkey 또는 Redis OSS에서 Amazon ElastiCache로 데이터를 마이그레이션하려면 기존 또는 새로 생성된 Amazon ElastiCache 배포가 필요합니다. 이 배포는 즉시 마이그레이션이 가능한 구성을 가지고 있어야 합니다. 또한 인스턴스 유형, 샤드 수 및 복제본 개수 같은 속성을 포함하여 원하는 구성과 비슷한 구성을 가져야 합니다.

온라인 마이그레이션은 Amazon EC2의 자체 호스팅 오픈 소스 Valkey 또는 Redis OSS에서 ElastiCache로 데이터를 마이그레이션하기 위해 설계되었으며 ElastiCache 클러스터 간에 데이터를 이동하기 위한 것이 아닙니다.

**중요**  
온라인 마이그레이션 프로세스를 시작하기 전에 다음 섹션을 전부 검토하는 것이 좋습니다

`StartMigration` API 작업 또는 AWS CLI 명령을 호출하면 마이그레이션이 시작됩니다. Valkey 또는 Redis OSS 클러스터 모드가 비활성화된 클러스터를 마이그레이션할 때 마이그레이션 프로세스는 ElastiCache Valkey 또는 Redis OSS 클러스터의 프라이머리 노드를 소스 Valkey 또는 Redis OSS 프라이머리 노드의 복제본으로 만듭니다. Valkey 또는 Redis OSS 클러스터 모드 지원 클러스터를 마이그레이션할 때 마이그레이션 프로세스를 통해 각 ElastiCache 샤드의 프라이머리 노드가 동일한 슬롯을 소유한 소스 클러스터의 해당 샤드에 복제됩니다.

클라이언트 측 변경을 수행할 준비가 끝나면 `CompleteMigration` API 작업을 호출합니다. 이 API 작업은 ElastiCache 배포를 프라이머리 노드와 복제 노드가 포함된 프라이머리 Valkey 또는 Redis OSS 배포로 승격합니다(해당되는 경우). 이제 클라이언트 애플리케이션을 리디렉션하여 ElastiCache에 대한 데이터 쓰기를 시작할 수 있습니다. 마이그레이션하는 동안 Valkey 노드 및 ElastiCache 프라이머리 노드에서 [valkey-cli INFO](https://valkey.io/commands/info) 명령을 실행하여 복제 상태를 확인할 수 있습니다.

## 마이그레이션 단계
<a name="Migration-Steps"></a>

다음 주제에서는 데이터 마이그레이션을 위한 프로세스에 대해 개략적으로 알아봅니다.
+ [마이그레이션을 위한 소스 및 대상 준비](Migration-Prepare.md)
+ [데이터 마이그레이션 테스트](Migration-Test.md)
+ [마이그레이션 시작](Migration-Initiate.md)
+ [데이터 마이그레이션 진행 상황 확인](Migration-Verify.md)
+ [데이터 마이그레이션 완료](Migration-Complete.md)

# 마이그레이션을 위한 소스 및 대상 준비
<a name="Migration-Prepare"></a>

이 단계를 통해 EC2의 자체 호스팅 Valkey 또는 Redis 소스에서 ElastiCache로 또는 Redis OSS 클러스터에서 ElastiCache Valkey 클러스터로 데이터를 마이그레이션할 준비를 할 수 있습니다.

이는 자체 호스팅 인스턴스에서 ElastiCache 서비스로 마이그레이션하는 것을 말합니다. ElastiCache에서 Redis OSS에서 Valkey로 업그레이드하는 방법에 대한 자세한 내용은 [엔진 간 업그레이드를 포함한 엔진 버전 업그레이드엔진 버전 업그레이드](VersionManagement.HowTo.md) 섹션을 참조하세요.

ElastiCache 콘솔, API 또는 AWS CLI에서 마이그레이션을 시작하기 전에 다음에 언급된 사전 요구 사항 4가지를 모두 충족해야 합니다.

**마이그레이션을 위한 소스 및 대상 Valkey 또는 Redis OSS 노드를 준비하려면**

1. 대상 ElastiCache 배포를 식별하여 여기로 데이터를 마이그레이션할 수 있는지 확인합니다.

   기존 또는 새로 생성된 ElastiCache 배포는 마이그레이션을 위해 다음과 같은 요구 사항을 충족해야 합니다.
   + 사용하는 Valkey 또는 Redis OSS 5.0.6 이상이어야 합니다.
   + 전송 중 암호화가 활성화되어 있지 않습니다.
   + 다중 AZ가 활성화되어 있습니다.
   + Valkey 또는 Redis OSS 클러스터에서 데이터를 수용하기에 충분한 메모리가 있어야 합니다. 예약 메모리 설정을 올바르게 구성하는 방법은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 섹션을 참조하세요.
   + 클러스터 모드가 비활성화된 경우 CLI를 사용하거나 Valkey 또는 Redis OSS 버전 5.0.6 이상에서는 CLI 또는 콘솔을 사용하여, Valkey 또는 Redis OSS 버전 2.8.21 이상에서 Valkey 또는 Redis OSS 버전 5.0.6 이상으로 직접 마이그레이션할 수 있습니다. 클러스터 모드가 활성화된 경우 CLI를 사용하거나 Redis OSS 버전 5.0.6 이상에서는 CLI 또는 콘솔을 사용하여, 클러스터 모드가 활성화된 모든 Valkey 또는 Redis OSS 버전에서 Redis OSS 버전 5.0.6 이상으로 직접 마이그레이션할 수 있습니다.
   + 소스와 대상의 샤드 수가 일치해야 합니다.
   + 글로벌 데이터 스토어에 포함되면 안 됩니다.
   + 데이터 계층화가 비활성화되어 있어야 합니다.

1. 오픈 소스 Valkey 또는 Redis OSS의 구성과 ElastiCache 배포의 구성이 서로 호환되는지 확인합니다.

   최소한 대상 ElastiCache 배포의 모든 구성은 복제를 위한 Valkey 또는 Redis OSS 구성과 호환되어야 합니다.
   + 클러스터에서 AUTH가 활성화되어서는 안 됩니다.
   + 구성 `protected-mode`가 `no`로 설정되어 있어야 합니다.
   + Valkey 또는 Redis OSS 구성에 `bind` 구성이 있는 경우에는 ElastiCache 노드에서의 요청을 허용하도록 구성이 업데이트되어야 합니다.
   + 논리적 데이터베이스의 개수는 ElastiCache 노드와 Valkey 또는 Redis OSS 클러스터 간에 동일해야 합니다. 이 값은 Valkey 또는 Redis OSS 구성에서 `databases`를 사용해 설정됩니다.
   + 데이터 복제가 성공하려면 데이터 수정을 수행하는 Valkey 또는 Redis OSS 명령(예: `sync`, `psync`, `info`, `config`, `command`, `cluster`)의 이름을 변경해서는 안 됩니다.
   + Valkey 또는 Redis OSS 클러스터에서 ElastiCache로 데이터를 복제하려면 이러한 추가 로드를 처리하기에 충분한 CPU 및 메모리가 있는지 확인합니다. 이러한 로드는 Valkey 또는 Redis OSS 클러스터에서 생성된 RDB 파일에서 나와서 네트워크를 경유해 ElastiCache 노드로 전달됩니다.
   + 소스 클러스터의 모든 Valkey 또는 Redis OSS 인스턴스는 동일한 포트에서 실행되어야 합니다.

1. 다음과 같은 작업을 수행하여 인스턴스를 ElastiCache에 연결할 수 있는지 확인합니다.
   + 각 인스턴스의 IP 주소가 프라이빗 주소인지 확인합니다.
   + 인스턴스의 Valkey 또는 Redis OSS와 동일한 가상 프라이빗 클라우드(VPC)에서 ElastiCache 배포를 할당하거나 생성합니다(권장).
   + VPC가 다른 경우에는 두 노드 간의 액세스를 허용하도록 VPC 피어링을 설정합니다. VPC 피어링에 대한 자세한 내용은 에서 [Amazon VPC에 있는 ElastiCache 캐시에 액세스하기 위한 액세스 패턴](elasticache-vpc-accessing.md) 섹션을 참조하세요.
   + Valkey 또는 Redis OSS 인스턴스에 연결된 보안 그룹은 ElastiCache 노드에서의 인바운드 트래픽을 허용해야 합니다.

1. 데이터 마이그레이션이 완료된 이후에 애플리케이션이 ElastiCache 노드로 트래픽을 보낼 수 있는지 확인합니다. 자세한 내용은 [Amazon VPC에 있는 ElastiCache 캐시에 액세스하기 위한 액세스 패턴](elasticache-vpc-accessing.md) 섹션을 참조하세요.

# 데이터 마이그레이션 테스트
<a name="Migration-Test"></a>

모든 사전 요구 사항이 완료된 이후에 AWS Management Console, ElastiCache API 또는 AWS CLI를 사용해 마이그레이션 설정을 검증할 수 있습니다. 다음은 CLI를 사용하는 경우를 보여주는 예제입니다.

`test-migration` 명령을 다음 파라미터와 함께 호출하여 마이그레이션을 테스트합니다.
+ `--replication-group-id` - 데이터를 마이그레이션할 복제 그룹의 ID입니다.
+ `--customer-node-endpoint-list` - 데이터를 마이그레이션해야 하는 엔드포인트의 목록입니다. 목록에는 한 개의 요소만 있어야 합니다.

다음은 CLI 사용을 보여주는 예제입니다.

```
aws elasticache test-migration --replication-group-id test-cluster --customer-node-endpoint-list "Address='10.0.0.241',Port=6379"
```

ElastiCache는 실제 데이터 마이그레이션 없이 마이그레이션 설정을 검증합니다.

# 마이그레이션 시작
<a name="Migration-Initiate"></a>

모든 사전 요구 사항이 완료된 이후에 AWS Management Console, ElastiCache API 또는 AWS CLI를 사용해 데이터 마이그레이션을 시작할 수 있습니다. 클러스터 모드가 활성화되어 있는 경우 슬롯 마이그레이션이 다르면 실시간 마이그레이션 전에 리샤딩이 수행됩니다. 다음은 CLI를 사용하는 경우를 보여주는 예제입니다.

**참고**  
`TestMigration` API를 사용하여 마이그레이션 설정을 검증하는 것이 좋습니다. 그러나 이는 전적으로 선택 사항입니다.

`start-migration` 명령을 다음 파라미터로 호출하여 마이그레이션을 시작합니다.
+ `--replication-group-id` - 대상 ElastiCache 복제 그룹의 식별자
+ `--customer-node-endpoint-list` - DNS 또는 IP 주소를 가진 엔드포인트와 소스 Valkey 또는 Redis OSS 클러스터가 실행 중인 포트의 목록. 클러스터 모드가 비활성화된 경우와 클러스터 모드가 활성화된 경우에 모두 하나의 요소만 이 목록에 포함할 수 있습니다. 연결 복제가 활성화된 경우에는 엔드포인트가 Valkey 또는 Redis OSS 클러스터의 프라이머리 노드 대신에 복제본을 가리킬 수 있습니다.

다음은 CLI 사용을 보여주는 예제입니다.

```
aws elasticache start-migration --replication-group-id test-cluster --customer-node-endpoint-list "Address='10.0.0.241',Port=6379"
```

이 명령을 실행하면 ElastiCache 프라이머리 노드(각 샤드 내)가 Valkey 또는 Redis OSS 인스턴스의 복제본(클러스터가 활성화된 Redis에서 동일한 슬롯을 소유한 해당 샤드 내)이 되도록 구성됩니다. ElastiCache 클러스터의 상태가 **마이그레이션 중**으로 바뀌면서 데이터가 Valkey 또는 Redis OSS 인스턴스에서 ElastiCache 프라이머리 노드로 마이그레이션되기 시작합니다. Valkey 또는 Redis OSS 인스턴스의 데이터 및 로드 크기에 따라 마이그레이션이 완료되는 데 다소 시간이 걸릴 수 있습니다. Valkey 인스턴스 및 ElastiCache 프라이머리 노드에서 [valkey-cli INFO](https://valkey.io/commands/info) 명령을 실행하여 마이그레이션 진행 상태를 확인할 수 있습니다.

복제가 성공하고 나면 Valkey 또는 Redis OSS 인스턴스에 대한 모든 쓰기가 ElastiCache 클러스터로 전달됩니다. 읽기에는 ElastiCache 노드를 사용할 수 있습니다. 하지만 ElastiCache 클러스터에 대한 쓰기는 불가능합니다. ElastiCache 프라이머리 노드에 다른 복제본 노드가 연결되어 있는 경우에는 이러한 복제본 노드가 ElastiCache 프라이머리 노드에서의 복제를 계속 수행합니다. 따라서 Valkey 또는 Redis OSS 클러스터에서 나온 모든 데이터가 ElastiCache 클러스터의 모든 노드에 복제됩니다.

ElastiCache 프라이머리 노드가 Valkey 또는 Redis OSS 인스턴스의 복제본이 될 수 없는 경우에는 몇 차례 시도한 이후에야 프라이머리 노드로 다시 승격될 수 있습니다. ElastiCache 클러스터의 상태가 **사용 가능**으로 변경되고, 마이그레이션 개시 실패에 대한 복제 그룹 이벤트가 전송됩니다. 이러한 문제를 해결하려면 다음과 같이 하세요.
+ 복제 그룹 이벤트를 확인합니다. 이벤트에서 나온 모든 구체적인 정보를 이용해 마이그레이션 실패 문제를 해결합니다.
+ 이벤트가 구체적인 정보를 제공하지 않는 경우에는 [마이그레이션을 위한 소스 및 대상 준비](Migration-Prepare.md)의 지침을 준수했는지 확인합니다.
+ VPC 및 서브넷을 위한 라우팅 구성이 ElastiCache 노드와 Valkey 또는 Redis OSS 인스턴스 간에서 트래픽을 허용하는지 확인합니다.
+ Valkey 또는 Redis OSS 인스턴스에 연결된 보안 그룹이 ElastiCache 노드에서의 인바운드 트래픽을 허용하는지 확인합니다.
+ 복제 실패에 대한 구체적인 정보는 인스턴스에 대한 Valkey 또는 Redis OSS 로그를 확인합니다.

# 데이터 마이그레이션 진행 상황 확인
<a name="Migration-Verify"></a>

데이터 마이그레이션이 시작된 이후에 다음을 통해 진행 상황을 확인할 수 있습니다.
+ Valkey 또는 Redis OSS `master_link_status`가 ElastiCache 프라이머리 노드의 `INFO` 명령에서 `up` 상태인지 확인합니다. 이 정보는 ElastiCache 콘솔에서 확인할 수 있습니다. 클러스터를 선택하고 **CloudWatch 지표**에서 **기본 링크 상태**를 관찰합니다. 값이 1에 도달한 후 데이터가 동기화됩니다.
+ Valkey 또는 Redis OSS 인스턴스에 대해 `INFO` 명령을 실행하여 ElastiCache 복제본이 **온라인** 상태인지 확인할 수 있습니다. 이렇게 하면 복제 지연 시간에 대한 정보도 제공됩니다.
+ Valkey 또는 Redis OSS 인스턴스에서 [CLIENT LIST](https://valkey.io/commands/client-list) 명령을 사용하여 하위 클라이언트 출력 버퍼를 확인합니다.

데이터 마이그레이션이 완료된 후 데이터가 동기화되는 중에 새로운 쓰기는 Valkey 또는 Redis OSS 클러스터의 프라이머리 노드로 전달됩니다.

# 데이터 마이그레이션 완료
<a name="Migration-Complete"></a>

ElastiCache 클러스터로 전환할 준비가 되면 다음 파라미터와 함께 `complete-migration` CLI 명령을 사용합니다.
+ `--replication-group-id` - 복제 그룹의 식별자입니다.
+ `--force` - 데이터가 동기화 중인지 확인하지 않고 마이그레이션을 강제 중단하는 값입니다.

다음은 예입니다.

```
aws elasticache complete-migration --replication-group-id test-cluster
```

이 명령을 실행하고 나면 ElastiCache 프라이머리 노드(각 샤드 내)가 Valkey 또는 Redis OSS 인스턴스에서의 복제를 중단하고 이를 프라이머리 노드로 승격시킵니다. 이러한 승격은 보통 몇 분 내에 완료됩니다. 기본 노드로의 승격을 확정하려면 이벤트 `Complete Migration successful for test-cluster`를 확인합니다. 이때 애플리케이션을 ElastiCache 쓰기 및 읽기로 보낼 수 있습니다. ElastiCache 클러스터 상태는 **마이그레이션 중**에서 **사용 가능**으로 바뀌어야 합니다.

프라이머리 노드로의 승격이 실패한 경우에도 ElastiCache 프라이머리 노드는 Valkey 또는 Redis OSS 인스턴스에서 복제를 계속 수행합니다. ElastiCache 클러스터의 상태는 계속 **마이그레이션 중**으로 유지되고, 실패에 대한 복제 그룹 이벤트 메시지가 전송됩니다. 이 문제를 해결하려면 다음과 같이 하세요.
+ 복제 그룹 이벤트를 확인합니다. 이벤트에서 나온 구체적인 정보를 이용해 마이그레이션 실패 문제를 해결합니다.
+ 데이터가 동기화 중이 아니라는 이벤트 메시지가 나타날 수 있습니다. 이 경우에는 ElastiCache 프라이머리 노드가 Valkey 또는 Redis OSS 인스턴스에서 복제를 수행할 수 있고 둘 모두가 동기화 중인지 확인합니다. 여전히 동기화를 중단하고 싶은 마음이 있으면 `—force` 옵션을 통해 이전의 명령을 실행할 수 있습니다.
+ ElastiCache 노드 중 하나가 대체되는 경우 이벤트 메시지가 표시될 수 있습니다. 대체 작업이 완료되고 난 후에 전체 마이그레이션 단계를 다시 시도할 수 있습니다.

# 콘솔을 사용해 온라인 데이터 마이그레이션 수행
<a name="Migration-Console"></a>

AWS Management Console을 사용해 클러스터에서 Valkey 또는 Redis OSS 클러스터로 데이터를 마이그레이션할 수 있습니다.

**콘솔을 사용해 온라인 데이터 마이그레이션을 수행하려면**

1. 콘솔에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/home/home)에서 ElastiCache 콘솔을 엽니다.

1. 새 Valkey 또는 Redis OSS 클러스터를 생성하거나 기존 클러스터를 선택합니다. 클러스터가 다음 요구 사항을 충족하는지 확인합니다.
   + 엔진 버전은 Valkey 7.2 이상 또는 Redis OSS 5.0.6 이상이어야 합니다.
   + 클러스터에서 AUTH가 활성화되어서는 안 됩니다.
   + 구성 `protected-mode`가 `no`로 설정되어 있어야 합니다.
   + Valkey 또는 Redis OSS 구성에 `bind` 구성이 있는 경우에는 ElastiCache 노드에서의 요청을 허용하도록 구성이 업데이트되어야 합니다.
   + 데이터베이스의 개수는 ElastiCache 노드와 Valkey 또는 Redis OSS 클러스터 간에 동일해야 합니다. 이 값은 엔진 구성에서 `databases`를 사용해 설정됩니다.
   + 데이터 복제가 성공하려면 데이터 수정을 수행하는 Valkey 또는 Redis OSS 명령의 이름을 변경해서는 안 됩니다.
   + Valkey 또는 Redis OSS 클러스터에서 ElastiCache로 데이터를 복제하려면 이러한 추가 로드를 처리하기에 충분한 CPU 및 메모리가 있는지 확인합니다. 이러한 로드는 Valkey 또는 Redis OSS 클러스터에서 생성된 RDB 파일에서 나와서 네트워크를 경유해 ElastiCache 노드로 전달됩니다.
   + 클러스터는 **사용 가능** 상태입니다.

1. 클러스터가 선택된 상태에서 **작업**에서 **엔드포인트에서 데이터 마이그레이션**을 선택합니다.

1. **엔드포인트에서 데이터 마이그레이션** 대화 상자에서 IP 주소와 Valkey 또는 Redis OSS 클러스터를 사용할 수 있는 포트를 입력합니다.
**중요**  
IP 주소는 정확해야 합니다. 주소를 잘못 입력하면 마이그레이션이 실패합니다.

1. **Start Migration(마이그레이션 시작)**을 선택합니다.

   클러스터에서 마이그레이션이 시작되면 상태가 **설정 변경**으로 바뀐 다음, **Migrating(마이그레이션 중)**으로 바뀝니다.

1. 탐색 창에서 **이벤트**를 선택해 마이그레이션 진행 상황을 모니터링합니다.

마이그레이션이 진행되는 동안 언제라도 마이그레이션을 중단할 수 있습니다. 이렇게 하려면 클러스터를 선택하고 **작업**에서 **데이터 마이그레이션 중지**를 선택합니다. 그러면 클러스터의 상태가 **사용 가능**로 바뀝니다.

마이그레이션이 성공하면 클러스터의 상태가 **사용 가능**으로 바뀌고 이벤트 로그에 다음과 같은 내용이 표시됩니다.

`Migration operation succeeded for replication group ElastiCacheClusterName.`

마이그레이션이 실패하면 클러스터의 상태가 **사용 가능**으로 바뀌고 이벤트 로그에 다음과 같은 내용이 표시됩니다.

`Migration operation failed for replication group ElastiCacheClusterName.`

# ElastiCache에 대한 리전 및 가용 영역 선택
<a name="RegionsAndAZs"></a>

해당 엔드포인트를 사용하여 리전 및 가용 영역을 지정하여 ElastiCache 클러스터에 추가적인 확장성과 안정성을 제공할 수 있습니다.

AWS 클라우드 컴퓨팅 리소스는 가용성이 매우 높은 데이터 설비에 있습니다. 추가 확장성 및 안정성을 제공하기 위해 이러한 데이터 센터 시설은 여러 물리적 위치에 배치됩니다. 이러한 위치는 *리전* 및 *가용 영역*으로 분류됩니다.

AWS 리전은 크고 광범위하게 별도의 지리적 위치에 분산되어 있습니다. 가용 영역은 다른 가용 영역에서 발생한 장애로부터 격리할 수 있도록 설계된 AWS 리전 내 개별적인 위치입니다. 가용 영역은 같은 AWS 리전에 있는 다른 가용 영역에 대해 저렴하고 지연 시간이 짧은 네트워크 연결을 제공합니다.

**중요**  
각 리전은 완전히 독립적입니다. 시작하는 모든 ElastiCache 활동(예: 클러스터 생성)은 현재 기본 리전에서만 실행됩니다.

특정 리전에서 클러스터를 생성하거나 사용하려면 해당하는 리전 서비스 엔드포인트를 사용하세요. 서비스 엔드포인트는 [지원되는 리전 및 엔드포인트](#SupportedRegions) 섹션을 참조하세요.

![\[이미지: 리전 및 가용 영역\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/images/ElastiCache-RegionsAndAZs.png)


*리전 및 가용 영역*

**Topics**
+ [Memcached의 가용 영역 고려 사항](#CacheNode.Memcached.AvailabilityZones)
+ [노드 찾기](#RegionsAndAZs.AZMode)
+ [지원되는 리전 및 엔드포인트](#SupportedRegions)
+ [ElastiCache에서 로컬 영역 사용](Local_zones.md)
+ [ElastiCache에서 Outposts 사용](ElastiCache-Outposts.md)

## Memcached의 가용 영역 고려 사항
<a name="CacheNode.Memcached.AvailabilityZones"></a>

한 리전 내의 여러 가용 영역에 Memcached 노드를 배포하면 한 가용 영역 내의 정전과 같은 치명적인 장애의 영향으로부터 사용자를 보호할 수 있습니다.

**서버리스 캐시**

ElastiCache 서버리스 캐시는 여러 가용 영역에 걸쳐 고가용성 캐시를 생성합니다. 서버리스 클러스터를 생성할 때 다른 가용 영역 및 동일한 VPC의 서브넷을 지정할 수 있습니다. 그렇지 않으면 ElastiCache가 기본 VPC에서 서브넷을 자동으로 선택합니다.

**자체 ElastiCache for Memcached 클러스터 설계**

Memcached 클러스터에는 최대 300개의 노드가 있을 수 있습니다. Memcached 클러스터에 노드를 생성하거나 추가할 때 모든 노드에 대한 단일 가용 영역을 지정하거나, ElastiCache가 모든 노드에 대한 단일 가용 영역을 선택하도록 허용하거나, 각 노드에 대한 가용 영역을 지정하거나, ElastiCache가 각 노드에 대한 가용 영역을 선택하도록 허용할 수 있습니다. 기존 Memcached 클러스터에 새 노드를 추가할 때 다른 가용 영역에 노드를 생성할 수 있습니다. 캐시 노드가 생성되면 가용 영역을 수정할 수 없습니다.

단일 가용 영역 클러스터의 한 클러스터에 있는 노드가 여러 가용 영역에 분산되게 하려는 경우 ElastiCache가 다양한 가용 영역에 새 노드를 생성할 수 있습니다. 그런 다음 원래 캐시 노드의 일부 또는 전체를 삭제할 수 있습니다. 이 방법이 권장 방법입니다.

**Memcached 노드를 단일 가용 영역에서 여러 가용 영역으로 마이그레이션하려면**

1. 원하는 가용 영역에서 새 캐시 노드를 생성하여 클러스터를 수정합니다. 요청에서 다음을 수행합니다.
   + `AZMode`(CLI: `- -az-mode`)를 `cross-az`로 설정합니다.
   + `NumCacheNodes`(CLI: `- -num-cache-nodes`)를 현재 활성 캐시 노드 수와 생성하려는 새 캐시 노드 수를 더한 값으로 설정합니다.
   + `NewAvailabilityZones`(CLI: `- -new-availability-zones`)를 새 캐시 노드를 생성할 영역의 목록으로 설정합니다. ElastiCache가 각각의 새 노드에 대한 가용 영역을 결정하게 하려면 목록을 지정하지 마십시오.
   +  `ApplyImmediately`(CLI: `- -apply-immediately`)를 true로 설정합니다.
**참고**  
Auto Discovery를 사용하지 않는 경우 클라이언트 애플리케이션을 새 캐시 노드 엔드포인트로 업데이트해야 합니다.

   다음 단계로 넘어가기 전에 Memcached 노드가 완전히 생성되어 사용 가능한지 확인합니다.

1. 원래 가용 영역에서 더 이상 필요하지 않은 노드를 제거하여 클러스터를 수정합니다. 요청에서 다음을 수행합니다.
   + `NumCacheNodes`(CLI: `- -num-cache-nodes`)를 이 수정이 적용된 후 필요한 활성 캐시 노드의 수로 설정합니다.
   + `CacheNodeIdsToRemove`(CLI: `- -nodes-to-remove`)를 클러스터에서 제거할 캐시 노드의 목록으로 설정합니다.

     나열된 캐시 노드 ID 수는 현재 활성 노드 수에서 `NumCacheNodes`의 값을 뺀 값과 같아야 합니다.
   + (선택 사항) `ApplyImmediately`(CLI: `- -apply-immediately`)를 true로 설정합니다.

     `ApplyImmediately`(CLI: `- -apply-immediately`)를 true로 설정하지 않은 경우 노드 삭제는 다음 유지 관리 기간에 수행됩니다.

## 노드 찾기
<a name="RegionsAndAZs.AZMode"></a>

Amazon ElastiCache는 AZ(가용 영역) 하나 또는 여러 개에서 클러스터의 모든 노드를 찾도록 지원합니다. 뿐만 아니라 여러 AZ에서 클러스터의 노드를 찾도록 선택하면(권장 사항) ElastiCache를 통해 각 노드의 AZ를 선택하거나 ElastiCache에서 자동으로 선택하도록 할 수 있습니다.

여러 AZ에서 노드를 찾으면 AZ 하나에서 정전과 같은 장애가 발생할 경우 전체 시스템이 실패하는 경우가 없어집니다. AZ 하나에서 모든 노드를 찾거나 여러 AZ에 노드를 분산시키는 사이에 지연 시간 차이가 크게 발생하지 않는다는 사실이 테스트를 통해 드러났습니다.

기존 클러스터를 수정할 때 노드를 추가거나 클러스터를 생성할 때 각 노드에 대한 AZ를 지정할 수 있습니다. 클러스터를 생성하는 동안 각 노드에 대해 AZ를 지정할 때 해당 서브넷 그룹에서 AZ를 사용할 수 있어야 합니다. 자세한 내용은 다음 자료를 참조하세요.
+ [Memcached용 클러스터 생성](Clusters.Create-mc.md)
+ [Valkey 또는 Redis OSS용 클러스터 생성](Clusters.Create.md)
+ [ElastiCache 클러스터 수정](Clusters.Modify.md)
+ [ElastiCache 클러스터에 노드 추가](Clusters.AddNode.md)

## 지원되는 리전 및 엔드포인트
<a name="SupportedRegions"></a>

Amazon ElastiCache는 여러 AWS 리전에서 사용할 수 있습니다. 따라서 요구 사항에 적합한 위치에서 ElastiCache 클러스터를 시작할 수 있습니다. 예를 들어, 고객과 가장 가까운 AWS 리전 또는 특정 법적 요구 사항을 준수하는 AWS 리전에서 시작할 수 있습니다.

각 리전은 다른 리전에서 완전히 격리되도록 설계되었습니다. 각 리전 안에는 가용 영역(AZ)이 여러 개 있습니다. ElastiCache 서버리스 캐시는 고가용성을 위해 여러 가용 영역(데이터가 2개의 가용 영역에 복제되는 `us-west-1` 제외)에 데이터를 자동으로 복제합니다. 자체 ElastiCache 클러스터를 설계할 때 내결함성을 확보하기 위해 여러 AZ에서 노드를 시작하도록 선택할 수 있습니다. 리전 및 가용 영역에 대한 자세한 내용은 이 주제의 맨 위에 있는 [ElastiCache에 대한 리전 및 가용 영역 선택](#RegionsAndAZs) 섹션을 참조하십시오.


**ElastiCache가 지원되는 리전**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/RegionsAndAZs.html)

일부 리전은 노드 유형의 하위 집합을 지원합니다. AWS 리전별로 지원되는 노드 유형을 정리한 표는 [AWS리전별로 지원되는 노드 유형](CacheNodes.SupportedTypes.md#CacheNodes.SupportedTypesByRegion) 섹션을 참조하세요.

대부분의 리전은 AWS PrivateLink를 통해 인터페이스 VPC 엔드포인트를 생성하여 VPC와 ElastiCache API 엔드포인트 간에 프라이빗 연결 설정을 지원합니다. 자세한 내용은 [ElastiCache API 및 인터페이스 VPC 엔드포인트(AWS PrivateLink)](elasticache-privatelink.md) 섹션을 참조하세요.

리전별 AWS 제품 및 서비스 표는 [리전별 제품 및 서비스](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)에서 참조하세요.

# ElastiCache에서 로컬 영역 사용
<a name="Local_zones"></a>

*로컬 영역*은 사용자와 지리적으로 가까운 AWS 리전의 확장입니다. 새 서브넷을 만들고 로컬 영역에 할당하여 상위 AWS 리전에서 Local Zones로 Virtual Private Cloud(VPC)를 확장할 수 있습니다. 로컬 영역에 서브넷을 생성하면 VPC도 해당 로컬 영역으로 확장됩니다. 로컬 영역의 서브넷은 VPC의 다른 서브넷과 동일하게 작동합니다.

Local Zones를 사용하면 사용자에게 가까운 여러 위치에서 ElastiCache 클러스터와 같은 리소스를 배치할 수 있습니다.

ElastiCache 클러스터를 생성할 때 로컬 영역에서 서브넷을 선택할 수 있습니다. Local Zones는 인터넷에 대한 자체 연결을 가지고 있으며 Direct Connect를 지원합니다. 따라서 로컬 영역에서 생성된 리소스는 지연 시간이 매우 짧은 통신으로 로컬 사용자에게 서비스를 제공할 수 있습니다. 자세한 내용은 [AWS Local Zones](https://aws.amazon.com/about-aws/global-infrastructure/localzones/)를 참조하세요.

로컬 영역은 AWS 리전 코드 뒤에 위치를 나타내는 식별자를 붙여 표시됩니다(예: `us-west-2-lax-1a`).

현재 사용 가능한 Local Zones는 `us-west-2-lax-1a` 및 `us-west-2-lax-1b`입니다.

ElastiCache for Local Zones에는 다음과 같은 제한 사항이 적용됩니다.
+ 글로벌 데이터 스토어는 지원되지 않습니다.
+ 온라인 마이그레이션은 지원되지 않습니다.
+ 현재 Local Zones에서 지원되는 노드 유형은 다음과 같습니다.
  + 현재 세대: 

    **M5 노드 유형:** `cache.m5.large`, `cache.m5.xlarge`, `cache.m5.2xlarge`, `cache.m5.4xlarge`, `cache.m5.12xlarge`, `cache.m5.24xlarge` 

    **R5 노드 유형:** `cache.r5.large`, `cache.r5.xlarge`, `cache.r5.2xlarge`, `cache.r5.4xlarge`, `cache.r5.12xlarge`, `cache.r5.24xlarge` 

    **T3 노드 유형:** `cache.t3.micro`, `cache.t3.small`, `cache.t3.medium` 

## 로컬 영역 활성화
<a name="Local_zones-using"></a>

1. Amazon EC2 콘솔에서 로컬 영역을 활성화합니다.

   자세한 내용은 *Amazon EC2 사용 설명서*의 [Local Zones 활성화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#enable-zone-group)를 참조하세요.

1. 로컬 영역에서 서브넷을 만듭니다.

   자세한 내용은 *Amazon VPC 사용 설명서*의 [VPC에서 서브넷 만들기](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)를 참조하세요.

1. 로컬 영역에서 ElastiCache 서브넷 그룹을 생성합니다.

   ElastiCache 서브넷 그룹을 생성할 때 로컬 영역에 대한 가용 영역 그룹을 선택합니다.

   자세한 내용은 [서브넷 그룹 생성](SubnetGroups.Creating.md) 섹션을 참조하세요.

1. 로컬 영역에서 ElastiCache 서브넷을 사용하는 ElastiCache for Memcached 클러스터를 생성합니다.

    자세한 내용은 [Memcached 클러스터 생성(콘솔)](Clusters.Create-mc.md#Clusters.Create.CON.Memcached) 섹션을 참조하세요.

1. 로컬 영역에서 ElastiCache 서브넷을 사용하는 ElastiCache for Redis OSS 클러스터를 생성합니다. 자세한 내용은 다음 중 하나의 주제를 참조하세요:
   +  [Valkey(클러스터 모드 비활성화됨) 클러스터 생성(콘솔)](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs)
   +  [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 생성(콘솔)](Clusters.Create.md#Clusters.Create.CON.RedisCluster)

# ElastiCache에서 Outposts 사용
<a name="ElastiCache-Outposts"></a>

ElastiCache에서AWS Outposts를 사용할 수 있습니다. Outposts는AWS인프라, 서비스, APIs 및 도구를 고객 온프레미스로 확장하는 완전관리형 서비스입니다.AWS관리형 인프라에 대한 로컬 액세스를 제공하는AWS Outposts를 사용하면 고객은AWS리전과 동일한 프로그래밍 인터페이스를 사용하여 온프레미스에서 애플리케이션을 구축하고 실행하는 동시에 지연 시간을 줄이고 로컬 데이터 처리 요구 사항을 충족하기 위해 로컬 컴퓨팅 및 스토리지 리소스를 사용할 수 있습니다. Outpost는 고객 사이트에 배포된AWS컴퓨팅 및 스토리지 용량 풀입니다.는이 용량을AWS리전의 일부로AWS운영, 모니터링 및 관리합니다. Outpost에서 서브넷을 생성하고 ElastiCache 클러스터와 같은AWS리소스를 생성할 때 서브넷을 지정할 수 있습니다.

**참고**  
이 버전에는 다음과 같은 제한 사항이 적용됩니다.  
ElastiCache for Outposts는 M5 및 R5 노드 패밀리만 지원합니다.
다중 AZ(Outpost 간 복제)는 지원되지 않습니다.
실시간 마이그레이션은 지원되지 않습니다.
로컬 스냅샷은 지원되지 않습니다.
엔진 로그와 느린 로그는 활성화할 수 없습니다.
Outposts의 ElastiCache는 CoIP 를 지원하지 않습니다.
ElastiCache for Outposts는 cn-north-1, cn-northwest-1 및 ap-northeast-3 리전에서는 지원되지 않습니다.

## ElastiCache 콘솔에서 Outposts 사용
<a name="Outposts.Details"></a>

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 캐시** , **Redis OSS 캐시** 또는 **Memcached 캐시**를 선택합니다.

1.  **Valkey 캐시**를 선택한 경우 **Valkey 캐시 생성**을 선택합니다. **Redis OSS 캐시**를 선택한 경우 **Redis OSS 캐시 생성**을 선택합니다. **Memcached 캐시**를 선택한 경우 **Memcached 캐시 생성**을 선택합니다.

1. **클러스터 설정**에서 **자체 캐시** 및 **클러스터 캐시 설계**를 선택합니다. **클러스터 모드**를 **비활성화**로 설정한 상태로 둡니다. 그런 다음 캐시에 대한 이름과 설명(선택 사항)을 만듭니다.

1. 위치의 경우 **온프레미스**를 선택합니다.

1. 온프레미스 섹션에 **Outpost ID** 필드가 표시됩니다. 클러스터가 실행될 ID를 입력합니다.

   **클러스터 설정**의 모든 추가 설정은 기본값으로 유지될 수 있습니다.

1. **연결**에서 **새 서브넷 그룹 생성**을 선택하고 **VPC ID**를 입력합니다. 나머지는 기본값으로 두고 **다음**을 선택합니다.

### 온프레미스 옵션 구성
<a name="Outposts.Creating.Console.RedisMultiAZ.Details"></a>

 사용 가능한 Outpost를 선택하여 클러스터를 추가하거나 사용 가능한 Outpost가 없는 경우 다음 단계를 사용하여 새 Outpost를 생성할 수 있습니다.

****온프레미스 옵션**에서 다음을 수행합니다.**

1. 원하는 엔진에 따라 **Valkey 설정**, **Redis OSS 설정** 또는 **Memcached 설정**에서 다음을 수행합니다.

   1. **이름**: 클러스터의 이름을 입력합니다.

   1. **설명**: 클러스터에 대한 설명을 입력합니다.

   1. **엔진 버전 호환성**: 엔진 버전은AWS Outpost 리전을 기반으로 합니다.

   1. **포트 **: Valkey 또는 Redis OSS의 경우 기본 포트 6379를 수락합니다. Memcached의 경우 기본 포트 11211을 수락합니다. 다른 포트를 사용하려면 포트 번호를 입력합니다.

   1. **파라미터 그룹**: 드롭다운을 사용하여 기본 또는 사용자 지정 파라미터 그룹을 선택합니다.

   1. **노드 유형**: 사용 가능한 인스턴스는 Outposts 가용성에 기반합니다. Valkey 또는 Redis OSS를 사용하는 경우 Outposts용 Porting Assistant for .NET은 M5 및 R5 노드 패밀리만 지원합니다. 드롭다운 목록에서 **Outposts**를 선택한 다음 이 클러스터에 사용할 사용 가능한 노드 유형을 선택합니다. 그런 다음 **저장**을 선택합니다.

   1. **복제본 수**: 이 복제 그룹에 대해 생성할 읽기 전용 복제본 수를 입력합니다. 1개 이상 5개 이하의 읽기 전용 복제본이 있어야 합니다. 기본값은 2입니다.

      읽기 전용 복제본의 자동 생성된 이름은 기본 클러스터 이름과 동일한 패턴을 따릅니다. 즉, 끝에 대시와 `-002`부터 시작하는 순차적인 3자리 숫자가 추가됩니다. 예를 들어, 복제 그룹의 이름이 `MyGroup`인 경우 2차 복제본의 이름은 `MyGroup-002`, `MyGroup-003`, `MyGroup-004`, `MyGroup-005`, `MyGroup-006`입니다.

1. **연결** 아래:

   1. **서브넷 그룹**: 목록에서 **새로 생성**을 선택합니다.
      + **이름**: 서브넷 그룹의 이름을 입력합니다.
      + **설명**: 서브넷 그룹에 대한 설명을 입력합니다.
      + **VPC ID**: VPC ID는 Outpost VPC와 일치해야 합니다. Outposts에서 서브넷 ID가 없는 VPC 선택하면 목록이 빈 상태로 반환됩니다.
      + **가용 영역 또는 Outpost**: 사용 중인 Outpost를 선택합니다.
      + **서브넷 ID**: Outpost에 사용할 수 있는 서브넷 ID를 선택합니다. 사용 가능한 서브넷 ID가 없는 경우 서브넷을 생성해야 합니다. 자세한 내용은 [서브넷 생성](https://docs.aws.amazon.com/outposts/latest/userguide/launch-instance.html#create-subnet)을 참조하세요.

   1. **생성**을 선택합니다.

### Outpost 클러스터 세부 정보 보기
<a name="Outposts.Creating.Console.Outpost-Details-Redis"></a>

목록 페이지에서AWS Outpost에 속하는 클러스터를 선택하고 **클러스터 세부 정보를** 볼 때 다음 사항에 유의하세요.
+ **가용 영역**: ARN(Amazon 리소스 이름)과AWS리소스 번호를 사용하여 Outpost를 나타냅니다.
+ **Outpost 이름**:AWS Outpost의 이름입니다.

## AWS CLI에서 Outposts 사용
<a name="Outposts.Using.CLI"></a>

AWS Command Line Interface(AWS CLI)를 사용하여 명령줄에서 여러AWS서비스를 제어하고 스크립트를 통해 자동화할 수 있습니다. 임시(일회성) 작업에AWS CLI를 사용할 수 있습니다.

### 다운로드 및 구성AWS CLI
<a name="Redis-Global-Clusters-Downloading-CLI"></a>

는 Windows, macOS 또는 Linux에서AWS CLI실행됩니다. 다음 절차에 따라 다운로드 및 구성합니다.

**CLI를 다운로드, 설치 및 구성하려면**

1. [AWS명령줄 인터페이스](https://aws.amazon.com/cli) 웹 페이지에서AWS CLI를 다운로드합니다.

1. *AWS Command Line Interface사용 설명서*[의AWS CLI 설치](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) 및 [AWS CLI 구성](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 지침을 따릅니다.

### Outposts에서AWS CLI 사용
<a name="Outposts-Using-CLI"></a>

다음 CLI 작업을 사용하여 Outposts를 사용하는 클러스터를 생성합니다.
+  [create-cache-cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/CommandLineReference/CLIReference-cmd-CreateCacheCluster.html) – 이 작업 사용 시 `outpost-mode` 파라미터가 클러스터의 노드가 단일 Outpost에 생성되는지 아니면 여러 Outposts에 걸쳐 생성되는지를 지정하는 값을 허용합니다.
**참고**  
현재,`single-outpost` 모드만 지원됩니다.

  ```
  aws elasticache create-cache-cluster \
     --cache-cluster-id cluster id \
     --outpost-mode single-outpost \
  ```