Что такое реляционная БД?
Реляционная база данных относится к категории баз данных, в которых основное внимание уделяется сбору точек ввода данных и взаимосвязи между ними.
Как определить, когда следует выбрать реляционную БД?
Если у вас есть знания о взаимосвязи точек ввода данных друг с другом, и у вас есть несложный способ представления данных в таблицах, то RDB — это ваш лучший вариант.
Каковы некоторые отрасли применения RDB?
- Традиционные приложения,
- Планирование ресурсов предприятия (ERP),
- Управление взаимоотношениями с клиентами (CRM),
- Электронная коммерция
- Подъем и сдвиг
Теперь, когда у нас есть общее представление о RDB, давайте продолжим углубляться и изучать и создавать ресурсы AWS RDB:
- Amazon RDS
- Amazon Aurora
- Amazon Redshift
Что такое Amazon RDS?
Amazon Relational Database Service (Amazon RDS) — это управляемый сервис, который упрощает настройку, эксплуатацию и масштабирование.
Реляционная база данных в облаке. Она обеспечивает экономически эффективную и масштабируемую емкость, при этом решая трудоемкие задачи администрирования баз данных, что позволяет вам сосредоточиться на своих приложениях и бизнесе.
Amazon RDS предоставляет вам доступ к возможностям привычных версий SQL, таких как:
- MySQL
- MariaDB
- Oracle
- SQL Server
- база данных PostgreSQL
Что такое Amazon Aurora?
Amazon Aurora — это современный сервис реляционных баз данных, предлагающий производительность и высокую доступность в масштабе, полностью открытые версии, совместимые с MySQL и PostgreSQL, а также ряд инструментов для разработчиков для создания бессерверных приложений и приложений, основанных на машинном обучении (ML).
Что такое Amazon Redshift?
Amazon Redshift — это полностью управляемое, масштабируемое облачное хранилище данных, которое ускоряет время получения информации благодаря быстрой, простой и безопасной аналитике в масштабе.
Давайте рассмотрим некоторые важные характеристики этих трех РСУБД
Amazon-RDS
Performance:
- General Purpose Storage : 3 IOPS * each GB.
- Burst capacity: 3,000 IOPS
- Provisioned IOPS storage: 40,000 IOPS * each RDS instance.
- Formula: (Credit balance)
Burst duration = ---------- (Burst IOPS) - 3*(Storage size in GiB)
Scalability:
- Horizontal
- Vertical
Availability:
- Multi-AZ service level agreement: 99.95% up every month
Security:
- Encryption of data at rest using KMS
- Encryption of data in transit using SSL/TLS
- Access Control using IAM
- Network Isolation and Database Firewall using VPC and industry-standard encrypted IPSec VPN
- Database activity streams beyond external security threats providing a real-time data stream of the database activity in
your relational database
Amazon-Aurora
Performance:
- 5x throughput of standard MySQL
- 3x of standard PostgreSQL
- Auto-scales up to 128 TB per database instance
Scalability:
- The minimum storage is 10 GB
- Automatically grow, up to 128 TB, in 10 GB increments with no impact on database performance
- Scale out up to 15 read replicas
Availability:
- Fault tolerant
- Self-healing storage
- Automatically divides your database volume into 10 GB segments spread across many disks
- Six copies of data across three AZ's
- Continuous backup to Amazon S3
Security:
- Uses SSL (AES-256) to secure the connection between the database instance and the application
- Network isolation
- Encryption at rest and in transit
Amazon-Redshift
Performance:
- Massively parallel processing
- Columnar data storage
- Data compression
- Query optimizer
- Result caching
- Compiled code
- 10x better performance than traditional databases
- Automatic Table Optimization (ATO)
- ATO increases cluster performance by 24% and 34% using the 3 TB and 30 TB versus a cluster without ATO
Scalability:
- Petabyte-scale data warehouse
Availability:
- The cluster node is replaced automatically in case of node failure detection
- Data is backup into S3
Security:
- Built-in AWS IAM integration
- Identity federation for single-sign-on (SSO)
- MFA
- Column level access control
- Row-level security
- Encrypts and keeps your data secure in transit and at rest
Теперь давайте рассмотрим некоторые ограничения:
Amazon RDS:
- Read replicas per region: 5
- Reserved DB instances per region: 40
- Rules per security group per region: 20
- Security groups per region: 25
- Security groups (VPC) per region: 5
Amazon Redshift:
- AWS accounts that you can authorize to restore a snapshot per snapshot: 20
- Concurrency level (query slots) for all user defined manual WLM queues: 50
- Concurrency scaling clusters: 10
- Nodes: 200
- Schemas in each database per cluster: 9,900
- Security groups: 20
- Snapshots: 20
Amazon Aurora:
- Authorizations per DB security group per region: 20
- Custom engine versions per region: 40
- DB cluster parameter groups per region: 50
- DB clusters per region: 40
- DB instances per region: 40
- DB subnet groups per region: 50
- Data API HTTP request body size per region: 4 MGB
Обратите внимание, что некоторые из этих ограничений настраиваются, а другие — нет.
О, точно, идет сборка 👷 давайте создадим эти 3 базы данных с помощью Terraform
Найти репо Terraform и инструкции для этого проекта можно здесь
Код Terraform предыдущий:
#---aurora/main--
resource "aws_rds_cluster_instance" "cluster_instances" {
count = 1
identifier = "aurora-cluster-example-${count.index}"
cluster_identifier = aws_rds_cluster.my_rds.id
instance_class = "db.r4.large"
engine = aws_rds_cluster.my_rds.engine
engine_version = aws_rds_cluster.my_rds.engine_version
}
resource "aws_rds_cluster" "my_rds" {
cluster_identifier = "aurora-cluster-example"
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
database_name = "USES-YOUR-OWN-DB-NAME-HERE"
master_username = "username"
master_password = "Always_use_complex_password"
}
Диаграмма
Ссылки:
https://aws.amazon.com/rds/features/security/
https://aws.amazon.com/redshift/faqs/
https://aws.amazon.com/rds/aurora/faqs/
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html