본문 바로가기
ACC Ewha

ACC Study - 9 [RDS Custom for Oracle and Microsoft SQL Server]

by leko 2024. 5. 21.

RDS란? 

relational database service이다

SQL은 데이터베이스에 쿼리를 날리기위한 구조화된 언어

AWS에 의해 관리된다 

ex) postgres, mysql, mariadb, oracle, ibm db2, aurora(aws proprietary database) 

관리되는 서비스이다

데베뿐만아니라 db의 provisioning은 완전히 자동화된다

운영체제 패칭도 가능

백업이 계속 진행되어 특정시간에 맞춰 복원 = point in time restore

모니터링 대시보드

읽기성능향상을 위한 read replica

Multi AZ가 있어서 재해 복구에도 용이

인스턴스 타입을 증가시켜서 수직 읽기복제본을 수평으로 할 수 있다

EBS에 의해 저장소가 정리된다

한가지 단점: RDS 인스턴스에 SSH 액세스할 수 없다 = 내부 EC2에 접근할 수 없다

 

Storage Auto scaling

RDS가 자동을 저장소를 늘리거나 줄여서 사용자가 데이터베이스를 수동으로 제거하는 작업을 할 필요가 없다

따라서 Maximum Storage Treshold를 설정해야한다.

마지막 수정시간이후로 6시간이 지나거나 무료 저장소의 10% 미만이 할당되거나 5분이상 low storage가 지속될 경우,

자동으로 변경된다.

 

helps you increase storage on your rds db instance dynamically

maximum storage thresold 를 set 하는게 좋음

에측못하는 workloads에 유용함

 

RDS Custom

RDS 은2개의 데이터베이스인 Oracle 과 Mircosoft SQL Server를 위한 것이다.

Custom : 데이터베이스와 운영체제에 권한이 있다

내부설정과  설치 패지를 구성하고 SSH 혹은 SSM Session Manager를 이용해 EC2 인스턴스에 액세스할 수 있다

사용자지정을 수행하려면 자동화모드를 비활성하는게 좋다

데이터베이스 스냅샷을 가져오는게 좋다

 

AMAZON AURORA

Potsgres혹은 MYSQL과 호환이 가능한 드라이버가 존재하는 AWS기술 (오픈소스는 아님)

자동으로 성장한다. 10GB 시작한다면 더 저장할수록 128TB로 커진다

읽기복제본을 최대 15개까지 가질 수 있다.

Multi AZ에서 장애조치하는 것보다 더 빠르다.

3개의 AZ에 걸쳐 6개의 데이터를 저장한다

쓰기는 6개중 4개만 읽기는 6개중 3개만 필요하다.

p2p복제를 자가 복제한다. 

1개의 인스턴스가 쓰기를 한다(Master) 만약 작동이 30초안에 안되면 장애조치가 된다.

읽기복제본은 교차지역 복제를 지원한다.

 

Aurora DB Cluster

공용저장소용량은 10GB ~ 128TB까지 자동확장된다.

오로라는 writer endpoint제공한다.

Reader Endpoint는 연결 부하 분산을 돕고 모든 읽기복제본에 자동으로 연결한다.

 

 

 

부하 분산이 이루어지는 오로라 작동방식

 

 

 

Aurora 특징

자동장애 조치

백업과 복구 격리

격리와 보안

industry 산업 준수

push button scaling

서비스가 중단되지 않은 상태=zero downtime에서 자동패치 

 

Auto Scaling

만약 reader endpoint에서 요청이 많다면 Amazon Aurora 에 대한 cpu 사용량이 증가할 것이다 그러면 endpoint가 확장되어 새로운 복제본을 다루게 된다 

-> 복제본 자동 배율을 설정한다.

만약 사용자 지점 endpoint를 설정하게 된다면 reader endpoint를 사용하지않게 된다.

 

Aurora Serverless

불규칙적이고 비예측적인 workload에 유용하다

용량을 계획할 필요가 없다

비용효율적이다.

 

aurora serverless

 

Global Aurora

오로라 글로벌 데이터베이스를 설정할 수 있다

읽기전용인 부차적인 영역을 5개 설정할 수 있다.

부차적영역당 복제가 1초미만이어야 하고

최대 16개의 읽기 복제본이 있어야한다.

전세계 해당 지역 데이터베이스를 복제하는데 1초도 안걸린다.

 

Aurora ML

머신러닝서비스를 지원한다.

ex) AMazon SageMaker(ML모델 사용에서), Amazon Comprehend(감정분석에서)

 

 

 

RDS and Aurora Security

데이터를 암호화할 수 있다.

마스터와 모든 복제품은 KMS를 이용해 암호환된다.

만약 마스터가 암호화x-> 복제품도 암호화x

암호화되지않은 데이터 베이스의 스냅샷을 가져와서 암호화된 데이터베이스로 복원할 수 있다

TLS 루트인증서를 사용해야한다.

IAM역할을 이용해 암호화가능하다.

보안그룹을 이용해서 포트, ip, 특정 보안을 변경할 수 있다.

 

Amazon RDS Proxy

직접 접근해서 데이터베이스 프록시를 배포할 수 있다

용량을 관리할 필요가 없다.

 RDS(postgreSQL, mysql, mariadb, Ms SQL server) and Aurora( postgreSQL, mysq )을 지원한다.

공개적으로 접근이 불가하다. VPC내에서만 접근

람다함수는 여러개 있을 수 있어서 rds 프록시를 이용해서 람다함수 연결을 풀 수 있다.

 

private vpc내에 있는 RDS PROXY

 

 

 

Amazon ElasticCache 

redis나 Memcached가 관리되도록 도와준다

캐시: 성능은 높고 대기시간은 적은 인메모리 데이터베이스

쿼리의 결과를 가져오는데 캐시가 사용된다.

데이터베이스의 부하를 줄인다.

 

DB Cache

 

 

사용자세션을 저장해 응용프로그램을 상태 비저장상태로 만들 수 있다

 

Redis?

자동장애조치가 있는 multi az가 있다

f리드복제본이 있다.고가용성이다 

AOF지속성을 이용한 데이터 내구성이 있다

백업과 복원기능이 있다.

캐시기능을 지닌다.

redis Auth는 캐시에 대한 추가적인 보안이다. redis cluster를 만들때, password/token을 설정할 수 있다

SSL도 지원할 수 있다.

 

Memcached 특징

중요한 포트 번호

  • FTP: 21
  • SSH: 22
  • SFTP: 22 (same as SSH)
  • HTTP: 80
  • HTTPS: 443