- RDS를 쓰는 이유
- RDS Backups
- RDS - Storage Auto Scaling
- Read Replicas
- Multi AZ
- At rest encryption
- In-flight encryption
- RED Security - Network & IAM
- Responsibility
여기 정리하는 내용들은 Udemy 강의를 통해 배운 내용들을 정리하였습니다.
출처 - Udemy AWS Certified Developer Associate 2022 - New!
RDS는 Relational Database Service의 약자입니다. 그리고 SQL을 사용합니다.
AWS RDS에서 여러 종류의 SQL을 허용하는데요. 아래와 같습니다.
- PostgreSQL
- MySQL
- MariaDB
- Oracle
- Microsoft SQL Server
- Aurora (AWS Proprietary database)
RDS를 쓰는 이유
- Automated provisioning, OS patching
- 지속적인 백업과 특정 timestamp로 복구가 가능
- dashboard를 통한 모니터링
- Read Replica를 통한 향상된 read performance
- Multi AZ setup 가능
- Maintenance windows for upgrads
- Scaling 가능
- Storage backed by EBS
하지만 RDS를 사용하면 instance로 SSH 할 수 없습니다.
RDS Backups
자동으로 해주는 기능들이 많이 있습니다.
- 관리 하는 시간 동안 백업을 자동으로 해줍니다. (Daily full backup)
- 5분마다 Transaction logs 백업
- 그래서 가장 오래된 백업부터 5분전 백업까지 restore 가능
- 7~35 days retention
DB Snapshots 기능을 통해 Manually triger 한 백업을 만들어 원하는 기간 만큼 보유할 수 있습니다.
RDS - Storage Auto Scaling
예측하기 힘든 workloads에서 유용한 기능입니다.
Maximum Storage Threshold를 정해서 unlimitedly 늘어나지 않게 해줍니다.
Free storage가 10% 이하 일때, Low-storage 가 5분 동안 지속될때, 마지막 modification 이후 6시간이 지났을때 마다 storage를 modify합니다.
RDS Read Replicas 와 Multi AZ 이해하기
Read Replicas
Replicas는 사본, 복제품, 복사본 같은 느낌의 단어인데요.
데이터 베이스에서 더많은 read를 하기위해 RDS DB의 복제품을 만들어서 그 복제품으로 부터 read를 요청하게 하는 것이라고 이해했습니다.
이렇게 하면 기존에 있던 DB에서 read가 늘어지 않아 성능에 영향을 주지 않기 때문입니다.
- 애플리케이션이 더 많은 reads할 떄, 5개 까지 Read Replicas를 늘리 수 있습니다.
- Read Replicas는 AZ, Cross AZ, Cross Region 모두에서 가능하여 선택할 수 있습니다.
- Replication은
ASYNC여서 reads는 항상 일관됩니다.- Read Replicas에서는 SELECT statements만 사용됩니다. (INSERT, UPDATE, DELETE는 안되요.)
- 기본적으로 network cost는 data가 AZ밖을 나갈 때면 발생하는데,
replicas를 사용하면 Region을 나가기 전까지는 무료입니다.
Multi AZ
SYNC replication!!
scaling 되지 않습니다.
read나 write 할 수 없습니다.
increase availability
그래서 disaster recovery 용입니다.
Read Replicas에 Multi AZ 기능을 탑재할 수 있습니다.
Multi AZ를 탑재하기 위해서 DB를 stop 할 필요 없습니다. (zero downtime operation)
just click “modify” for the database
Multi AZ setup때는 DB snapshot이 자동으로 생성됩니다.
RDS Security - Encryption
At rest encryption
Master & read replicas를 Encrypt 하기 위해 AWS KMS를 사용합니다.
launch time에 define 해줘야합니다.
master 먼저 encrypt해야만 read replicas도 encrypt할 수 있습니다.
Oracle and SQL Server은 Transparent Data Encryption(TDE)가 가능합니다. (Encryption의 다른 방법입니다.)
In-flight encryption
SSL certificates를 사용합니다. in flight
Snapshot이 경우 기존 DB의 Encrypted 여부에 따라 Snapshot의 encryption이 정해진다.
하지만 Unencrypted 된 것을 encrypt 할 수 있습니다.
- un-encrypted RDS database 를 encrypt 하기
- the un-encrypted db 에서 snapshot을 생성한다.
- 그 snapshot 을 복제하고 and 복제된 snapshot이 encrypt가능하게 설정한다.
- encrypted 설정된 snapshot에서 db를 복구한다.
- 새로운 db에 Migrate Application한다. (un-encrypted db는 삭제한다.)
RED Security - Network & IAM
- Network Security
- RDS db를 private으로 deploy 합니다.
- security group을 통해 통제합니다.
- Access Management
- IAM policy로 매니저를 정해줍니다.
- IAM-based authentication을 이용할 수 있습니다. (MySQL&PostgreSQL 같은 경우)
- 이 경우 password가 아닌 authentication toekn이 필요합니다.
- auth token은 15분 동안만 이용할 수 있습니다.
Responsibility
AWS는
- 고객이 SSH access하지 못하도록 합니다.
- 고객이 manual DB patching 못하게 합니다.
- 고객이 manual OS patching 못하게 합니다.
- 고객이 audit the underlying instance 를 할 수 없게 합니다.