Wednesday, January 1, 2020

AWS RDS Whitepaper


Relational  (OTLP):
Aurora, MYSQL server, MariaDB, SQL
Runs on  VMs. You have no access to RDS instance. We cannot ssh over there.
It’s not serverless with exception of Aurora which is serverless.
Encryption: using AWS KMS service.
DMS: Database migration service from On-premise to AWS DB

MultiA-Z-:
- for Disaster recovery. Synschronous replication.
Read Replicas:  For performance.
DNS:àPrimary DB AZ1, Secondary DB AZ2 . Failover is taken care by AWS.
Will have exact copy of production DB in some other AZ. Writes are automztically synchronized to the stand by DB.  Same DNS endpoint in case of any failover.
You can force a failover from one AZ to another by rebooting the RDS instances.
Not applicable for DynodB nosql db.

Read Replicas:
Scale out to use read replicas and primary db both
Primary DB-> Read Replica
-Asysnchronous replication
If for ay reason primary DB fails, you need to point to the Replica URL
Useful when we have heavy workload.
Read Replica and Elastic cache for read heavy workloads when we want to improve performance.
Applicable for all relational DB server.  Can have to uptpo5 read replica of any dB.
Red replica can be in some other region
Must have backup turned on in order to get read replica.
Non-Relational DB:
Can be in multiple-AZs Can be in same or different region.
Can be prompted to master.this will break the read replication.
(Dyno DB)
Collection(Table),Documents(Row), key-value pairs(fields)

OTLP (Transaction) vs OLAP (Analytics):
Red Shift: Amazon’s Datawarehouse solution for online analytic processing.
-Data warehousing:
-For BI, Reporting.
Available only in one AZ
Backups: 1 day retention period by default . Max retention period is 35 days
Maintain at least 3 copies of the data.
Elastic Cache: two open-source in-memory solution. Caching most common web queries.Database load reduced with elastic cache.
                Memcached / Redis Caching engines.
Encryption: using SSL in transit . AES -256 at Rest. Not all instances support DB encryption. Encryption can be done at the time of creating DB.
Backups: Automated backups/ Database snapshot
Automated backups retention period of 35 days. Apply backup + transaction logs. Allow point in time recovery down to a second within the retention period.Can be done during the scheduled maintenance window.
Database snapshot: taken up manually.
Restored version of DB will have new RDS instance and a new DNS endpoint.
We cannot SSH to the RDS underlying EC2 Instance.
Amazon Arora:
-Mysql version of mysql.Compatible with mysql and Post gresQL
-Provides 5 times better performance than MYSQL.
- 10 GM to 1 TB.
- Always maintained two copy of your data in each AZ with minimum of 3 AZs total of 6 copies.
- We can share the snapshot with other AWS accounts.
- Very powerful with Read Replica
Aurora Replicas:
Amazon Arora replica: Aiutomated failover is supported here.
MySQL replica
Bacups are always available.We can take snapshot.We can promot replica to master if needed.
MySQL default port :3306
Max size RDS volume with a mysql server database engine using amazon RDS volume: 16 TB

RDS Storage Types:
 General Purpose SSD (gp2)- single digit ms latency and can burst to 3000 iops/sec for extended period of time.
 Provisioned IOPS SSD (io1)- For low latency consistent throughput, useful in database workload.

 Magnetic: For backward compatibility, max storage less here.


-->You can not access the logs for any RDS intance. You need to use the mysqlbinlog utility to download or stream binary logs from Amazon RDS instances running My SQL 5.6

SQS queue can be used to store pending DB writes.And the writes can be added to database. 
If read load is heavy then:  shards, use read replica and elastic cache for common queries.

Read Replica: Provides a complimentary availability mechanism to RDS multi A-Z deployment.
If the primary DB instance of a DB cluster fails, Aurora automatically fails over to a new primary DB
instance. It does so by either promoting an existing Aurora Replica to a new primary DB instance or
creating a new primary DB instance

- Self Managed Insstances of RDS: AWS will not manage and responsibile for keeping everything for scalabiliy and security. Can be useful in migration when you want to use least refactoring.
- If DB settings modified, it may allow reboot DB instance.
DB parameter Group:
-Act as a container for DB engine configuration.
- For  any change in the connection settings, create a new parameter group and assign it to the db instance.
Database performance metrics:DatabaseConnections/DiskQueueDepth

Storage-full state:
When a DB instance reaches the storage-full state, there is not enough space available for performing basic operations, eventually preventing you to make connections or restart the instance.

AUTH in ElastiCache for Redis
AUTH can only be enabled for encryption in-transit enabled ElastiCache for Redis clusters.
 
-Aurora storage automatically grows from 10GB to 64 TB and can have 15 Replicas.
RDS Multi AZ has one DNS name for automatic failover.
 
 Postgres does not support TDE (transparent data encryption)
Oracle does not support IAM based authentication

Aurora Serverless: 
Good for infrequent , intermittent or unpredictable workloads. client is connected to the Proxy Fleet.
Global Aurora:
RTO less than 1 min    
Global DB allow us to have cross region replication.
 Replica within same AZ minimize cost.

R & X classes: for Memory optimized
Burstable class
Readable endpoint/ Writable endpoint
AWS Elastic Cache:
-Write Scaling using sharding
-Read scaling using Read Replicas 
-Multi AZ for failover capability
-Supports in flight encryption
Do not support IAM authentication.
-Pattern: LAszy loading/ Write through/ Session Store
ElasticCache Redis:  Replication, Data durability using AOF persistence. Can be used as DB.Can have token/pwd along with security group.

ElasticCache MemCache: Sharding, Non-persistent, Multi-threaded , Can support SASL based authentication.
 
Port usage:
FTP: 21
SSH: 22
SFTP: 22
HTTP: 80
HTTPS: 443

vs RDS Databases ports:

PostgreSQL: 5432
MySQL: 3306
Oracle RDS: 1521
MSSQL Server: 1433
MariaDB: 3306 (same as MySQL)
Aurora: 5432 (if PostgreSQL compatible) or 3306 (if MySQL compatible)
 


No comments:

Post a Comment