땡구리
땡굴 탱굴
땡구리
전체 방문자
오늘
어제
  • 분류 전체보기 (42)
    • AWS (5)
    • 자격증 후기 (8)
    • 백준 풀이 (17)
    • Vue2 (1)
    • Python (0)
    • Elasticsearch (0)
    • FastAPI (0)
    • MySQL (0)
    • 짜잘정보 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개선 가능

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땡구리

땡굴 탱굴

AWS

RDS 와 Elasticache

2023. 1. 20. 21:05

AWS 에서 DB 를 사용하고 싶을 때, EC2 에 MySQL 과 같은 서비스를 직접 올릴 수도 있겠지만,

AWS 에서 관리하는 RDS(Relational Database Service) 나 DynamoDB 등을 이용할 수 있다.

그리고 RDS 를 위한 Cache 로 Elesticache 를 사용할 수 있다.

 

RDS

RDS 는 "managed" service 라서 provisioning, patching, backup 등을 AWS 에서 기본적으로 관리한다.

대신 SSH 연결은 할 수 없다.

 

PostgreSQL, MySQL, MSSQL, Oracle, Aurora 를 사용할 수 있다.

 

Storage Auto Scaling

  • Maximum Storage Threshold 를 정해두고 자동으로 storage 를 늘리는 기능이다.
  • 남은 용량이 10% 이하이고, 5분동안 그 상태가 변하지 않았고, 최근 6시간동안 Scaling 이 발생한 적 없으면 작동한다.

 

Read Replica

  • 최대 5개의 Read Replica (Aurora 제외) 를 만들 수 있다.
  • 3가지의 분산 형태가 있다.
    • Within AZ
      하나의 AZ 에 Replica 를 모아두는 형태이다.
    • Cross AZ
      여러 AZ 에 Replica 를 분산시키는 형태이다.
      Managed Service 의 경우 AZ 단위의 통신에 비용이 발생하지 않는다.
    • Cross Region
      여러 Region 에 Replica 를 분산시키는 형태이다.
      Replication Fee 가 발생하는 유일한 형태이다.

 

Multi AZ

  • Replica 를 다른 AZ 에 유지하다가 Failover 를 위해 사용한다.
  • Availability 는 좋아지나 Scale 이 되지는 않는다.
  • Snapshot 를 뜨고 Sync Replication 으로 데이터를 맞춘다.
  • Read Replica 를 Failover 를 위해 사용할 수도 있다.

 

Aurora

Aurora 는 MySQL, PostgreSQL 과 호환 가능하도록 AWS 가 개발한 DB 이다.

  • 10GB 단위로 128TB 까지 Storage 가 자동으로 늘어난다.
  • 최대 15개의 Replica 를 만들 수 있다.
    • Connection Level 의 LB 가 있다.
    • DB 접근에 사용할 수 있는 Writer/Reader Endpoint 가 존재한다.
  • 6개의 Copies 를 3 AZ 에 분산하여 HA(High Availability) 를 구성한다.
    • Read 에 3 개의 Copies, Write 에 4 개의 Copies 만 있으면 된다.
    • Self Healing 기능으로 copy 간 P2P 통신을 사용해 데이터 오염을 없앤다.

Security

  • At-rest Encryption + KMS
    • 처음 시작할 때 세팅하거나 나중에 Snapshot 으로 재생성해야한다.
  • In-flight Encryption 
  • IAM Authentication
    • DB 연결을 IAM Role 로 대체.
  • SG 사용
  • SSH 사용불가(RDS Custom 은 예외)
  • Audit Log (query level) 설정.
    • 더 오랜시간 보관하려면 CloudWatch Log 쓰면 된다.

 

 

 

Elasticache

AWS "Managed" Redis, Memcached 이다.

DB Cache 나 Session Store 를 위해 쓰인다.

Redis 와 Memcached 모두 In-memory data store 인데, Redis 는 HA, Backup 등의 기능이 있고 Memcached 는 multi-threaded 를 위한 단순 분산 캐시용이다.

요걸 쓰려면 Application code 를 쫌 많이 바꿔야한다.

 

응용

  • DB Cache
  • Session Store
    - Application 에서 Session 을 관리하지 않고 Elasticache 에게 Session 을 관리하도록 하는 것.

Strategies

Elasticache 를 잘 쓰기 위한 일반적인 전략이 몇몇 있다.

  • Lazy Loading / Cache-Aside / Lazy Population
    - 컴퓨터의 메모리처럼 Elasticache 를 먼저 접근하고 Cache Miss 면 DB 에 접근하고 Cache 에 정보를 쓰는 방법이다.
  • Write Through
    - Write 하는 행위를 DB 와 Elasticache 에 다 하는 방법이다.
  • Cache Eviction and TTL(Time To Live)
    - 메모리가 다 차거나 TTL 이 지나면 Cache 의 데이터를 Eviction 한다.

Cluster Mode

  • Disabled
    • 1 Primary, 5 Read Only Replicas
    • One Shard
  • Enabled
    • Total 500 Nodes
    • Multi Shard
    • Data Partitioned
저작자표시 (새창열림)

'AWS' 카테고리의 다른 글

ELB 와 ASG (작성중)  (0) 2023.01.19
EBS 와 EFS  (0) 2023.01.14
EC2 기초  (0) 2023.01.12
Cloud 기본과 IAM  (0) 2023.01.11
    'AWS' 카테고리의 다른 글
    • ELB 와 ASG (작성중)
    • EBS 와 EFS
    • EC2 기초
    • Cloud 기본과 IAM
    땡구리
    땡구리
    잊는게 무서운 겁쟁이

    티스토리툴바