AWS_SAA_준비(26)

Tyun_Record·2023년 8월 1일
0

AWS SAA 준비

목록 보기
30/48

Amazon Aurora

  • 시험에 자주 나온다..!!
  • AWS 고유 기술 ( not open sourced )
  • Postgres 및 MySQL과 호환됨
  • 클라우드에 최적화 되어 있음
  • RDS의 MySQL보다 5배 좋은 성능
  • RDS의 Postgres보다 3배 좋은 성능
  • Aurora의 스토리지는 자동으로 확장
  • 읽기 전용 복제본 15개까지 가능 ( MySQL은 최대 5개 )
  • 비용이 RDS에 비해 20% 정도 높지만 스케일링 측면에서 훨씬 효율적
  • 높은 가용성과 읽기 스케일링
    • 3개의 AZ에 걸쳐 기록할 때마다 6개의 사본 저장
    • Write에는 6개 사본 중 4개만 있으면 됨
    • Read에는 6개 사본 중 3개만 있으면 됨
  • 자가 복구 기능
    • 일부 데이터가 손상되거나 문제가 있으면 백엔드에서 P2P 복제를 통한 자가 복구 진행
    • 수 백개의 볼륨을 사용함
  • 쓰기를 받는 인스턴스는 하나 뿐 ( 마스터 인스턴스 )
  • 마스터가 작동하지 않으면 평균 30초 이내로 장애 조치 시작
  • 마스터에 문제가 생기면 읽기 전용 복제본 중 하나가 마스터가 되어 대체
  • 리전 간 복제를 지원함 ( Global Aurora 생성 가능 )
  • Aurora 작동 방식
  • 라이터(Writer) 엔드폰인트를 통해 DNS 이름으로 항상 마스터를 가리킴
  • 자동 스케일링을 통해 절적한 수의 읽기 전용 복제본 존재하도록 할 수 있음 ( 복제본 CPU 사용량 또는 복제본 접속 횟수에 기반해 복제본 스케일링 가능 )
  • 리더(Reader) 엔드포인트를 통해 모든 읽기 전용 복제본과 자동으로 연결
    • 읽기 복제본 중 하나로 연결되어 로드 밸런런싱을 도와줌
    • 로드 밸런싱은 연결 레벨이서 이루어진다..!!
  • Aurora 추가 기능

Aurora 실습

  • RDS > 데이터베이스 생성 > Aurora > 각 옵션 선택
  • 데이터베이스를 생성하면 Region 클러스터와 그 안에 Writer 인스턴스, Reader 인스턴스가 나누어져 생성되어 있음 ( 서고 다른 AZ에 존재 )

Aurora 심화

  • 복제본 자동 스케일링
  • 사용자 지정 엔드포인트
    • 사용자 지정 엔드포인트가 있으면 일반적으로 Reader 엔드포인트는 사용하지 않음, 사라지는 것은 아님!!
  • Serverless 기능
    • 실제 사용량에 기반한 자동 데이터베이스 인스턴스화와 자동 스케일링 가능하게 해줌
    • 비정기적, 간헐적, 예측 불허한 워크로드에 유용
    • 용량 계획 세울 필요가 없음
    • 각 Aurora 인스턴스에 대해 매 초당 비용 지불하게 됨
  • Multi-Master
    • Writer 노드에 대한 즉각적 장애 조치
    • Writer 노드에 높은 가용성을 갖추고자 할 때 사용
    • Aurora 클러스터의 모든 노드에서 읽기 및 쓰기 가능
  • Global Aurora
    • 모든 쓰기 및 읽기가 진행되는 하나의 기본 리전이 존재
    • 복제 지연이 1초 미만인 보조 읽기 전용 리전 5개까지 설정 가능
    • 각 보조 지역마다 읽기 전용 복제본 16개까지 생성 가능
    • 한 리전의 데이터베이스가 작동 중단될 경우 재해 복구 목적으로 다른 지역을 승격하는데 필요한 복구 시간(RTO) 목표는 1분 미만
    • Auroroa Global 데이터베이스에서 Region에 걸쳐 데이터 복제에 걸리는 시간은 평균 1초 미만 ( 시험에 출제 !! )
  • Aurora Machine Learning
    • ML 기반 예측을 SQL 인터페이스로 애플리케이션에 적용
    • SageMaker, Amazon Comprehend 서비스 지원
    • 맞춤 광고, 감정 분석 제품 추천 등이 있음

RDS 백업

  • 자동 백업
    • 자동으로 매일 데이터베이스 유지 관리 시간에 DB 전체 백업
    • 5분마다 트랜잭션 로그도 백업
      • 가장 최신 백업이 5분 전이므로, 5분 전 어떤 시점으로도 복구 가능
    • 자동 백업 보유 기간은 1일에서 35일까지 설정 가능
    • 비활성화 가능, 보유 기간 0으로 설정
  • 수동 dB 스냅샷 생성
    • 사용자가 수동으로 트리거
    • 원하는 만큼 오랫동안 보유할 수 있다는 장점이 있음
    • ex) 매달 2시간만 사용하는 RDS 데이터베이스가 있다면?
      • 이 경우 데이터베이스를 정지하게 되면 정지했음에도 불구하고 스토리지 비용을 지불해야 함
      • 하지만, 2시간 사용 후 스냅샷을 만들고 원본 데이터베이스 삭제
      • 스냅샷의 비용은 RDS 데이터베이스 스토리지보다 훨씬 저렴하니까!
      • 이후, 데이터베이스 사용할 때가 되면 스냅샷 복원해서 사용하면 된다

Aurora 백업

  • 최대 35일까지 보유 가능한 자동 백업, 비활성화 불가능
  • 정해진 시간 범위 내의 어느 시점으로도 복구 가능
  • 수동 DB 스냅샷 있음, 우너하는 기간 보유 가능

RDS & Aurora 복원 옵션

  • 백업 또는 스냅샷을 통해 복원
  • S3로부터 MySQL RDS DB 복원 가능
    • 온프레미스 데이터베이스 백업을 만들어 객체 스토리지인 Amazon S3에 두는 것
  • Amazon S3에서 MySQL을 실행 중인 새로운 RDS 인스턴스로 백업 파일을 복원하느 방법
    • MySQL Aurora 클러스터로 복구하고 싶다면?
      • 온프레미스 데이터베이스를 외부로 다시 백업하고 Percona XtraBackup이라는 소프트웨어 사용하면됨
      • 그러면 Amazon S3로 백업 파일 전송
      • 그리고 백업 파일을 MySQL을 실행 중인 새 Aurora 클러스터로 복원하면 됨!!
  • 차이점은 RDS MySQL로 복원할 때에는 데이터베이스 백업만 있으면 되고 Aurora MySQL로 복원할 때에는 percona XtraBackup를 사용해서 백업한 다음 S3로부터 Aurora DB 클러스터로 복원하면 된다는 점

Aurora Database 복제 기능

  • 기존의 데이터베이스로부터 새로운 Aurora DB 클러스터 생성 가능
  • 데이터베이스 복제는 매우 빠르고 비용 면에서 효율적
  • 프로덕션 데이터베이스에 영향을 주지 않음

RDS & Aurora Security

  • 저장된 데이터를 암호화할 수 있음
  • KMS를 사용해 마스터와 모든 복제본의 암호화가 이루어짐
  • 데이터베이스를 처음 실행할 때 정의됨
  • 마스터 데이터베이스가 암호화 되어야 복제본도 암호화 가능
  • 전송 중 데이터 암호화 기능도 갖추고 있음
    • 클라이언트는 AWS 웹사이트에서 제공하는 TLS 루트 인증서 사용해야함
  • 데이터베이스 인증
    • 사용자 이름과 패스워드
    • IAM 역할 사용
    • 보안 그룹 사용
  • RDS와 Aurora는 SSH 엑세스가 없음
    • AWS의 RDS 커스텀 서비스는 예외
  • 감사 로그 활성화를 통해 쿼리와 데이터베이스 생성 확인 가능
    • 시간 지나면 자동 삭제
    • 장기간 보관하고 싶으면 AWS에 있는 CloudWatch Logs 서비스로 전송

Amazon RDS Proxy

  • VPC내에 완전 관리형 RDS 데이터베이스 프록시 배포 가능
    • RDS 데이터베이스에 바로 엑세스하면 됨
  • Amazon RDS Proxy 사용하면 애플리케이션이 데이터베이스 내에서 데이터베이스 연결 풀을 형성하고 공유 가능
    • 프록시가 하나의 풀에 연결을 모아 RDS 데이터베이스로 가는 연결이 줄어듬
  • RDS 데이터베이스 인스턴스에 연결이 많은 경우 프록시를 사용하여
    • CPU와 RAM 등 데이터베이스 리소스의 부담을 줄여 데이터베이스 효율성을 향상시킬 수 있음
    • 데이터베이스에 개방된 연결과 시간초과를 최소화할 수 있음
  • RDS 프록시는 완전한 서버리스
    • 오토 스케일링 가능하여 용량 관리 필요 없음
    • 가용성이 높음
    • 다중 AZ 지원함
    • 장애 조치 발생하면 대기 인스턴스로 실행됨
      • 장애 조치 시간을 66%까지 줄일 수 있음
  • RDS 프록시는 MySQL, PostgreSQL, MariaDB용 RDS 지원
    • MySQL, PostgreSQL용 Aurora 지원
  • 애플리케이션 코드를 변경하지 않아도 됨
  • RDS 데이터베이스 인스턴스나 Aurora 데이터베이스에 연결하는 대신 RDS 프록시에 연결하기만 하면 됨
  • 데이터베이스에 IAM 인증을 강제함으로써 IAM 인증을 통해서만 RDS 데이터베이스 인스턴스에 연결하도록 할 수 있음
  • 자격 증명은 AWS Secrets Manager 서비스에 안전하게 저장 됨
  • RDS는 퍼블릭 액세스 불가능, VPC 내에서만 엑세스 가능
  • Lambda 함수는 증식하여 여러 개가 생성 및 삭제되는 속도가 빠름
    • RDS 프록시를 사용하여 Lambda 함수의 연결 풀을 생성하면 Lambda 함수가 RDS 프록시를 오버로드함
    • RDS 프록시가 풀을 생성하면 RDS 데이터베이스 인스턴스 연결이 줄어 문제가 해결되는 것

0개의 댓글