{"id":2884,"date":"2019-06-22T01:32:39","date_gmt":"2019-06-21T23:32:39","guid":{"rendered":"http:\/\/miro.borodziuk.eu\/?p=2884"},"modified":"2019-08-31T02:04:46","modified_gmt":"2019-08-31T00:04:46","slug":"amazon-aurora","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2019\/06\/22\/amazon-aurora\/","title":{"rendered":"Amazon Aurora"},"content":{"rendered":"<p>Aurora is a database engine developed by AWS that is compatible with <strong>MySQL<\/strong>, <strong>PostgreSQL<\/strong> and associated tools. Fully managed, highly available, relational database engine.<\/p>\n<p><!--more--><\/p>\n<p><span style=\"color: #3366ff;\">Features<\/span><\/p>\n<ul>\n<li>MySQL and PostgreSQL compatible<\/li>\n<li>Up to <strong>5x<\/strong> faster than MySQL and <strong>3x<\/strong> faster than PostgreSQL without changing your applications<\/li>\n<li>Fully managed, performing routine tasks:\n<ul>\n<li>Provisioning<\/li>\n<li>Patching<\/li>\n<li>Backup and recovery<\/li>\n<li>Failure detection and repair<\/li>\n<\/ul>\n<\/li>\n<li>Migration tools to <strong>convert<\/strong> RDS MySQL databases to Aurora<\/li>\n<li>Greater than 99.99% availability<\/li>\n<\/ul>\n<p>Aurora operates with a radically different architecture as opposed to the other RDS database engines:<\/p>\n<ul>\n<li>Aurora uses a base configuration of a &#8220;cluster&#8221;<\/li>\n<li>A cluster contains a single primary instance and zero or more replicas<\/li>\n<\/ul>\n<p><span style=\"color: #3366ff;\">Cluster Storage<\/span><br \/>\nAll instances (primary and replicas) use the same shared storage \u2014 the cluster volumes.<\/p>\n<ul>\n<li>Cluster volume is totally SSD based, which can scale to 64 TiB in size.<\/li>\n<li>Replicates data<strong> six times<\/strong>, across <strong>three<\/strong> Availability Zones.<\/li>\n<li>Aurora can tolerate <strong>two<\/strong> failures without <strong>writes<\/strong> being impacted and <strong>three<\/strong> failures without impacting <strong>reads<\/strong>.<\/li>\n<li>Aurora storage is <strong>auto-healing<\/strong>.<\/li>\n<\/ul>\n<p><span style=\"color: #3366ff;\">Cluster Scaling and Availability<\/span><\/p>\n<ul>\n<li>Cluster volume scales automatically, only bills for <strong>consumed data<\/strong>, and is constantly<strong> backed up<\/strong> to<strong> S3<\/strong>.<\/li>\n<li>Aurora replicas improve availability, can be promoted to be a primary instance quickly, and allow for efficient read scaling.<\/li>\n<li>Reads and writes use the cluster endpoint.<\/li>\n<li>Reads can use the reader endpoint, which balances connections over all replica instances.<\/li>\n<\/ul>\n<p>Aurora is not just an enhancement of RDS \u2014 it&#8217;s a new architecture with<\/p>\n<ul>\n<li>shared storage,<\/li>\n<li>addressable replicas<\/li>\n<li>parallel queries.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2890 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Aurora1.jpg\" alt=\"\" width=\"622\" height=\"579\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Aurora1.jpg 622w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Aurora1-300x279.jpg 300w\" sizes=\"(max-width: 622px) 100vw, 622px\" \/><br \/>\nTo improve <strong>resilience<\/strong>, use additional <strong>replicas<\/strong>. To<strong> scale<\/strong> write <strong>workloads<\/strong>, <strong>scale up<\/strong> the instance size. To scale reads, scale out (adding more replicas).<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Aurora Architecture<\/span><\/p>\n<p>Distributed, fault-tolerant, self-healing storage system that scales up to 64 TB per DB instance.<\/p>\n<ul>\n<li>Scales in 10 GB increments<\/li>\n<li>Replicates six copies of your data across three AZs\n<ul>\n<li>Single virtual volume using SSDs<\/li>\n<li>Lose two copies of data without affecting writes<\/li>\n<li>Lose three copies of data without affecting reads<\/li>\n<\/ul>\n<\/li>\n<li>Continuously backs up to S3<\/li>\n<li>Restore from a DB snapshot or use point-in-time restore (PITR)<\/li>\n<li>Global Database can span multiple regions<\/li>\n<li>Parallel Query for MySQL distributes I\/O across the storage layer for performa nce<\/li>\n<li>Security using IAM Database Authentication and VPC Security Groups<\/li>\n<li>Encrypt data at rest (on by default) with KMS or in transit with SSL<\/li>\n<li>Read replicas (encrypted if primary is)\n<ul>\n<li>Increase performance<\/li>\n<li>Failover targets (can be promoted to primary)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Scenario: Aurora is near 100% CPU utilization. If writes then scale up (increase instance size). If reads then scale out (increase number of replicas).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2893\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Aurora2.jpg\" alt=\"\" width=\"654\" height=\"536\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Aurora2.jpg 654w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Aurora2-300x246.jpg 300w\" sizes=\"(max-width: 654px) 100vw, 654px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Aurora Serverless<\/span><\/p>\n<p>Aurora Serverless is based on the same database engine as Aurora, but instead of provisioning certain resource allocation, Aurora Serverless handles this as a service. You simply specify a minimum and maximum number of Aurora capacity units (ACUs) \u2014 Aurora Serverless can use the Data API.<\/p>\n<p>On-demand auto-scaling configuration for Aurora. No instances to manage. Charged on a per-second basis.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2895 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/AuroraServerless.jpg\" alt=\"\" width=\"603\" height=\"581\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/AuroraServerless.jpg 603w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/AuroraServerless-300x289.jpg 300w\" sizes=\"(max-width: 603px) 100vw, 603px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aurora is a database engine developed by AWS that is compatible with MySQL, PostgreSQL and associated tools. Fully managed, highly available, relational database engine.<\/p>\n","protected":false},"author":1,"featured_media":2885,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[79],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2884"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=2884"}],"version-history":[{"count":10,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2884\/revisions"}],"predecessor-version":[{"id":2898,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2884\/revisions\/2898"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/2885"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=2884"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=2884"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=2884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}