

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

# CloudWatch 지표를 사용한 사용량 모니터링
<a name="CacheMetrics"></a>

ElastiCache는 클러스터를 모니터링할 수 있는 지표를 제공합니다. CloudWatch를 통해 이러한 지표에 액세스할 수 있습니다. CloudWatch에 대한 자세한 내용은 [CloudWatch 설명서](https://aws.amazon.com/documentation/cloudwatch/)를 참조하세요.

ElastiCache는 호스트 수준 지표(예: CPU 사용) 및 캐시 엔진 소프트웨어별 지표(예: 캐시가 얻은 것과 잃은 것) 모두를 제공합니다. 이러한 지표는 60초 간격으로 각 캐시 노드에 대해 측정되어 게시됩니다.

**중요**  
특정 키 지표에 CloudWatch 경보를 설정하면 클러스터의 성능이 나빠지기 시작하면 알림을 받을 수 있습니다. 자세한 내용은 이 안내서의 [어떤 지표를 모니터링해야 합니까?](CacheMetrics.WhichShouldIMonitor.md) 섹션을 참조하세요.

**Topics**
+ [호스트 수준 지표](CacheMetrics.HostLevel.md)
+ [Valkey 및 Redis OSS에 대한 지표](CacheMetrics.Redis.md)
+ [Memcached 지표](CacheMetrics.Memcached.md)
+ [어떤 지표를 모니터링해야 합니까?](CacheMetrics.WhichShouldIMonitor.md)
+ [지표 통계 및 기간 선택](CacheMetrics.ChoosingStatisticsAndPeriods.md)
+ [CloudWatch 클러스터 및 노드 지표 모니터링](CloudWatchMetrics.md)

# 호스트 수준 지표
<a name="CacheMetrics.HostLevel"></a>

`AWS/ElastiCache` 네임스페이스에는 다음과 같이 개별 캐시 노드에 대한 호스트 수준 지표가 포함되어 있습니다. 이러한 지표는 60초 간격으로 각 캐시 노드에 대해 측정되어 게시됩니다.

**참고**
+ [Valkey 및 Redis OSS에 대한 지표](CacheMetrics.Redis.md)


| 지표 | 설명 | 단위 | 
| --- | --- | --- | 
| CPUUtilization |  전체 호스트에 대한 CPU 사용률 비율입니다. Valkey 및 Redis OSS는 단일 스레드이므로 vCPU가 4개 이상인 노드에 대해 EngineCPUUtilization 지표를 모니터링하는 것이 좋습니다. |  %  | 
| CPUCreditBalance | 시작 이후 인스턴스가 누적한 획득 CPU 크레딧 수입니다. T2 스탠다드의 경우 CPUCreditBalance에 누적된 시작 크레딧 수도 포함됩니다. 크레딧은 획득 이후에 크레딧 밸런스에 누적되고, 소비 시 크레딧 밸런스에서 소멸됩니다. 크레딧 밸런스는 최대 한도(인스턴스 크기에 따라 결정)가 있습니다. 한도에 도달하면 새로 획득한 크레딧이 모두 삭제됩니다. T2 스탠다드의 경우 시작 크레딧은 한도에 포함되지 않습니다. CPUCreditBalance의 크레딧은 인스턴스가 기준 CPU 사용률 이상으로 버스터를 하는 데 소비할 수 있습니다. CPU 크레딧 지표는 5분 간격으로만 제공됩니다. T2 성능 순간 확장 가능 인스턴스에는 이러한 지표를 사용할 수 없습니다.  | 크레딧(vCPU-분)  | 
| CPUCreditUsage | CPU 사용률을 위해 인스턴스에서 소비되는 CPU 크레딧의 수입니다. CPU 크레딧 하나는 1분 동안 100%의 사용률로 실행되는 vCPU 1개 또는 이와 동등한 vCPU, 사용률 및 시간의 조합과 동일합니다(예를 들어 2분 동안 50%의 사용률로 실행되는 vCPU 1개 또는 2분 동안 25%의 사용률로 실행되는 vCPU 2개). CPU 크레딧 지표는 5분 간격으로만 제공됩니다. 5분 이상의 시간을 지정할 경우 Sum 통계 대신 Average 통계를 사용하세요. T2 성능 순간 확장 가능 인스턴스에는 이러한 지표를 사용할 수 없습니다.  | 크레딧(vCPU-분)  | 
| FreeableMemory  |  호스트에서 사용 가능한 메모리의 양입니다. 이 값은 OS가 여유 공간으로 보고한 RAM, 버퍼, 캐시에서 나왔습니다. |  바이트  | 
| NetworkBytesIn |  호스트가 네트워크에서 읽어온 바이트 수입니다. |  바이트  | 
| NetworkBytesOut | 인스턴스가 모든 네트워크 인터페이스에서 보낸 바이트 수입니다. |  바이트  | 
| NetworkPacketsIn | 인스턴스가 모든 네트워크 인터페이스에서 받은 패킷 수입니다. 이 지표는 단일 인스턴스에서 수신 트래픽의 볼륨을 패킷 수 기준으로 식별합니다. | 개수  | 
| NetworkPacketsOut |  인스턴스가 모든 네트워크 인터페이스에서 보낸 패킷 수입니다. 이 지표는 단일 인스턴스에서 발신 트래픽의 볼륨을 패킷 수 기준으로 식별합니다. | 개수  | 
| NetworkBandwidthInAllowanceExceeded | 인바운드 집계 대역폭이 인스턴스의 최댓값을 초과하여 대기열에 추가되거나 손실된 패킷 수입니다. | 개수  | 
| NetworkConntrackAllowanceExceeded | 연결 추적에서 인스턴스의 최댓값이 초과되어 새 연결을 설정하지 못했기 때문에 손실된 패킷 수입니다. 이로 인해 인스턴스의 수신 또는 송신 트래픽에 대한 패킷 손실이 발생할 수 있습니다. | 개수  | 
| NetworkBandwidthOutAllowanceExceeded | 아웃바운드 집계 대역폭이 인스턴스의 최댓값을 초과하여 대기열에 추가되거나 손실된 패킷 수입니다. | 개수  | 
| NetworkPacketsPerSecondAllowanceExceeded | 양방향 PPS(packets per second)가 인스턴스의 최대값을 초과하여 대기열에 있거나 삭제된 패킷 수입니다. | 개수  | 
| NetworkMaxBytesIn | 1분마다 수신된 바이트의 초당 최대 버스트입니다. | 바이트 | 
| NetworkMaxBytesOut  | 1분마다 전송된 바이트의 초당 최대 버스트입니다. | 바이트 | 
| NetworkMaxPacketsIn | 1분마다 수신된 패킷의 초당 최대 버스트입니다. | 개수  | 
| NetworkMaxPacketsOut | 1분마다 전송된 패킷의 초당 최대 버스트입니다. | 개수  | 
| SwapUsage |  호스트에서 사용되는 스왑의 양입니다. |  바이트  | 

# Valkey 및 Redis OSS에 대한 지표
<a name="CacheMetrics.Redis"></a>

`Amazon ElastiCache` 네임스페이스에는 다음 Valkey 및 Redis OSS 지표가 포함되어 있습니다. 이러한 지표는 Valkey 엔진을 사용할 때와 동일합니다.

`ReplicationLag`, `EngineCPUUtilization`, `SuccessfulWriteRequestLatency` 및 `SuccessfulReadRequestLatency`를 제외하고 이 지표는 **info** 명령에서 파생됩니다. 각 지표는 캐시 노드 수준에서 계산됩니다.

**info** 명령에 대한 전체 설명서는 [http://valkey.io/commands/info](https://valkey.io/commands/info)를 참조하세요.

**참고 항목**
+ [호스트 수준 지표](CacheMetrics.HostLevel.md)

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

**EngineCPUUtilization 가용성**  
AWS아래 나열된 리전은 지원되는 모든 노드 유형에서 사용할 수 있습니다.


| 리전 | 리전 이름 | 
| --- | --- | 
| us-east-2 | 미국 동부(오하이오) | 
| us-east-1 | 미국 동부(버지니아 북부) | 
| us-west-1 | 미국 서부(캘리포니아 북부) | 
| us-west-2 | 미국 서부(오리건) | 
| ap-northeast-1 | 아시아 태평양(도쿄) | 
| ap-northeast-2 | 아시아 태평양(서울) | 
| ap-northeast-3 | 아시아 태평양(오사카) | 
| ap-east-1 | 아시아 태평양(홍콩) | 
| ap-south-1 | 아시아 태평양(뭄바이) | 
| ap-southeast-1 | 아시아 태평양(싱가포르) | 
| ap-southeast-2 | 아시아 태평양(시드니) | 
| ap-southeast-3 | 아시아 태평양(자카르타) | 
| ca-central-1 | 캐나다(중부) | 
| cn-north-1 | 중국(베이징) | 
| cn-northwest-2 | 중국(닝샤) | 
| me-south-1 | Middle East (Bahrain) | 
| eu-central-1 | 유럽(프랑크푸르트) | 
| eu-west-1 | 유럽(아일랜드) | 
| eu-west-2 | 유럽(런던) | 
| eu-west-3 | EU(파리) | 
| eu-south-1 | 유럽(밀라노) | 
| af-south-1 | 아프리카(케이프타운) | 
| eu-north-1 | 유럽(스톡홀름) | 
| sa-east-1 | 남아메리카(상파울루) | 
| us-gov-west-1 | AWS GovCloud(미국 서부) | 
| us-gov-east-1 | AWS GovCloud(미국 동부) | 

다음은 **info commandstats**에서 파생된 몇 가지 유형의 명령 모음입니다. commandstats 섹션에서는 호출 수, 이러한 명령에 의해 소비된 총 CPU 시간, 명령 실행당 소비된 평균 CPU 등을 포함한 명령 유형에 따른 통계를 제공합니다. 각 명령 유형에 다음 행이 추가됩니다. `cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX` 

다음에 나열된 대기 시간 지표는 [INFO](https://valkey.io/commands/info)의 commandstats 통계를 사용하여 계산됩니다. 이러한 지표는 `delta(usec)/delta(calls)` 방식으로 계산됩니다. `delta`는 1분 이내의 차이로 계산됩니다. 대기 시간은 ElastiCache에서 명령을 처리하는 데 걸리는 CPU 시간으로 정의됩니다. 데이터 계층화를 사용하는 클러스터의 경우 SSD에서 항목을 가져오는 데 걸리는 시간은 이러한 측정에 포함되지 않습니다.

사용 가능한 명령의 전체 목록은 Valkey 설명서의 [명령](https://valkey.io/commands)을 참조하세요.


| 지표  | 설명  | 단위  | 
| --- | --- | --- | 
| ClusterBasedCmds | 클러스트 기반 명령 총 수입니다. 이 지표는 클러스터(cluster slot, cluster info 등)를 기반으로 실행되는 모든 명령을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
| ClusterBasedCmdsLatency | 클러스터 기반 명령의 대기 시간입니다. | 마이크로초 | 
| EvalBasedCmds | EVAL 기반 명령의 총 명령 수입니다. 이 수는 eval, evalsha를 합산하여 commandstats 통계에서 나왔습니다. | 개수 | 
| EvalBasedCmdsLatency | eval 기반 명령의 대기 시간입니다. | 마이크로초 | 
| GeoSpatialBasedCmds | geospatial 기반 명령의 총 명령 수입니다. 이 수는 commandstats 통계 자료에서 나왔습니다. 이 수는 모든 geo 유형의 명령(geoadd, geodist, geohash, geopos, georadius, georadiusbymember)을 합산하여 계산됩니다. | 개수 | 
| GeoSpatialBasedCmdsLatency | geospatial 기반 명령의 대기 시간입니다. | 마이크로초 | 
| GetTypeCmds | read-only 유형 명령의 총 건수입니다. 이 수는 read-only 유형의 모든 명령(get, hget, scard, lrange 등)을 합산하여 commandstats 통계에서 나왔습니다. | 개수 | 
|  GetTypeCmdsLatency |  읽기 명령의 지연 시간. | 마이크로초 | 
| HashBasedCmds | 해시 기반 명령의 총 수입니다. 이 지표는 1개 이상의 해시(hget, hkeys, hvals, hdel 등)를 기반으로 실행되는 모든 명령을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
|  HashBasedCmdsLatency |  해시 기반 명령의 지연 시간. | 마이크로초 | 
| HyperLogLogBasedCmds | HyperLogLog 기반 명령 총 건수입니다. 이 수는 pf 유형의 모든 명령(pfadd, pfcount, pfmerge 등)을 합산하여 commandstats 통계에서 나왔습니다. | 개수 | 
|  HyperLogLogBasedCmdsLatency |  HyperLogLog 기반 명령의 대기 시간입니다. | 마이크로초 | 
| JsonBasedCmds | 읽기 및 쓰기 명령을 포함한 총 JSON 명령 수입니다. 이 지표는 JSON 키를 기반으로 실행되는 모든 JSON 명령을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
| JsonBasedCmdsLatency | 읽기 및 쓰기 명령을 포함한 모든 JSON 명령의 지연 시간입니다. | 마이크로초 | 
| JsonBasedGetCmds | JSON 읽기 전용 명령의 총 수입니다. 이 지표는 JSON 키를 기반으로 실행되는 모든 JSON 읽기 명령을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
| JsonBasedGetCmdsLatency | JSON 읽기 전용 명령의 지연 시간입니다. | 마이크로초 | 
| JsonBasedSetCmds | JSON 쓰기 명령의 총 수입니다. 이 지표는 JSON 키를 기반으로 실행되는 모든 JSON 쓰기 명령을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
| JsonBasedSetCmdsLatency | JSON 쓰기 명령의 지연 시간입니다. | 마이크로초 | 
| KeyBasedCmds | 키 기반 명령 총 수입니다. 이 수는 여러 데이터 구조(del, expire, rename 등) 상에서 1개 이상의 키에서 작동하는 모든 명령을 합산하여 commandstats 통계에서 나왔습니다. | 개수 | 
|  KeyBasedCmdsLatency |  키 기반 명령의 지연 시간. | 마이크로초 | 
| ListBasedCmds | 목록 기반 명령 총 수입니다. 이 지표는 1개 이상의 목록(lindex, lrange, lpush, ltrim 등)을 기반으로 실행되는 모든 명령을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
|  ListBasedCmdsLatency |  목록 기반 명령의 지연 시간. | 마이크로초 | 
| NonKeyTypeCmds | 키 기반이 아닌 명령의 총 수입니다. 이 지표는 키를 기반으로 하지 않고 실행되는 모든 명령(예: acl, dbsize 또는 info)을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
| NonKeyTypeCmdsLatency | 키 기반이 아닌 명령의 지연 시간입니다. | 마이크로초 | 
| PubSubBasedCmds | pub/sub 기능의 명령 총 수입니다. 이 수는 Pub/sub 기능에 사용되는 모든 명령(psubscribe, publish, pubsub, punsubscribe, ssubscribe, sunsubscribe, spublish, subscribe, unsubscribe)을 합산하여 commandstats 통계에서 나왔습니다. | 개수 | 
| PubSubBasedCmdsLatency | pub/sub 기반 명령의 대기 시간입니다. | 마이크로초 | 
| SetBasedCmds | 집합 기반 명령 총 수입니다. 이 지표는 1개 이상의 집합(scard, sdiff, sadd, sunion 등)을 기반으로 실행되는 모든 명령을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
|  SetBasedCmdsLatency |  집합 기반 명령의 지연 시간. | 마이크로초 | 
| SetTypeCmds | write 유형의 총 명령 건수입니다. 이 수는 데이터(set, hset, sadd, lpop 등)에서 작동하는 모든 mutative 유형의 명령을 합산하여 commandstats 통계에서 나왔습니다. | 개수 | 
|  SetTypeCmdsLatency |  쓰기 명령의 지연 시간. | 마이크로초 | 
| SortedSetBasedCmds | 정렬된 집합 기반 명령 총 수입니다. 이 지표는 1개 이상의 정렬된 집합(zcount, zrange, zrank, zadd 등)을 기반으로 실행되는 모든 명령을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
|  SortedSetBasedCmdsLatency |  정렬 기반 명령의 지연 시간. | 마이크로초 | 
| StringBasedCmds | 문자열 기반 명령 총 수입니다. 이 지표는 1개 이상의 문자열(strlen, setex, setrange 등)을 기반으로 실행되는 모든 명령을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
|  StringBasedCmdsLatency |  문자열 기반 명령 지연 시간  | 마이크로초 | 
| StreamBasedCmds | 총 스트림 기반 명령 수입니다. 이 지표는 1개 이상의 스트림 데이터 형식(xrange, xlen, xadd, xdel 등)을 기반으로 실행되는 모든 명령을 합산하여 commandstats 통계에서 파생됩니다. | 개수 | 
|  StreamBasedCmdsLatency |  스트림 기반 명령의 지연 시간. | 마이크로초 | 
| SearchBasedCmds | 읽기 및 쓰기 명령을 포함한 총 Search 명령 수입니다. 이 수는 모든 Search 명령을 합산하여 명령 commandstats 통계에서 나왔습니다. | 개수 | 
| SearchBasedCmdsLatency | 읽기 및 쓰기 명령을 포함한 모든 Search 명령의 지연 시간입니다. | 마이크로초 | 
| SearchBasedGetCmds | Search 읽기 전용 명령의 총 수입니다. 이 수는 모든 Search 읽기 명령을 합산하여 명령 commandstats 통계에서 나왔습니다. | 개수 | 
| SearchBasedGetCmdsLatency | Search 읽기 전용 명령의 지연 시간입니다. | 마이크로초 | 
| SearchBasedSetCmds | Search 쓰기 명령의 총 수입니다. 이 수는 모든 Search 쓰기 명령을 합산하여 명령 commandstats 통계에서 나왔습니다. | 개수 | 
| SearchBasedSetCmdsLatency | Search 쓰기 명령의 지연 시간입니다. | 마이크로초 | 

# Memcached 지표
<a name="CacheMetrics.Memcached"></a>

`AWS/ElastiCache` 네임스페이스에는 다음 Memcached 지표가 포함되어 있습니다.

AWS/ElastiCache 네임스페이스에는 다음과 같이 Memcached stats 명령에서 파생되는 지표가 포함되어 있습니다. 각 지표는 캐시 노드 수준에서 계산됩니다.

**또한 섹션도 참조하세요**.
+ [호스트 수준 지표](CacheMetrics.HostLevel.md)


| 지표  | 설명  | 단위  | 
| --- | --- | --- | 
| BytesReadIntoMemcached | 캐시 노드가 네트워크에서 읽어온 바이트 수 | 바이트 | 
| BytesUsedForCacheItems | 캐시 항목을 저장하는 데 사용된 바이트 수 | 바이트 | 
| BytesWrittenOutFromMemcached | 캐시 노드가 네트워크로 작성한 바이트 수 | 바이트 | 
| CasBadval | CAS(Check And Set) 값이 저장된 CAS 값과 일치하지 않을 때 캐시가 수신한 CAS 요청 수  | 개수 | 
| CasHits | 요청한 키를 찾았고, CAS 값이 일치할 때 캐시가 수신한 CAS 요청 수 | 개수 | 
| CasMisses | 요청한 키를 찾지 못했을 때 캐시가 수신한 CAS 요청 수   | 개수 | 
| CmdFlush | 캐시가 수신한 flush 명령 수 | 개수 | 
| CmdGet | 캐시가 수신한 get 명령 수 | 개수 | 
| CmdSet | 캐시가 수신한 set 명령 수 | 개수 | 
| CurrConnections | 동시에 캐시에 연결된 연결 수 집계. ElastiCache는 2\$13개의 연결을 사용하여 클러스터를 모니터링합니다. 위의 내용 외에도 memcached는 노드 유형에 사용되는 스레드의 두 배와 동일한 수의 내부 연결을 만듭니다. 다양한 노드 유형에 대한 스레드 수는 해당하는 파라미터 그룹의 `Nodetype Specific Parameters`에서 확인할 수 있습니다. 총 연결 수는 클라이언트 연결, 모니터링을 위한 연결 및 위에 언급된 내부 연결의 합계입니다.  | 개수 | 
| CurrItems | 현재 캐시에 저장된 항목 수 집계 | 개수 | 
| DecrHits | 요청한 키를 찾았을 때 캐시가 수신한 decrement 요청 수 | 개수 | 
| DecrMisses | 요청한 키를 찾지 못했을 때 캐시가 수신한 decrement 요청 수 | 개수 | 
| DeleteHits | 요청한 키를 찾았을 때 캐시가 수신한 delete 요청 수 | 개수 | 
| DeleteMisses | 요청한 키를 찾지 못했을 때 캐시가 수신한 delete 요청 수 | 개수 | 
| Evictions | 새로운 쓰기 공간 확보를 위해 캐시가 제거한 만료 이전 항목 수 | 개수 | 
| GetHits | 요청한 키를 찾았을 때 캐시가 수신한 get 요청 수 | 개수 | 
| GetMisses | 요청한 키를 찾지 못했을 때 캐시가 수신한 get 요청 수 | 개수 | 
| IncrHits | 요청한 키를 찾았을 때 캐시가 수신한 increment 요청 수 | 개수 | 
| IncrMisses | 요청한 키를 찾지 못했을 때 캐시가 수신한 increment 요청 수 | 개수 | 
| Reclaimed | 새로운 쓰기 공간 확보를 위해 캐시가 제거한 만료 항목 수 | 개수 | 

Memcached 1.4.14에서는 다음과 같은 지표가 추가 제공됩니다.


| 지표  | 설명  | 단위  | 
| --- | --- | --- | 
| BytesUsedForHash | 현재 해시 테이블에서 사용 중인 바이트 수 | 바이트 | 
| CmdConfigGet | 누적된 config get 요청 수 | 개수 | 
| CmdConfigSet | 누적된 config set 요청 수 | 개수 | 
| CmdTouch | 누적된 touch 요청 수 | 개수 | 
| CurrConfig | 현재 저장된 구성 수 | 개수 | 
| EvictedUnfetched | LRU(Least Recently Used) 캐시에서 설정 이후 한 번도 사용하지 않아서 제거된 유효 항목 수 | 개수 | 
| ExpiredUnfetched | LRU에서 설정 이후 한 번도 사용하지 않아서 다시 회수된 만료 항목 수 | 개수 | 
| SlabsMoved | 이동한 슬래브 페이지 총 수 | 개수 | 
| TouchHits | 새로운 만료 시간 지정 이후 사용한 적이 있는 키 수 | 개수 | 
| TouchMisses | 사용한 적은 있지만 찾을 수 없는 항목 수 | 개수 | 

AWS/ElastiCache 네임스페이스에는 다음과 같이 계산된 캐시 수준 지표가 포함되어 있습니다.


| 지표  | 설명  | 단위  | 
| --- | --- | --- | 
| NewConnections | 캐시가 수신한 새로운 연결 수. 이는 일정 기간 동안 total\$1connections의 변화를 기록하여 memcached total\$1connections 통계로부터 파생됩니다. ElastiCache에 예약되는 연결로 인해 항상 1 이상의 값을 갖습니다. | 개수 | 
| NewItems | 캐시에 저장된 새로운 항목 수. 이는 일정 기간 동안 total\$1items의 변화를 기록하여 memcached total\$1items 통계로부터 파생됩니다. | 개수 | 
| UnusedMemory | 데이터에서 사용하지 않는 메모리 크기. 이는 limit\$1maxbytes에서 바이트를 빼 Memcached 통계 limit\$1maxbytes 및 바이트로부터 파생됩니다. 메모리는 데이터 뿐만 아니라 Memcached 오버헤드에서도 사용되기 때문에 UnusedMemory를 데이터 추가 시 사용할 수 있는 메모리 양으로 간주해서는 안 됩니다. 아직 미사용 메모리가 있는데도 불구하고 데이터를 제거해야 하는 경우가 발생할 수도 있습니다. 자세한 내용은 [Memcached 항목 메모리 사용](https://web.archive.org/web/20190422040715/https://www.deplication.net/2016/02/memcached-item-memory-usage/) 섹션을 참조하세요.  | 바이트 | 

# 어떤 지표를 모니터링해야 합니까?
<a name="CacheMetrics.WhichShouldIMonitor"></a>

다음 CloudWatch 지표는 ElastiCache 성능에 대한 좋은 정보를 제공합니다. 대부분의 경우 이러한 지표에 대해 성능 문제가 생기기 전에 수정 조치를 취할 수 있도록 CloudWatch 경보를 설정하는 것이 좋습니다.

**Topics**
+ [CPUUtilization](#metrics-cpu-utilization)
+ [EngineCPUUtilization](#metrics-engine-cpu-utilization)
+ [SwapUsage(Valkey 및 Redis OSS)](#metrics-swap-usage)
+ [Evictions](#metrics-evictions)
+ [CurrConnections](#metrics-curr-connections)
+ [메모리(Valkey 및 Redis OSS)](#metrics-memory)
+ [Network](#metrics-network)
+ [Latency](#metrics-latency)
+ [복제](#metrics-replication)
+ [트래픽 관리(Valkey 및 Redis OSS)](#traffic-management)

## CPUUtilization
<a name="metrics-cpu-utilization"></a>

이는 백분율(%)로 보고된 호스트 수준 지표입니다. 자세한 내용은 [호스트 수준 지표](CacheMetrics.HostLevel.md) 단원을 참조하십시오.

**Valkey 및 Redis OSS**

 2vCPU 이하의 작은 노드 유형에는 `CPUUtilization ` 지표를 사용하여 워크로드를 모니터링하세요.

일반적으로, 사용 가능한 CPU의 90%로 임곗값을 설정하는 것이 좋습니다. Valkey 및 Redis OSS는 모두 단일 스레드이기 때문에 실제 임계값은 노드 총용량의 일부로 계산해야 합니다. 2개의 코어가 있는 노드 유형을 사용하는 경우를 예로 들어보겠습니다. 이 경우, CPUUtilization의 임곗값은 90/2 또는 45%입니다.

사용 중인 캐시 노드에 있는 코어 개수에 따라 임계값을 결정해야 합니다. 이 임곗값을 초과하고, 주된 워크로드가 읽기 요청에서 비롯되는 경우에는 읽기 전용 복제본을 추가하여 클러스터를 스케일 아웃합니다. 주된 워크로드가 쓰기 요청에서 비롯되는 경우에는 클러스터 구성에 따라 다음을 권장합니다.
+ **Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터:** 더 큰 캐시 인스턴스 유형을 사용하여 스케일 업합니다.
+ **Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터:** 샤드를 추가하여 쓰기 워크로드를 프라이머리 노드 전체에 더 많이 배포합니다.

**작은 정보**  
호스트 수준 지표 `CPUUtilization`을 사용하는 대신, Valkey 및 Redis OSS 사용자는 Valkey 또는 Redis OSS 엔진 코어의 대한 사용률을 보고하는 지표 `EngineCPUUtilization`을 사용할 수 있습니다. 노드에서 이 지표를 사용할 수 있는지 확인하고 자세한 내용을 보려면 [Valkey 및 Redis OSS용 지표](CacheMetrics.Redis.md)를 참조하세요.

4vCPU 이상의 대규모 노드 유형에는 Valkey 또는 Redis OSS 엔진 코어의 대한 사용률을 보고하는 `EngineCPUUtilization` 지표를 사용할 수 있습니다. 노드에서 이 지표를 사용할 수 있는지 확인하고 자세한 내용을 보려면 [Redis OSS 지표](CacheMetrics.Redis.md)를 참조하세요.

**Memcached**

Memcached는 다중 스레드이므로 이 지표가 90%에 이를 수 있습니다. 이 임곗값을 초과할 경우 대형 캐시 노드 유형을 사용하여 클러스터를 스케일 업하거나 더 많은 캐시 노드를 추가하여 스케일 아웃합니다.

## EngineCPUUtilization
<a name="metrics-engine-cpu-utilization"></a>

4vCPU 이상의 대규모 노드 유형에는 Redis OSS 엔진 코어의 대한 사용률을 보고하는 `EngineCPUUtilization` 지표를 사용할 수 있습니다. 노드에서 이 지표를 사용할 수 있는지 확인하고 자세한 내용을 보려면 [Valkey 및 Redis OSS용 지표](CacheMetrics.Redis.md)를 참조하세요.

자세한 내용은 [Amazon CloudWatch를 사용하는 Amazon ElastiCache for Redis OSS 모니터링 모범 사례](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)의 **CPU** 섹션을 참조하세요.

## SwapUsage(Valkey 및 Redis OSS)
<a name="metrics-swap-usage"></a>

이는 바이트로 보고된 호스트 수준 지표입니다. 자세한 내용은 [호스트 수준 지표](CacheMetrics.HostLevel.md) 단원을 참조하십시오.

`FreeableMemory` CloudWatch 지표가 0에 가깝거나(즉, 100MB 미만) `SwapUsage` 지표가 `FreeableMemory` 지표보다 큰 경우 노드가 메모리 부족 상태임을 나타냅니다. 이러한 상황이 발생하면 다음 주제를 참조하세요.
+ [충분한 메모리를 확보하여 Valkey 또는 Redis OSS 스냅샷 생성](BestPractices.BGSAVE.md)
+ [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md)

## Evictions
<a name="metrics-evictions"></a>

이것은 캐시 엔진 지표입니다. 애플리케이션 요구 사항에 따라 이 지표에 대한 경보 임계값을 결정하는 것이 좋습니다.

Memcached를 사용 중이고 선택한 임계값을 초과하는 경우 대형 노드 유형을 사용하여 클러스터를 스케일 업하거나 더 많은 노드를 추가하여 스케일 아웃합니다.

## CurrConnections
<a name="metrics-curr-connections"></a>

이것은 캐시 엔진 지표입니다. 애플리케이션 요구 사항에 따라 이 지표에 대한 경보 임계값을 결정하는 것이 좋습니다.

*CurrConnections* 개수가 증가하는 것은 애플리케이션에 문제가 있음을 나타내며 이 문제를 해결하려면 애플리케이션 동작을 확인해야 합니다.

자세한 내용은 [Amazon CloudWatch를 사용하는 Amazon ElastiCache for Redis OSS 모니터링 모범 사례](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)의 **연결** 섹션을 참조하세요.

## 메모리(Valkey 및 Redis OSS)
<a name="metrics-memory"></a>

메모리는 Valkey 및 Redis OSS의 핵심적인 측면입니다. 데이터 손실을 방지하고 데이터 집합의 향후 증가를 수용하려면 클러스터의 메모리 사용률을 파악할 필요가 있습니다. 노드의 메모리 사용률에 대한 통계는 [INFO](https://valkey.io/commands/info) 명령의 메모리 섹션에서 확인할 수 있습니다.

자세한 내용은 [Amazon CloudWatch를 사용하는 Amazon ElastiCache for Redis OSS 모니터링 모범 사례](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)의 **메모리** 섹션을 참조하세요.

## Network
<a name="metrics-network"></a>

클러스터의 네트워크 대역폭 용량을 결정하는 요인 중 하나는 선택한 노드 유형입니다. 노드의 네트워크 용량에 대한 자세한 내용은 [Amazon ElastiCache 요금](https://aws.amazon.com/elasticache/pricing/) 섹션을 참조하세요.

자세한 내용은 [Amazon CloudWatch를 사용하는 Amazon ElastiCache for Redis OSS 모니터링 모범 사례](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)의 **네트워크** 섹션을 참조하세요.

## Latency
<a name="metrics-latency"></a>

ElastiCache for Valkey 인스턴스의 응답 시간 측정은 필요한 세분화 수준에 따라 다양한 방식으로 접근할 수 있습니다. ElastiCache for Valkey의 전체 서버 측 응답 시간에 기여하는 주요 단계는 명령 사전 처리, 명령 실행 및 명령 사후 처리입니다.

 GetTypeCmdsLatency 및 SetTypeCmdsLatency 지표와 같은 Valkey [INFO](https://valkey.io/commands/info) 명령에서 파생된 명령별 지연 시간 지표는 특히 Valkey 명령에 대한 코어 명령 로직을 실행하는 데 중점을 둡니다. 이러한 지표는 사용 사례가 데이터 구조당 명령 실행 시간 또는 집계된 지연 시간을 결정하는 경우 유용합니다.

지연 시간 지표 `SuccessfulWriteRequestLatency` 및 `SuccessfulReadRequestLatency`는 ElastiCache for Valkey 엔진이 요청에 응답하는 데 걸리는 총 시간을 측정합니다.

**참고**  
Valkey 클라이언트에서 CLIENT REPLY가 활성화된 상태에서 Valkey 파이프라이닝을 사용할 때 `SuccessfulWriteRequestLatency` 및 `SuccessfulReadRequestLatency` 지표에 대한 팽창된 값이 발생할 수 있습니다. Valkey 파이프라이닝은 각 개별 명령에 대한 응답을 기다리지 않고 한 번에 여러 명령을 실행하여 성능을 개선하는 기법입니다. 값이 부풀어 오르지 않도록 하려면 [CLIENT REPLY OFF](https://valkey.io/commands/client-reply/)를 사용하여 명령을 파이프라인하도록 Valkey 클라이언트를 구성하는 것이 좋습니다.

자세한 내용은 [Amazon CloudWatch를 사용하는 Amazon ElastiCache 모니터링 모범 사례](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)의 **대기 시간** 섹션을 참조하세요.

## 복제
<a name="metrics-replication"></a>

복제되는 데이터의 볼륨은 `ReplicationBytes` 지표를 통해 확인할 수 있습니다. 이 지표는 복제 그룹에 대한 쓰기 로드를 나타내지만 복제 상태에 대한 자세한 정보는 제공하지 않습니다. 이 목적을 위해 `ReplicationLag` 지표를 사용할 수 있습니다.

자세한 내용은 [Amazon CloudWatch를 사용하는 Amazon ElastiCache for Redis OSS 모니터링 모범 사례](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)의 **복제** 섹션을 참조하세요.

## 트래픽 관리(Valkey 및 Redis OSS)
<a name="traffic-management"></a>

 ElastiCache for Redis OSS는 Valkey 또는 Redis OSS에서 처리할 수 있는 것보다 더 많은 수신 명령이 노드로 전송되는 경우 노드에 대해 자동으로 트래픽을 관리합니다. 이는 엔진의 최적 운영 및 안정성을 유지하기 위한 것입니다.

 노드에서 트래픽이 활발하게 관리되는 경우 `TrafficManagementActive` 지표는 데이터 포인트 1을 방출합니다. 이는 노드가 제공되는 워크로드에 대해 적게 크기 조정되었음을 나타냅니다. 이 지표가 1인 상태로 오래 유지되면 클러스터를 평가하여 스케일 업 또는 스케일 아웃이 필요한지 결정하세요.

 자세한 내용은 [지표](CacheMetrics.Redis.md) 페이지의 `TrafficManagementActive` 지표를 참조하세요.

# 지표 통계 및 기간 선택
<a name="CacheMetrics.ChoosingStatisticsAndPeriods"></a>

CloudWatch에서 각 지표의 통계 및 기간을 선택하도록 허용하며 모든 조합이 유용한 것은 아닙니다. 예를 들어, CPUUtilization에 대한 Average, Minimum 및 Maximum 통계는 유용하지만 Sum 통계는 유용하지 않습니다.

모든 ElastiCache 샘플은 각 개별 캐시 노드에 대해 60초 동안 게시됩니다. 60초 기간 동안 캐시 노드 지표는 단일 샘플만 포함할 수 있습니다.

캐시 노드 지표를 검색하는 방법에 대한 자세한 내용은 [CloudWatch 클러스터 및 노드 지표 모니터링](CloudWatchMetrics.md)를 참조하세요.

# CloudWatch 클러스터 및 노드 지표 모니터링
<a name="CloudWatchMetrics"></a>

ElastiCache와 CloudWatch가 서로 통합되어 있어서 다양한 지표를 수집할 수 있습니다. CloudWatch를 사용하여 이러한 지표를 모니터링할 수 있습니다.

**참고**  
다음 예제를 실행하려면 CloudWatch 명령줄 도구가 필요합니다. CloudWatch에 대해 자세한 내용을 알아보고 개발자 도구를 다운로드하려면 [ CloudWatch 제품 페이지](https://aws.amazon.com/cloudwatch)를 참조하세요.

다음 절차에서는 CloudWatch를 사용하여 지난 시간 클러스터의 스토리지 공간 통계를 수집하는 방법을 보여줍니다.

**참고**  
아래 예제에 나온 `StartTime` 및 `EndTime` 값은 설명을 돕기 위해 지정되었습니다. 따라서 캐시 노드의 올바른 시작 및 종료 시간 값으로 대체해야 합니다.

ElastiCache 한도에 대한 자세한 내용은 ElastiCache에 대한 [AWS서비스 한도](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_elasticache)를 참조하세요.

## CloudWatch 클러스터 및 노드 지표 모니터링(콘솔)
<a name="CloudWatchMetrics.CON"></a>

 **캐시 클러스터의 CPU 사용률 통계를 수집하려면** 

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

1. 지표를 확인할 캐시 노드를 선택합니다.
**참고**  
20개보다 많은 노드를 선택하면 콘솔에 지표가 표시되지 않습니다.

   1. AWS관리 콘솔의 **캐시 클러스터** 페이지에서 하나 이상의 클러스터 이름을 클릭합니다.

      클러스터의 세부 정보 페이지가 나타납니다.

   1. 창 맨 위의 [**Nodes**] 탭을 클릭합니다.

   1. 세부 정보 창의 [**Nodes**] 탭에서 지표를 확인할 캐시 노드를 선택합니다.

      사용 가능한 CloudWatch 지표 목록이 콘솔 창 하단에 나타납니다.

   1. [**CPU Utilization**] 지표를 클릭합니다.

      선택한 지표가 표시된 CloudWatch 콘솔이 열립니다. **통계** 및 **기간** 드롭다운 목록 상자와 **시간 범위** 탭을 사용하여 표시되는 지표를 변경할 수 있습니다.

## CloudWatch CLI를 사용하여 CloudWatch 클러스터 및 노드 지표 모니터링
<a name="CloudWatchMetrics.CLI"></a>

 **캐시 클러스터의 CPU 사용률 통계를 수집하려면** 
+ Linux, macOS, Unix의 경우:

  ```
  aws cloudwatch get-metric-statistics \
      --namespace AWS/ElastiCache \
      --metric-name CPUUtilization \
      --dimensions='[{"Name":"CacheClusterId","Value":"test"},{"Name":"CacheNodeId","Value":"0001"}]' \					
      --statistics=Average \
      --start-time 2018-07-05T00:00:00 \
      --end-time 2018-07-06T00:00:00 \
      --period=3600
  ```

  Windows의 경우:

  ```
  aws cloudwatch get-metric-statistics ^
      --namespace AWS/ElastiCache ^
      --metric-name CPUUtilization ^
      --dimensions='[{"Name":"CacheClusterId","Value":"test"},{"Name":"CacheNodeId","Value":"0001"}]' ^
      --statistics=Average ^
      --start-time 2018-07-05T00:00:00 ^
      --end-time 2018-07-06T00:00:00 ^
      --period=3600
  ```

## CloudWatch API를 사용하여 CloudWatch 클러스터 및 노드 지표 모니터링
<a name="CloudWatchMetrics.API"></a>

 **캐시 클러스터의 CPU 사용률 통계를 수집하려면** 
+ CloudWatch API `GetMetricStatistics`를 다음 파라미터와 함께 호출합니다. 시작 및 종료 시간은 예제와 같이 표시되며 적절한 시작 및 종료 시간으로 대체해야 합니다.
  + `Statistics.member.1``=Average`
  + `Namespace``=AWS/ElastiCache`
  + `StartTime``=2013-07-05T00:00:00`
  + `EndTime``=2013-07-06T00:00:00`
  + `Period``=60`
  + `MeasureName``=CPUUtilization`
  + `Dimensions``=CacheClusterId=mycachecluster,CacheNodeId=0002`  
**Example**  

  ```
   1. http://monitoring.amazonaws.com/
   2.     ?Action=GetMetricStatistics
   3.     &SignatureVersion=4
   4.     &Version=2014-12-01
   5.     &StartTime=2018-07-05T00:00:00
   6.     &EndTime=2018-07-06T23:59:00
   7.     &Period=3600
   8.     &Statistics.member.1=Average
   9.     &Dimensions.member.1="CacheClusterId=mycachecluster"
  10.     &Dimensions.member.2="CacheNodeId=0002"
  11.     &Namespace=&AWS;/ElastiCache
  12.     &MeasureName=CPUUtilization						
  13.     &Timestamp=2018-07-07T17%3A48%3A21.746Z
  14.     &AWS;AccessKeyId=<&AWS; Access Key ID>
  15.     &Signature=<Signature>
  ```