Database in AWS
이번 장에서는 SysOps Administrator를 준비하며 AWS의 데이터베이스 서비스에 대해서 알아보도록 한다.
Amazon RDS
- RDS는 관계형 데이터베이스 서비스다.
- 관리형 DB 서비스로 SQL 언어를 사용하는 DB를 위해 제공된다.
- AWS에서 관리하는 클라우드에 데이터베이스를 생성할 수 있다.
- Postgres
- MySQL
- MariaDB
- Oracle
- Microsoft SQL Server
- Aurora (AWS 독점 데이터베이스)
RDS vs EC2 인스턴스에 DB 설치
- RDS는 관리형 서비스다.
- 자동화된 프로비저닝, OS 패치를 지원한다.
- 지속적인 백업 및 특정 타임스탬프로 복원(특정 시점 복원)을 지원한다.
- 모니터링을 위한 대시보드를 지원한다.
- 향상된 읽기 성능을 위한 읽기 복제본을 제공한다.
- DR(재해 복구)을 위한 Multi AZ 설정을 지원한다.
- 업그레이드를 위한 유지 관리 기간을 제공한다.
- 확작 기능(수직 및 수평)을 제공한다.
- EBS 지원 스토리지(gp2 또는 io1)를 제공한다.
- 관리형 서비스이므로 인스턴스에 SSH로 접속할 수 없다.
Storage Auto Scaling
- RDS DB 인스턴스의 스토리지를 동적으로 늘리는 데 도움이 된다.
- RDS가 무료로 사용하는 데이터베이스 스토리지의 부족을 감지하면 자동으로 확장된다.
- 데이터베이스 스토리지를 수동으로 확장할 필요가 없다.
- 최대로 확장할 수 있는 스토리지 임계값을 설정해야 한다.
- 아래와 같은 상황에 RDS 스토리지를 자동으로 수정한다.
- 무료 저장용량이 할당된 저장용량의 10% 미만인 경우
- 낮은 저장용량이 5분 이상 지속되는 경우
- 마지막 수정 후 6시간이 지난 경우
- 워크로드를 예측할 수 없는 애플리케이션에 유용하다.
- 모든 RDS 데이터베이스 엔진(MariaDB, MySQL, PostgreSQL, SQL Server, Oracle)을 지원한다.
Read Replica
- 최대 15개의 읽기 전용 복제본을 지원한다.
- "동일 AZ", "교차 AZ" 또는 "교차 리전"을 지원한다.
- 복제는 ASYNC이므로 읽기의 최종 일관성이 유지된다.
- 복제본을 자체 DB로 승격시킬 수 있다.
- 애플리케이션은 읽기 복제본을 활성화하기 위해 접속 URL을 변경해야 한다.
- 정상적인 부하를 처리하는 운영 데이터베이스가 있다.
- 일부 분석을 위해 보고용 애플리케이션을 실행해야 한다.
- 읽기 전용 복제본을 생성하여 그곳에서 새로운 워크로드를 실행한다.
- 운영 데이터베이스는 분석용 애플리케이션으로 인해 영향을 받지 않는다.
- 읽기 전용 복제본은 "SELECT"만 가능하며, "INSERT", "UPDATE", "DELETE"를 지원하지 않는다.
- AWS에서는 데이터가 한 AZ에서 다른 AZ로 이동할 때 네트워크 비용이 발생한다.
- 동일한 리전 & 다른 AZ인 경우 비용이 발생하지 않고, 다른 리전인 경우 전송 비용이 발생한다.
Multi AZ (Disaster Recovery)
- 동기식으로 복제가 이루어진다.
- 동일한 DNS 이름을 사용하므로 장애 발생시 애플리케이션 코드 수정없이 "standby" 상태의 인스턴스를 사용할 수 있다.
- 가용성을 향상시킬 수 있다.
- AZ 장애, 네트워크 손실, 인스턴스 장애 시 자동으로 장애 조치를 실행한다.
- 앱에 수동으로 개입할 필요가 없다.
- 성능 향상을 위한 확장 용도로 사용되지 않는다.
- 읽기 전용 복제본은 재해 복구(DR)을 위해 다중 AZ로 설정된다.
단일 AZ에서 다중 AZ로 전환
- DB 정지가 불필요하므로 다운타임이 0이다.
- 데이터베이스에 대해 "수정"을 클릭하기만 하면 된다.
- 내부적으로 아래의 단계가 발생한다.
- 기존 데이터베이스에서 스냅샷이 생성된다.
- 새로운 AZ에서 스냅샷을 기반으로 복원이 이루어진다.
- 두 데이터베이스 간에 동기화가 설정된다.
장애 조치 조건
- 다중 가용지역인 경우 아래와 같은 상황에서 장애 조치가 이루어진다.
- 기본(Primary) DB 인스턴스
- 실패
- OS 소프트웨어 패치 진행
- 네트워크 단절로 인한 접속 불가
- DB 인스턴스 유형 변경과 같은 수정 작업
- 부하가 늘고 무응답
- 근본적인 스토리지 오류
- 가용 영역 장애
- 장애 조치가 포함된 재부팅을 사용하여 DB 인스턴스의 수동 장애 조치가 시작
RDS Proxy
Lambda
- 기본적으로 Lambda Function은 AWS 소유의 VPC에서 실행된다.
- 사용자의 VPC에 포함되는 리소스인 RDS, ElastiCache, Internal ELB 등에는 접근할 수 없다.
- RDS를 Public Subnet에 생성하여 문제를 해결할 수 있지만 보안상 권장되지 않는 방법이다.
- Lambda의 경우 VPC ID, Subnet, Security Group을 정의해야 한다.
- Lambda는 서브넷에 ENI(Elastic Network Interface)를 생성하고 이 ENI를 통해 직접 연결을 설정한다.
AWSLambdaVPCAccessExecutionRole
역할 추가가 필요하다.
Lambda를 위한 RDS Proxy
- RDS와 함께 Lambda Function을 사용하면 데이터베이스 연결을 열고 유지한다.
- Lambda Function이 계속 추가되면 연결 가능한 Connection이 고갈되어
TooManyConnections
오류가 발생할 수 있다. - RDS Proxy를 사용하면 유휴 연결(idle connection) 정리 및 연결 풀(connection pool)을 처리하는 코드가 더 이상 필요하지 않다.
- IAM 인증 또는 DB 인증, Auto Scaling을 지원한다.
- Lambda Function은 프록시에 연결되어 있어야 한다.
- Public Proxy => Public Lambda
- Private Proxy => VPC의 Lambda
DB Parameter Group
- 파라미터 그룹을 사용하여 DB 엔진을 구성할 수 있다.
- 동적 매개변수가 즉시 적용된다.
- 인스턴스 재부팅 후 정적 매개변수가 적용된다.
- DB와 연결된 파라미터 그룹을 수정할 수 있다. (재부팅 필요)
- DB 기술에 대한 파라미터 목록은 벤더사의 공식문서를 확인해야 한다.
- 아래는 반드시 기억해야 하는 매개변수다.
- PostgreSQL / SQL Server:
rds.force_ssl=
=> SSL 연결을 강제한다. - MySQL / MariaDB:
require_secure_transport=1
=> SSL 연결을 강제한다.
- PostgreSQL / SQL Server:
Backup vs Snapshot
Backup
- 백업은 "지속적"이며 특정 시점 복구가 가능하다.
- 유지 관리 기간 동안 백업이 수행된다.
- DB 인스턴스를 삭제해도 자동 백업을 유지할 수 있다.
- 백업된 데이터는 0~35일 사이로 보관 기간을 설정할 수 있다.
- 백업을 비활성화하려면 보관 기간을 0으로 설정하면 된다.
Snapshot
- 스냅샷은 IO 작업을 수행하며 몇 초에서 몇 분까지 데이터베이스를 중지할 수 있다.
- 다중 AZ DB에서 생성된 스냅샷은 마스터에는 영향을 미치지 않고 "standby"에만 영향을 미친다.
- 스냅샷은 첫 번째 스냅샷 이후 변경사항이 증분된다.
- DB 스냅샷을 복사 및 공유할 수 있다.
- 수동으로 생성한 스냅샷은 만료되어 삭제되지 않는다.
- DB 삭제 시 "최종 스냅샷"을 생성할 수 있다.
- 자동 백업 또는 DB 스냅샷에서 복원하면 새로운 DB 인스턴스가 생성된다.
Snapshot 공유
- 수동 스냅샷: AWS 계정간에 공유가 가능하다.
- 자동 스냅샷: 공유할 수 없으며 먼저 복사한다.
- 암호화되지 않은 스냅샷과 고객 관리 키로 암호화된 스냅샷만 공유할 수 있다.
- 암호화된 스냅샷을 공유하는 경우 암호화에 사용된 고객 관리 키도 공유해야 한다.
Event & Event Subscription
- RDS는 아래와 관련된 이벤트를 기록한다.
- DB 인스턴스
- 스냅샷
- 파라미터 그룹, 보안 그룹 등..
- 예를 들어, DB 상태가 "Pending"에서 "Running"으로 변경된 경우 상태 변경 이벤트를 기록한다.
- RDS 이벤트 구독
- SNS를 이용하여 이벤트 발생 시 알림을 받을 이벤트를 구독한다.
- 이벤트 소스(인스턴스, 보안 그룹 등..) 및 이벤트 카테고리(생성, 장애 조치 등)를 저장한다.
- RDS는 EventBridge에 이벤트를 전달한다.
CloudWatch와 통합
- CloudWatch에는 아래와 같이 RDS와 관련되어 수집되는 지표들이 있다. (hypervisor에서 수집)
DatabaseConnections
SwapUsage
ReadIOPS
/WriteIOPS
ReadLatency
/WriteLatency
ReadThroughPut
/WriteThroughPut
DiskQueueDepth
FreeStorageSpace
- 강화된 모니터링 (DB 인스턴스의 에이전트에서 수집)
- 다양한 프로세스나 스레드가 CPU를 어떻게 사용하는지 확인해야 할 때 유용하다.
- 50개 이상의 새로운 CPU, 메모리, 파일 시스템 및 디스크 I/O 지표에 액세스할 수 있다.
Performance Insight
- 데이터베이스 성능을 시각화하고 데이터베이스 성능에 영향을 미치는 모든 문제를 분석한다.
- 성능 개선 도우미 대시보드를 사용하면 데이터베이스 로드를 시각화하고 로드를 필터링할 수 있다.
- By Waits => 병목 현상이 발생한 리소스(CPU, IO, Lock 등..)을 찾는다.
- By SQL statements => 문제가 되는 SQL 문을 찾는다.
- By Hosts => DB를 가장 많이 사용하고 있는 서버를 찾는다.
- By Users => DB를 가장 많이 사용하고 있는 사용자를 찾는다.
- DBLoad: DB 엔진의 활성 세션 수
- 데이터베이스에 부하를 주는 SQL 쿼리를 볼 수 있다.
- 아래는 여러 메트릭을 확인하는 예시이다.
- 아래와 같이 쿼리 실행 시간을 분석하여 튜닝이 필요한 쿼리를 파악할 수 있다.
- 아래와 같이 사용자 별로 사용량을 분석할 수 있다.
Amazon Aurora
- Aurora는 AWS의 독점 기술이며 오픈 소스가 아니다.
- PostgreSQL과 MySQL은 모두 AuroraDB로 지원되므로 드라이버가 Aurora를 PostgreSQL, MySQL로 인식하고 작동한다.
- Aurora는 "AWS 클라우드에 최적화"되어 있으며 RDS의 MySQL보다 5배, RDS의 PostgreSQL보다 3배 이상 향상된 성능을 제공한다.
- Aurora 스토리지는 10GB 단위로 최대 128TB까지 자동으로 증가한다.
- Aurora는 최대 15개의 복제본을 보유할 수 있으며 복제 프로세스는 MySQL보다 빠르다.(10ms 미만의 복제 지연)
- Aurora의 장애 조치는 즉각적으로 이루어지며, HA(고가용성)는 기본적으로 제공된다.
- Aurora는 RDS보다 비용이 더 높지만(20% 정도 높음) 더 효율적이다.
고가용성과 읽기 확장
- 3개의 가용지역에 걸쳐 6개의 복제본이 생성된다.
- 쓰기에는 6개의 복제본 중 4개가 필요하다.
- 읽기에는 6개의 복제본 중 3개가 필요하다.
- peer-to-peer 복제를 통해서 자가 치유를 지원한다.
- 스토리지는 수백 개의 볼륨에 걸쳐 스트라이핑된다.
- 하나의 Aurora 인스턴스가 쓰기를 수행한다.(마스터)
- 장애가 발생하는 경우 30초 이내에 마스터에 대한 자동 장애 복구가 실행된다.
- 마스터 + 최대 15개의 Aurora 읽기 전용 복제본이 읽기를 제공한다.
- 기본적으로 지역간 복제를 지원한다.
- Aurora는 Writer Endpoint를 제공하며 항상 마스터 인스턴스를 가르키도록 되어 있다.
- 마스터 인스턴스에 문제가 발생하는 경우 자동으로 읽기 전용 복제본으로 연결하기 때문에 즉각적으로 장애 대응이 가능하다.
- 읽기 전용인 Reader Endpoint를 제공하며 읽기 전용 복제본은 최대 15개까지 지원한다.
- 부하 분산은 연결(Connection) 수준에서 이루어지며, 실행되는 SQL 단위가 아니다.
특징
- 자동 장애 조치를 제공한다.
- 백업 및 복구를 제공한다.
- 격리 및 보안을 제공한다.
- 업계의 규정을 준수한다.
- Push-button 스케일링을 지원한다.
- 다운타임 없는 자동 패치를 지원한다.
- 고급 모니터링을 지원한다.
- 규칙적인 유지 보수를 지원한다.
- Backtrack: 백업을 사용하지 않고 언제든지 데이터를 복원한다.
Backup & Backtracking & Restore
- 자동 백업(Automatic Backup)
- 보관기간 1~35일(비활성화가 불가)
- PITR, 현재 시간으로부터 5분 이내에 DB 클러스터를 복원한다.
- 새로운 DB 클러스터로 복원한다.
- 역추적(Backtracking)
- DB 클러스터를 시간에 맞춰 앞뒤로 되감을 수 있다.(최대 72시간)
- 새 DB클러스터를 생성하지 않고 현재 위치에서 복원한다.
- Aurora MySQL만 지원한다.
- 복제(Cloning)
- 원래 클러스터와 동일한 DB 클러스터 볼륨을 사용하는 새 DB 클러스터를 생성한다.
- Copy-On-Write 프로토콜을 사용한다.
데이터의 원본/단일 복사본을 사용하고 데이터가 변경된 경우에만 스토리지를 할당한다. - 운영 데이터를 활용하여 개발 환경을 구축하는 등의 작업에 사용된다.
SysOps가 알아야 하는 Aurora 상식
- 각각의 읽기 전용 복제본에 우선순위 계층(0 ~ 15)을 연결할 수 있다.
- 장애 조치 우선순위를 제어한다.
- RDS는 우선 순위가 가장 높은(가장 낮은 번호) 읽기 전용 복제본을 승격시킨다.
- 복제본의 우선 순위가 동일한 경우 RDS는 크기가 가장 큰 읽기 전용 복제본을 승격시킨다.
- 복제본의 우선순위와 크기가 동일한 경우 RDS는 임의의 복제본을 승격시킨다.
- RDS MySQL 스냅샷을 사용하여 Aurora MySQL Cluster로 마이그레이션할 수 있다.
CloudWatch Metric
AuroraReplicaLag
: 기본 인스턴스에서 업데이트를 복제할 때 지연되는 정도AuroraReplicaLagMaximum
: 클러스터에 있는 모든 DB 인스턴스의 지연 시간 중 최대값AuroraReplicaLagMinimum
: 클러스터에 있는 모든 DB 인스턴스의 지연 시간 중 최소값- 복제본 지연 시간이 높으면 사용자는 데이터를 가져오는 복제본에 따라 다른 결과를 볼 수 있다.(최종 일관성)
DatabaseConnections
: DB 인스턴스에 대한 현재 연결 수InsertLatency
: Insert 작업의 평균 지속 시간
Security
- 저장 시 암호화
- AWS KMS를 사용한 데이터베이스 마스터 및 복제본 암호화 - 시작 시점에 정의되어 있어야 햔다.
- 마스터가 암호화되지 않으면 읽기 전용 복제본은 암호화할 수 없다.
- 암호화되지 않은 데이터베이스를 암호화하려면 DB 스냅샷을 거쳐 암호화된 상태로 복원해야 한다.
- In-flight encryption: "TLS-ready"가 기본값으로, 클라이언트 측 AWS TLS 루트 인증서를 사용한다.
- IAM Authentication: 데이터베이스에 접속할 때, 사용자/비밀번호 입력 대신 사용할 IAM 역할
- Security Group: RDS/Aurora에 대한 네트워크 액세스 제어
- RDS Custom을 제외하고는 SSH를 사용할 수 없다.
- 감사(Audit) 로그를 활성화하고 CloudWatch Logs로 전송하여 더 오랜 기간 보관할 수 있다.
Amazon ElastiCache
- 관계형 데이터베이스가 RDS로 제공되는 것과 같은 방식이다.
- ElastiCache는 관리형 Redis 또는 관리형 Memcached를 지원한다.
- 캐시는 성능이 매우 뛰어나고 대기 시간이 짧은 인메모리 데이터베이스다.
- 읽기 집약적인 워크로드에 대한 데이터베이스의 부하를 줄이는 데 도움이 된다.
- 애플리케이션을 Stateless로 만드는 데 도움이 된다.
- AWS는 OS 유지 관리/패치 적용, 최적화, 설정, 구성, 모니터링, 장애 복구 및 백업을 담당한다.
- ElastiCache를 도입하기 위해서는 애플리케이션 코드의 변경이 많이 필요하다.
Solution Architecture - DB Cache
- 애플리케이션은 ElastiCache를 쿼리하고, 사용할 데이터가 없는 경우(Cache miss) RDS에서 가져와서 ElastiCache에 저장한다.
- RDS의 부하를 완화하는 데 도움이 된다.
- 캐시에는 최신 데이터만 사용되도록 하는 무효화 전략이 있어야 한다.
Solution Architecture - User Session Store
- 사용자는 분산된 애플리케이션들 중 하나에 로그인을 시도한다.
- 애플리케이션은 ElastiCache에 세션 데이터를 저장한다.
- 사용자가 애플리케이션의 다른 인스턴스를 실행한다.
- 인스턴스가 ElastiCache에 저장되어 있는 정보를 조회하고 사용자가 이미 로그인되어 있는 것으로 판단한다.
Redis vs Memcached
- Redis
- 다중 AZ를 통해 자동 장애 조치를 지원한다.
- 읽기를 확장하고 고가용성을 제공하는 읽기 전용 복제본이 있다.
- AOF 지속성을 이용하여 데이터 내구성을 항샹시킨다.
- 백업 및 복원 기능을 제공한다.
- Set과 정렬된(Sorted) Set을 지원한다.
- Memcached
- 데이터 분할을 위한 다중 노드를 지원한다. (Sharding)
- 고가용성을 지원하지 않는다.
- 데이터 지속성을 지원하지 않는다.
- 백업과 복구를 지원하지 않는다.
- Multi-Threaded 기반의 아키텍처로 구성되어 있다.
복제: 클러스터 모드 비활성화
- 기본 노드는 1개, 최대 5개의 복제본을 가질 수 있다.
- 비동기식 복제가 이루어진다.
- 기본 노드는 읽기/쓰기에 사용된다.
- 기본 노드를 제외한 노드들은 읽기 전용으로 사용된다.
- 하나의 샤드에 있는, 모든 노드는 모든 데이터를 가지고 있다.
- 노드 장애 시 데이터 손실을 방지할 수 있다.
- 장애 조치를 위해 기본적으로 다중 AZ가 활성화된다.
- 읽기 성능 확장에 도움이 된다.
복제: 클러스터 모드 활성화
- 데이터가 여러 샤드로 분할되어 쓰기 확장에 도움이 된다.
- 각 샤드에는 기본 노드와 최대 5개의 복제본 노드가 있습니다. (클러스터 비활성화와 동일)
- 다중 AZ 기능이 제공된다.
- 클러스터당 최대 500개의 노드를 가질 수 있다.
- 단일 마스터 = 500개의 샤드
- 1개의 마스터 & 1개의 복제본 = 250개의 샤드
- 1개의 마스터 & 5개의 복제본 = 83개의 샤드
Redis 확장: 클러스터 모드 비활성화
- Horizontal:
- 읽기 전용 복제본을 추가/제거하여 수평 확장/축소한다. (최대 5개의 복제본)
- Vertical:
- 더 크거나 더 작은 노드 유형으로 확장/축소할 수 있다.
- ElastiCache는 내부적으로 새 노드 그룹을 생성한 후 데이터 복제 및 DNS 업데이트를 수행한다.
Redis 확장: 클러스터 모드 활성화
- 두 가지 모드가 있다.
- Online Scaling: 확장 프로세스 중에 요청을 계속 처리한다. (다운타임이 없고, 성능 저하 없음)
- Offline Scaling: 확장 프로세스(백업 및 복원) 중에는 요청을 처리할 수 없다.
추가 구성이 지원된다.(노드 유형 변경, 엔진 버전 업그레이드 등)
- Horizontal: 리샤딩 및 샤드 재분배
- Resharding: 샤드를 추가/제거하여 규모를 확장/축소한다.
- Shard Rebalancing: 샤드 간에 키스페이스를 최대한 균등하게 분배한다.
- 온라인 및 오프라인 확장을 지원한다.
- Vertical: 읽기/쓰기 용량 변경
- 더 크거나 더 작은 노드 유형으로 확장/축소한다.
- 온라인 확장만 지원한다.
Redis Auto Scaling
- 원하는 샤드 또는 복제본을 자동으로 늘리거나 줄인다.
- 대상 추적 및 예약된 확장 정책을 모두 지원한다.
- 클러스터 모드가 활성화된 Redis에서만 작동한다.
Redis Connection Endpoint
- Standalone Node
- 읽기 및 쓰기 작업을 위한 하나의 엔드포인트
- Cluster Mode Disabled Cluster
- Primary Endpoint: 모든 쓰기 작업용
- Reader Endpoint: 모든 읽기 전용 복제본에 읽기 작업을 균등하게 분할한다.
- Node Endpoint: 읽기 작업용
- Cluster Mode Enabled Cluster
- Configuration Endpoint: 클러스터 모드 활성화 명령을 지원하는 모든 읽기/쓰기 작업용
- Node Endpoint: 읽기 작업용
Redis 모니터링을 위한 Metric
Evictions
: 새로운 쓰기 작업을 위한 공간을 허용하기 위해 캐시가 제거한 만료되지 않은 항목의 수다. (메모리가 초과된 경우)- 만료된 항목을 제거하는 제거 정책을 선택한다. (예. LRU(Least Recently Used) 항목 제거)
- 더 큰 노드 유형(더 많은 메모리)으로 확장하거나 더 많은 노드를 추가하여 수평 확장한다.
CPUUtilization
: 전체 호스트의 CPU 사용률을 모니터링한다.- 더 큰 노드 유형(더 많은 메모리)으로 확장하거나 더 많은 노드를 추가하여 수평 확장한다.
SwapUsage
: 50MB를 초과할 수 없다.- 예약된 메모리가 충분히 구성되었는지 확인해야 한다.
CurrConnections
: 동시 및 활성 연결 수- 문제 해결을 위해 애플리케이션 동작을 조사한다.
DatabaseMemoryUsagePercentage
: 메모리 사용률(%)NetworkByteIn/Out
&NetworkPacketsIn/Out
ReplicationBytes
: 복제되는 데이터의 양ReplicationLag
: 복제본이 기본 노드에서 얼마나 뒤처져 있는 정도
Memcached Scaling
- Memcached 클러스터는 1 ~ 40개의 노드를 가질 수 있다.(Soft Limit)
- Horizontal:
- 클러스터에서 노드 추가/제거
- 자동 검색을 통해 앱에서 노드를 찾을 수 있다.
- Vertical:
- 더 크거나 더 작은 노드 유형으로 확장/축소
- 확장 프로세스
- 새 노드 유형으로 새로운 클러스터를 생성한다.
- 새 클러스터의 엔드포인트를 사용하도록 애플리케이션을 업데이트한다.
- 기존 클러스터를 삭제한다.
- Memcached의 클러스터와 노드는 캐싱된 데이터가 없는 상태로 시작되므로 애플리케이션에서 데이터를 채워주어야 한다.
Memcached Auto Discovery
- 일반적으로 DNS 엔드포인트를 사용하여 클러스터의 개별 캐시 노드에 수동으로 연결해야 한다.
- "Auto Discovery"은 모든 노드를 자동으로 식별한다.
- 클러스터의 모든 캐시 노드는 다른 모든 노드에 대한 메타데이터 목록을 유지한다.
- 고객 관점에서 원활하게 이루어진다.
Memcached 모니터링을 위한 Metric
Evictions
: 새로운 쓰기 작업을 위한 공간을 허용하기 위해 캐시가 제거한 만료되지 않은 항목의 수다. (메모리가 초과된 경우)- 만료된 항목을 제거하는 제거 정책을 선택한다. (예. LRU(Least Recently Used) 항목 제거)
- 더 큰 노드 유형(더 많은 메모리)으로 확장하거나 더 많은 노드를 추가하여 수평 확장한다.
CPUUtilization
- 더 큰 노드 유형으로 수직 확장하거나 더 많은 노드를 추가하여 수평 확장한다.
SwapUsage
: 50MB를 초과할 수 없다.CurrConnections
: 동시 및 활성 연결 수- 문제 해결을 위하여 애플리케이션 동작을 조사한다.
FreeableMemory
: 호스트의 여유 메모리 양
'Infrastructure > Certificate' 카테고리의 다른 글
[SOA] Account Management (0) | 2023.11.17 |
---|---|
[SOA] Monitoring, Audit, Performance (0) | 2023.11.16 |
[SOA] CloudFront (0) | 2023.11.10 |
[SOA] Advanced Storage (0) | 2023.11.10 |
[SOA] S3 Security (0) | 2023.11.10 |