PS:
Focus of this course is on Designing, Building and Managing Aurora PostgreSQL clusters
This course will NOT teach you SQL or Database design
Who will benefit from this course?
PS:
Focus of this course is on Designing, Building and Managing Aurora PostgreSQL clusters
This course will NOT teach you SQL or Database design
Who will benefit from this course?
Cloud Architects, & Engineers looking to leverage Aurora PostgreSQL
Database Administrators interested in diving deep into Aurora Postgres
Cloud Developers looking to leverage Aurora Postgres for building cloud native applications
Anyone interested in learning how Aurora Postgres is different from community version of Postgres
Objectives
By the end of this course you will be able to:
Design & deploy highly available, and scalable Aurora PostgreSQL clusters
Ensure security of your DB cluster from all perspectives (Network, Data, A&A ...)
Effectively use the Aurora features such as Global Database, Serverless, Cloning, Cache management etc.
Carry out monitoring using CloudWatch metrics, Events, Logs
Query performance tuning using tools such as Performance Insights
Pre-Requisites
This course is intended for anyone who is interested in using AWS Aurora PostgreSQL database for their cloud applications. If you are new to PostgreSQL then no worries as the course starts with the fundamentals of PostgreSQL.
Hands on with AWS
Experience with any RDBMS
Basic Unix shell scripting
Open to learn
Course outline
Course is divided into multiple sections. Each section starts with a lesson titled "Section Objectives". To gain a better understanding of the topics covered in the course, please check out the first lesson (preview) in sections of your interest.
Fundamentals of PostgreSQL
Aurora Architecture deep dive & cluster setup
Monitoring features and tools (CloudWatch, Enhanced Monitoring, Performance Insights ..)
Designing highly available, and scalable clusters
Cluster configuration management
Query performance tuning
Aurora Postgres Security
Effectively using Aurora features such as Global Database, Serverless, Cache management
Aurora Disaster Recovery
Backup Recovery
Cluster management tasks such as vaccuming, analyze, explain etc.
Why I built this course?
Aurora is complex and architecturally very different from the databases available in the market. When I started to learn it, the biggest challenge was the non availability of Aurora specific information. The only source of information is the Amazon Aurora documentation website which in my humble opinion is not the most effective way to learn. It took me quite sometime to wrap my head around Aurora's architecture and features; the tutorials in the documentation involve manual steps, mostly on the console, as a result they are not easy to follow. Long story short, for folks new to Aurora (& Postgres) learning Aurora can be daunting.
Based on my personal experience with learning Aurora Postgres, I decided to put together this course to help others get up to speed with Aurora in minimum possible time. So if I have to describe in one line, why I built this course - "It is to accelerate students learning".
Disclaimer
Course content developed using publicly available sources such as AWS documentation & blogs
Opinions/views expressed in the course are my (Rajeev Sakhuja) own and does not reflect opinions/views of my employer or Amazon/AWS
Author introduction.
Course outline
Tips on getting the most out of this course
Section objectives
In this lesson students will learn the building blocks of PostgreSQL database server
PostgreSQL achieves high performance by way of Write Ahead Logging (WAL). In this lesson you will learn how WAL works.
PostgreSQL provides standby server support. By the end of this lesson you will have a solid understanding of how standby works!!
You will learn about various features for PostgreSQL scaling.
Throughout this course, you will use many PostgreSQL tools. This lesson will provide you a gentle introduction of some of the tools.
Section Objectives
You will learn about all the options for setting up PostgreSQL on AWS cloud.
This lesson will help you in understanding the main differences between RDS PostgreSQL and Aurora PostgreSQL
Aurora has many unique features due to its decoupled storage architecture, in this lesson you will learn about all of those features.
You will learn about the Aurora PostgreSQL release cycles
This lesson will help you with deciding between RDS and Aurora PostgreSQL
Setup the development environment:
* Clone the Git repo
* Install Visual studio code
Setup the test VPC using Cloud Formation
Setup the Aurora DB Cluster using a CloudFormation template
Setup an Amazon Linux 2 Bastion host in public subnet
Setup a Windows Bastion Host in public subnet
A quick overview of the utility scripts
Environment cleanup instructions
Observe the various CloudWatch metrics for Aurora
In this lesson you will learn about how the decoupled storage architecture works under the covers.
Aurora's decoupled architecture requires user to pick up an appropriate DB VM/instance.
In this lesson you will learn how to select the right DB instance for a workload.
Aurora exposes multiple types of endpoints; by the end of this lesson, you will have a fairly good understanding of how these endpoints work.
In this hands on lesson, we will add a read replica to our test cluster.
You will learn about the quorum model used by Aurora for Reads/Writes to the storage tier.
Aurora's architecture is highly fault tolerant - in this lesson you will learn how high fault tolerance is achieved.
Aurora uses replication to keep the replicas up to date in terms of buffer cache. This mechanism is transparent to the user.
Learn how to monitor the replication lag.
Learn the baselining mechanism to ensure proactive issue remediation.
You will learn about the commonly used PostgreSQL Pgbench tool.
Learn about the Aurora CloudWatch metrics.
You will learn about the common CloudWatch metric published by Aurora
By the end of this lesson, you will be able to describe the difference between CloudWatch & Enhanced metrics
In this exercise, you will try out enhanced metrics
PostgreSQL writes log files to the local file system. In this lesson you will learn how to access these logs.
In this hands on exercise, you we will run some queries against the PostgreSQL engine and observe the log messages.
Aurora emits events that users can subscribe to. In this lesson you will learn about the various categories of events and the payload format of these events.
In this hands on exercise you will learn how to store Aurora events in CloudWatch
Try out the standard PostgreSQL extension : Address Standardizer
In this lesson you will learn how Aurora dynamically resizes the storage.
User decides on the size of the DB instance and the number of read replicas. In this lesson you will learn about the Aurora horizontal, vertical & autot scaling capabilities,
In this hands on exercise, you will try out the vertical scaling.
Try out the Auto Scaling policy in this exercise.
You will learn how Aurora manages the failover.
Try out the Aurora Failover in your test setup.
Aurora offers this feature for fast recovery after the failover.
You will learn how to manage PostgreSQL engine configuration by way of Parameter Groups
Try out the custom parameter group in this exercise.
You will learn about RDS option groups and PostgreSQL extensions.
Learn about PostgreSQL extensions
Learn how Aurora supports the PostgreSQL extensions.
Try out the extension for export/import of data to/from S3 bucket
An overview of the standard PostgreSQL stats subsystem
An overview of the stats functions available for accessing the stats data
Hands on exercise that will provide you hands on experience with the stats subsystem
Learn about the PostgreSQL locks and waits
Check out the locks and wait events in your test cluster
Learn about the extension : pg-stat-statements
Use the pg-stat-statements to see the statements and client status in real time
Learn about the various components of the backend process that executes the SQL queries in PostgreSQL
Learn about the query plan generated by the Explain command
Try out the explain command to generate the query plan
Learn what Analyze command does and why it is important
Learn about the PostgreSQL Multi Version Concurrency Control protocol
Learn how table bloat is addressed by Vacuuming
Learn how wrap around is addressed by Vacuuming
Learn to use Vacuum command
Try out the vacuum command
Learn how to use Auto vacuuming
Performance Insights Overview - what is it used for?
Performance Insights - Counter metrics
Learn about the Performance Insights key metrics:
DB Load
Average Active Sessions
Follow along to learn how to use the Performance Insights dashboard
Deeper dive on how IO wait events directly impact the query performance
Learn to tune the buffer cache for optimal query performance
Learn to use the Performance Insights dashboard.
Understand the reasons fort excessive Aurora IOXactSync events
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.