Overview: Azure SQL is incredible.
There are a lot of options when choosing how to host database and performance
good. "handles
patching, backups, replication, failure detection, underlying potential
hardware, software or network failures, deploying bug fixes, failovers,
database upgrades, and other maintenance tasks", from Microsoft Docs and
Azure SQL.
Three SQL Azure PaaS Basic Options:
- Single Database - This is a single isolate database with it's own guaranteed CPU, memory and storage.
- Elastic Pool - Collection of single isolate databases that share DTUs (CPU, Memory & I/O) or Virtual Cores.
- Manage Instance - You mange a set of databases, with guaranteed resources. Similar to IaaS with SQL installed but Microsoft manage more parts for me. Can only purchase using Virtual Core model (No DTU option).
- DTU - A single metric that Microsoft use to calculate CPU, memory and I/O.
- Virtual Cores - Allows you to choose you hardware/infrastructure. One can optimise more memory than CPU ratio over the generalist DTU option.
Three Tiers:
- General Business/Standard (There is also a lower Basic Level)
- Business Critical/Premium
- Hyperscale
Backups
Point in time backups are automatically stored for 7 to 35 days (default is 7 days), protected using TDE, full, differential and transaction log backups are used to point in time recovery. The backups are stored in blob storage RA-GRS (meaning in the primary region and all the read-only backups are stored in a secondary Azure region). £ copies of the data in the active Azure Zone and 3 read only copies of the data.
Long Term Retention backups can be kept for 10 years, these are only full backups. The smallest retention is full backups retained for each weeks full backup. LTR is in preview available for Managed Instances.
Azure Defender for SQL
Monitors SQL database servers checking vulnerability assessments (best practice recommendations) and Advance Threat Protection which monitors traffic for abnormal behavior.
Checklist:
- Only valid IP's can directly access the database, Deny public Access,
- AAD security credentials, use service principals
- Advanced Threat Protection has real time monitoring of logs and configuration (it also scans for vulnerabilities),
- Default is to have encryption in transit (TLS 1.2) and encryption at rest (TDE) - don't change,
- Use Dynamic data masking inside the db instance for sensitive data e.g. credit cards
- Turn on SQL auditing,
Note: Elastic Database Jobs (same as SQL Agent Jobs).
Azure offers MySQL, Postgre and MariaDB as hosted PaaS offerings.
Note: The Azure SQL PaaS Service does not support the filestream datatype : use varbinary or references to blobs.
No comments:
Post a Comment