Skip to main content

High availability (Multi-AZ) for Amazon RDS

There is something called failover technology in Amazon. AWS RDS's Multi-AZ deployment uses this technology. If you enable Multi-AZ for an RDS DB, say MySQL DB, RDS automatically creates a standby replica in a different AZ.

If the primary DB instance is in AZ-1A, then RDS creates a standby replica in AZ-1B (for example).

Suppose I add a new row to a table in the primary DB, then the same row is added, almost in the same time, in the standby replica. This is called as synchronous replication.

Thus, standby replicas are useful during DB instance failure/AZ disruption. How? Because, there is no need to create a backup later because the backup has already been created. This gives high availability during planned system maintenance.

Normal backup operation - I/O activities are blocked in the primary database 

Automated backup operation (standby replica) - I/O activities are not blocked

This standby replica is not similar to read replica (which is used for disaster recovery).

Standby replica = Synchronous = Multi AZ= high availability solution (It cannot be promoted as a Read Replica)

Read replica = Asynchronous = (cross/same) region replication = scaling solution

Comments

Popular posts from this blog

GoLang - How to check if key exists in map?

package main import "fmt" var m map[string]string func main() { m = make(map[string]string) m["foo"] = "abc" if val, ok := m["foo"]; ok { fmt.Println("foo found -", val) } else { fmt.Println("foo not found") } if val, ok := m["bar"]; ok { fmt.Println("bar found -", val) } else { fmt.Println("bar not found") } } Output: foo found - abc bar not found

How to delete commits in Git?

Suppose you have 3 commits with SHAs as follows: HEAD~0 --> Commit 3 ccccccc HEAD~1 --> Commit 2 bbbbbbb HEAD~2 --> Commit 1 aaaaaaa If you want to remove the last two commits (i.e., commits 2 and 3) and make Commit 1 as the latest commit, run the following commands: git reset --hard aaaaaaa git push origin HEAD --force Now, the commit history would be as follows: HEAD~0 --> Commit 1 aaaaaaa