# Planning and Designing Databases on AWS  --- :::info [toc] ::: --- ### Important Links --- :::success - [AWS SkillBuilder](https://explore.skillbuilder.aws/learn/signin) - [AWS Ramp Up Guides](https://aws.amazon.com/training/ramp-up-guides/) - [Online Course Supplement](https://explore.skillbuilder.aws/learn/course/8319/play/38904/online-course-supplement-architecting-on-aws) - [Ebooks / Student Guide](http://online.vitalsource.com) - [Training & Feedback](https://aws.training) - [AWS Certification home page [All certifications]](https://aws.amazon.com/certification/) - [AWS Solutions Architect - Associate](https://aws.amazon.com/certification/certified-solutions-architect-associate/) - [AWS Certified Data Engineer - Associate](https://aws.amazon.com/certification/certified-data-engineer-associate/) ::: --- ### Keywords --- :::info - DAS vs SAN vs NAS - KMS (Management of Encryption Keys) - FinOps - Bin log replication [Backtrack in Aurora] - Active Directory - Domain Controller - Multi-Master Replication - USN [Unique Sequence Number] - CIA Triad - Confidentiality - Integrity - Availability - Serverless - Lambda - TCO (Total Cost of Ownership) - Shared Tenancy Model::: ::: --- ### Generic Concepts --- #### Scaling types :::success - Vertical Scaling - up-and-down - Horizontal Scaling - in and out ::: #### AWS services can have: :::success - Soft Limits/Quotas [Can be changed] - 100 buckets per account - 1000 concurrent executions [Lambda] - Hard Limits/ Quotas [Cannot be changed] - 5TB max file size [S3] - 15 minutes max execution time [lambda] - 10 GB max memory allocation per function [Lambda] ::: #### AWS services can be: :::success - Managed - DynamoDB, S3 - Unmanaged - EC2, DB on EC2 ::: #### AWS services can be communicated via: :::success - Console [GUI] --> User id + Password/sso - AWS CLI [Command-line] --> Access key id + secret access key - API [Programmatic-access] --> Access key id + secret access key ::: #### [Compute on AWS](https://aws.amazon.com/products/compute/) :::success - Virtual-Machines - EC2 - Containers - ECS - EKS - Serverless - Lambda - Fargate (serverless containers) ::: #### [EC2 Pricing Options](https://aws.amazon.com/ec2/pricing/) :::success - On-demand - Spot (Can be reclaimed back by AWS) (upto 90%) - Commitment Based - Reserved Instance - Savings Plans - Hardware isolation - Dedicated Instance - Dedicated Host ::: #### [AWS Storage Porfolio](https://aws.amazon.com/products/storage/) :::success - Object - S3 - Block - EBS Volumes - SSD based - Provisioned IOPS - General Purpose - HDD based - File/Network - EFS (NFS) - FSx ::: #### Event Notification in S3 :::success - Lambda - SNS (Notification service) - Email / Chat / SMS / Push / Webhooks (http/https) - SQS (Message queue) ::: #### [Access Management on AWS](https://aws.amazon.com/products/security/) ##### 3 A's of security :::success - A - Authentication [2FA / MFA] - What you know - Credentials - What you have - Soft and hard Tokens, OTP - What you are - Biometrics - A - Authorization - A - Accounting [Auditing/investigation] ::: ##### [IAM [Identiy and Access Mangement]](https://aws.amazon.com/iam/) :::success - Users - Groups - Policies - AWS Managed - Cx Managed - Roles - Temporary elevated permissions - Federated access - App/Service to service/resource communication ::: #### [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) :::success - Basic monitoring - Enabled by default - Free-tier eligible - 5 minute granularity - Enhanced/Detailed monitoring - Has to be enabled - Additional charges applicable - 1 minute (or less) granularity ::: #### Managed Open Source softwares on AWS :::success - [Amaon Opensearch Service [Managed ELK on AWS]](https://aws.amazon.com/opensearch-service/) - [Amazon Managed Streaming for Apache Kafka](https://aws.amazon.com/msk/) - [AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/) - [Amazon MQ - [Fully managed service for open-source message brokers]](https://aws.amazon.com/amazon-mq/) - [Amazon Elastic Kubernetes Service](https://aws.amazon.com/eks/) ::: #### Other related services :::success - AWS Secrets Manager [Secrets-Management] - IAM [Identity-&-Access-Management] [Access-Management-on-AWS] - VPC [Virtual-Private-Cloud] - Kinesis [Real-time data processing] - AWS Systems Manager [session-manager] [Configuration Management tasks on AWS][an alternate to Ansible] - AWS KMS [Encryption Key Management] - VPC Endpoints - Gateway Enpoints - Interface Endpoints ::: --- ### [Purpose-built Databases on AWS](https://aws.amazon.com/products/databases/) ---  :::success ::: --- ### [Amazon RDS [Relational Database Service]](https://aws.amazon.com/rds/) --- #### RDS Engines :::info - Amazon Aurora - PostgreSQL Compatible - MySQL Compatible - MSSQL - MySQL - MariaDB - PostgreSQL - Oracle - IBM Db2 ::: #### RDS Features :::info - Access Control - Password based - IAM - Kerberos [AD and LDAP integration] - Multi-AZ Deployments - To achieve high availability - Synchronous replication - Read Replicas - improve the performance - Asynchronous replication ::: --- ### [DynamoDB](https://aws.amazon.com/dynamodb/) --- #### Access mechanisms in DynamoDB :::success - getItem - Query - Scan ::: #### Secondary indexes :::success - LSI - GSI ::: #### Scaling modes in DynamoDB :::success - On-demand - Provisioned (reservations) ::: #### DynamoDB Additional features :::success - DAX - Streams - Global Tables ::: --- ### [Amazon ElastiCache](https://aws.amazon.com/elasticache/) --- #### Engines :::info - Memcached - Redis (proprietory) - Caching solution - No-SQL in-memory DB - Valkey (Open source Redis) ::: #### Concepts :::info - Cryptocurrency - Blockchain - Hyperledger ::: --- ### Additional Database Tools --- :::info - AWS Database Migration Service - AWS Schema Conversion Tool - Amazon Athena ::: --- ### References --- :::success #### Documentation - https://aws.amazon.com/ec2/instance-types/ - https://aws.amazon.com/ec2/pricing/ - https://aws.amazon.com/ebs/volume-types/ - https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html - https://docs.aws.amazon.com/fis/latest/userguide/what-is.html - https://aws.amazon.com/developer/tools/ - https://pages.awscloud.com/Redshift_RA3instances.html #### Case Studies - https://aws.amazon.com/solutions/case-studies/airbnb-case-study/ - https://calculator.aws/#/ #### Blogs - https://netflixtechblog.com/the-netflix-simian-army-16e57fbab116 - https://aws.amazon.com/blogs/database/intuit-story-automate-migration-from-on-premises-mysql-to-amazon-aurora/ - https://aws.amazon.com/blogs/aws/prime-day-2023-powered-by-aws-all-the-numbers/ - https://aws.amazon.com/solutions/case-studies/rappi-documentdb-case-study/ - https://aws.amazon.com/blogs/industries/bpx-energy-transforms-production-operations-through-aws-energy-industry-solutions/ - https://aws.amazon.com/solutions/case-studies/Peloton/ - https://aws.amazon.com/blogs/database/get-started-with-amazon-elasticache-for-valkey/ #### Workshops and Tutorials - https://catalog.workshops.aws/redshift-immersion/en-US - https://catalog.workshops.aws/databasemigration/en-US - https://aws.amazon.com/tutorials/purpose-built-databases/ https://aws.amazon.com/products/databases/learn/#Getting_started_tutorials #### External Websites - https://www.gremlin.com/ - https://serverlessland.com/ - https://cassandra.apache.org/_/cassandra-basics.html - https://www.dynamodbguide.com/what-is-dynamo-db #### Whitepapers - https://docs.aws.amazon.com/pdfs/whitepapers/latest/database-caching-strategies-using-redis/database-caching-strategies-using-redis.pdf - https://docs.aws.amazon.com/pdfs/whitepapers/latest/scale-performance-elasticache/scale-performance-elasticache.pdf #### Videos - [AWS re:Invent 2019: Why you need a ledger database: BMW, DVLA, & Sage discuss use cases (BLC203)](https://www.youtube.com/watch?v=TMQuN0eqPck) ::: :::danger :warning: *Disclaimer: The content provided here is for informational purposes only and is based purely on my own understanding, knowledge and experience. This is **not** an official AWS documentation.* :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up