AWS_SAA_준비(27)

Tyun_Record·2023년 8월 2일

Amazon ElastiCache

  • RDS와 동일한 방식으로 관계형 데이터베이스 관리
  • Redis 또는 Memcahced와 같은 캐시 기술 관리
  • 캐시란?
    • 높은 성능과 낮은 지연 시간을 가진 인 메모리 데이터베이스
  • 일래스틱 캐시를 사용하면 읽기 집약적인 워크로드 부하를 줄이는데 도움이 됨
  • 애플리케이션 상태를 Amazon 일래스틱 캐시에 저장해 Sataeless 상태로 만들 수 있도록 함
  • 운영 체제 유지, 패치, 최적화, 설정, 구성 모니터링, 장애 회복, 백업 수행
  • 일라스틱캐시를 사용하여 어려운 코드 변경 수행

ElastiCache Solution Architecture

DB Cache

  • 캐시 히트 ( Cahe hit )
    • 쿼리가 생성 되었는지, 생성되어 일라스틱 캐시에 저장됐는지 확인하는 것
  • 캐시 미스 ( Cache miss )
    • 데이터베이스에서 데이터를 가져와 데이터베이스에서 읽음
    • 동일한 쿼리가 발생하는 다른 애플리케이션이나 인스턴스에서는 데이터를 캐시에 다시 기록하여 다음에는 같은 쿼리로 캐시 히트를 얻도록 함
    • 이는 RDS 데이터베이스에서 부하를 줄이는데 도움을 줌
  • 데이터 캐시를 저장하기 때문에 캐시 무효화 전략이 있어야 함
    • 가장 최근 데이터만 사용하는지 확인해야 함

User Session Store

  • 사용자가 애플리케이션의 모든 계정에 로그인하면 애플리케이션이 일라스틱 캐시에 세션 데이터를 기록하는 것
  • 사용자가 애플리케이션의 다른 인스턴스로 리디렉션 되면 애플리케이션은 일라스틱 캐시에서 직접 세션 캐시 검색 가능
  • 따라서 사용자는 계속 로그인한 상태로 한 번 더 로그인 할 필요가 없음

Redis VS Memcahced

  • Redis

    • 자동 장애 조치로 다중 AZ를 수행하는 기술
    • 읽기 전용 복제본은 읽기 스케일링에 사용되며 가용성이 높음
    • RDS와 조금 비슷..?
    • 지속성으로 인해 데이터 내구성도 있음
    • 백업과 복원 기능이 있음
  • Memcahed

    • 데이터를 손실할 수 없는 단순한 분산 캐시
    • 데이터 분할에 다중 노드를 사용, 샤딩 ( Sharding ) 이라고 함
    • 가용성이 높지 않음
    • 복제 없음
    • 지속적인 캐시가 아님
    • 백업과 복원 기능도 없음
    • 다중 스레드 아키텍처로 몇몇 샤딩과 함께 캐시에서 실행되는 여러 인스턴스가 있음

ElastiCache 실습

Elasticahe > Get started > 클러스터 선택 > 클러스터 설정

  • 코드로 작성한 애플리케이션이 있다면 기본 엔드포인트로 사용 가능
  • 읽기 복제라면 캐시에서 리더 엔드포인트로 읽기 가능
  • 당장 Redis 캐시에 연결하기 위해서는 코드 작성이 필요함

ElastiCahce - Cache Security

  • 일래스틱 캐시의 모든 캐시는 IAM 인증 지원 X
    • AWS API 수준 보안에서만 사용
    • 캐시 생성, 삭제 같은 종류의 작업만..!
  • Redis AUTH
    • 레디스를 인증하기위해 사용
    • 레디스 클러스터를 생성할 때 비밀번호나 토큰 설정 가능
    • 보안 그룹에 대한 추가적인 보안 수준
    • 전송 중 암호화를 위해 SSL 보안 지원
  • Memcached
    • 더 높은 수준인 SASL 기반 인증 지원

Patterns for ElastiCache

  • Lazy Loading
    • 모든 읽기 데이터가 캐시되고 데이터가 캐시에서 부실해질 수 있음
  • Write Through
    • 데이터가 오래된 데이터가 없는 데이터베이스에 기록될 때마다 캐시에 데이터를 추가하거나 업데이트 하는 것
  • Session Store
    • 일래스티 캐시를 세션 저장소로 사용 가능, Time To Live( TTL ) 속성으로 세션을 만료 시킬 수 있음

Redis Use Case

  • 레디스는 고유성과 요소 순서를 모두 보장하는 정렬된 집합 기능이 있음 ( Redis Sorted Sets )
  • 요소가 추가될 때마다 실시간으로 순위가 매겨진 다음 올바른 순서로 추가됨
  • 레디스로 Amazon 일래스티 캐시와 통신할 때 클라이언트는 실시간 리더보드에 엑세스 가능
  • 레디스의 정렬된 집합 활용 가능

표준 포트 목록

주요 포트:

FTP: 21

SSH: 22

SFTP: 22 (SSH와 같음)

HTTP: 80

HTTPS: 443

vs RDS 데이터베이스 포트:

PostgreSQL: 5432

MySQL: 3306

Oracle RDS: 1521

MSSQL Server: 1433

MariaDB: 3306 (MySQL과 같음)

Aurora: 5432 (PostgreSQL와 호환될 경우) 또는 3306 (MySQL과 호환될 경우)

1개의 댓글

comment-user-thumbnail
2023년 8월 2일

정리가 잘 된 글이네요. 도움이 됐습니다.

답글 달기