AWS SSA 공부 RDS.1

2022. 5. 18. 13:48Cloud/AWS 기초

Amazon RDS(관계형 데이터 베이스)

업계 표준 관계형 데이터베이스이다. 백업, 소프트웨어 패치, 자동 장애 감지 및 복구를 관리하는 기능을 하고 있으며, 필요할때마다 자동으로 백업, 고유한 백업스냅샷을 수동으로 생성할 수 있다. 이런 백업을 사용해 DB를 복원할 수 있다. 

최대 40개의 RDS DB인스턴스를 가질 수 있으며, Aurora, MySQLm MariaDB, PostgreSQL, Oracle,MicrosoftSQL Server를 지원한다. DB 인스턴스 클레스에 따라 결정되는 DB 인스턴스의 계산 및 메모리 용량을 선택할 수 있으며, 시간이 지남에 따라 요구사항이 변경되면 DB인스턴스를 변경할 수 도 있다.

 

AWS RDS 읽기 전용 복제본
DB인스턴스에 대해 향상된 성능과 내구성을 제공한다. 비동기 복제를 제공하고 읽기가 많은 DB WorkLoad에 대해 기본DB에서 가저와서 기본 DB의 성능을 향상시킬 수 있으며, 단일 DB인스턴스의 용량 제약을 넘어 탄력적으로 확장할 수 있다.

MySQL, MariaDB, PostgresSQL and Oracle용 읽기 전용 복제본을 생성하게 된다면, RDS는 리전간 복제를 하는 경우에도 원본 DB 인스턴스와 읽기 전용 복제본 간에 공개 키 암호화를 사용하여 보안 통신 채널을 설정하게 된다. 또한 KMS로 암호화어도 리전간 읽기 전용 복제본을 생성할 수 있다.

특히 지정된 소스DB 인스턴스의 복제본을 하나 이상 생성해, 데이터의 여러 복사본에서 대용량 애플리케이션 읽기 트래픽을 제공하여, 총 읽기량(읽기 처리량)을 늘릴 수 있다. 읽기 전용 복제본은 독립 실행형 DB인스턴스가 되기 위해 필요할 때마다 승격될 수 도 있다. ACID를 준수하며 MySQL DB의 읽기 처리량을 높이는데 사용하기에 좋다.

생성방법

1. 기존 DB 인스턴스를 원본으로 지정

2. RDS는 소스 인스턴스의 스냅샷을 만들고 스냅샷에서 읽기 전용 인스턴스를 생성

3. DB엔진에 대한 비동기 복제 방법을 사용해 기본 DB 인스턴스에 변경 사항이 있을 때 마다 읽기 전용 복제본 업데이트(이때 읽기 전용 연결만 허용하는 DB 인스턴스로 작동)
4. 애플리케이션은 DB 인스턴스와 동일한 방식으로 읽기 전용 복제본에 연결

5. RDS는 원본 DB 인스턴스의 모든 DB를 복제

 

고려사항

백업 보존 기간을 0 이외의 값으로 설정해, 원본 DB에서 자동 백업을 활성화 해야한다. 다른 읽기 전용 복제본의 원본 DB 인스턴스인 읽기 전용 복제본에도 적용된다.

 

AWS RDS 다중 AZ 배포
DB인스턴스에 대해 향상된 성능과 내구성을 제공한다. 읽기가 많은 DB WorkLoad에 대해 단일  DB인스턴스의 용량 제약을 넘어 탄력적으로 확장할 수 있다. 또한 고가용성 및 장애조치 지원을 재공한다.

다중 AZ DB인스턴스를 프로비저닝하면, RDS가 자동으로 기본 DB 인스턴스를 생성하고, 다른 AZ의 대기 인스턴스에 데이터를 동기식으로 복제하여 데이터의 중복성을 제공하며, I/O 정지를 제거하며, 시스템 백업 중 지연시간 급증을 최소화 한다.또한 각 AZ는 물리적인 별개의 독립적인 인프라에 실행된다.

인프라에 문제(장애)발생시 자동 장애 조치를 대기로 수행하므로 장애 조치가 완료되는 즉시 DB작업을 재개할 수 있다. 또한 DB 인스턴스의 엔드포인트는 장애 조치 후에도 동일하게 유지되므로 에플리케이션은 소동 관리 개입 없이 DB 작업을 재개할 수 있다. 긴급 마이그레이션을 하여 향후 DB 서비스가 문제가 발생허다라도 계속 사용하게 만들기 위해서 이 기능을 활용하면 된다.

자동 장애 조치
1. 기본 가용 영역의 손실
2. 기본에 대한 네트워크 연결 손실
3. 기본 컴퓨팅 장치 오류
4. 기본 스토리지 오류

또한 이때 기본 데이터베이스 인스턴스가 실패하게 된다면 RDS는 표준 이름 레코드(CNAME)가 기본 인스턴스에서 대기 인스턴트로 전환된다.

AWS RDS 보안 (SSL(Secure Sokets Layer)
클라이언트 에플리케이션과 Microsoft SQL Server 를 실행하는 RDS DB인스턴스 연결을 암호화 할 수 있다. SSL 지원은 지원되는 모든 SQL Server에디션에 대해 모든 AWS 리전에서 사용할 수 있다.

SQL Server DB인스턴스를 생성하면 RDS가 이에대한 SSL인증서를 생성하게 된다. 이 인증서에는 스푸핑 공격으로부터 보호하기 위한 SSL 인증서의 일반이름(CN)으로 DB인스튼스 엔드포인트가 포함된다.
연결방법은 2가지가 있다.

1. 강제적용
    - 모든 연결에 대해 강제적으로 적용한다. 클라이언트에 대해 명백하게 수행되며 SSL을 사용하기 위해 어떤 작업도 수행할 필요가 없다.
2. 특정 연결 암호화
    - 특정 클라이언트 PC에서 SSL 연결을 설정하고 연결을 암호화 하려면 클라이언트에서 작업을 해야한다.

특히 웹 서버와 RDS 사이의 모든 전송 데이터를 보호해야할 때에는 RDS루트 CA 인증서를 다운로드한다. 이 후 인증서럴 서버로 가지고 온 후 SSL을 활용하여 RDS에 대한 연결을 암호화 하도록 애플리케이션을 구성해야 한다. 이때 rds.force_ssl을 매개변수로 사용해서 true로 지정한 후 DB인스턴스에 대한 모든 연결이 SSL을 사용하도록 한다. 이 후 재부팅을 해야한다.

 

RDS Tagging

RDS 테그는 사용자가 정의하고, RDS 리소스와 연결하는 이름-값 쌍이다. 이름을 키 라고 한다. 키 값을 제공하는것은 선택사항이며, 모든 Amazone RDS리소스에 태그를 지정할 수 있다. 또한 태그를 사용하여 자체 비용 구조를 반영하도록 AWS 청구서를 구성할 수 도 있다. 테그세트는 최대 50개를 포함할 수 있다.

 

RDS proxy

애플리케이션의 확장성, DB의 장애 복원력, 보안성을 높여주는 완전관리형 고가용성 RDS용 데이터베이스 프록시이다. 이것을 사용하면 애플리케이션이 DB에 설정된 연결을 풀링하고 공유할 수 있으므로, DB연결을 위해서만 DB메모리와 컴퓨팅 리소스를 사용할 필요가 없다. 또한 자체 VPC설정으로 여러 엔드포인트를 생성할 수 있으므로 다른 VPC의 에플리케이션에서 Aurora or RDS DB에 엑세스 할 수 있게 된다. 읽기 전용 엔드포인트를 생성해 에플리케이션을 Aurora 복제본에도 연결할 수 있다.