SlideShare a Scribd company logo
1 of 69
Download to read offline
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Hands-On Journey for Migrating Oracle
Databases to the Amazon Aurora
PostgreSQL-Compatible Edition
S a m e e r M a l i k
G o w r i B a l a s u b r a m a n i a n
K y l e H a i l e y
K e v i n J e r n i g a n
J i g n e s h S h a h
N o v e m b e r 2 8 , 2 0 1 7
AWS re:INVENT
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Introduction
Gowri Balasubramanian
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What to Expect from This Session
• Introduction to Aurora PostgreSQL and DMS
• LAB1: Oracle to Aurora PostgreSQL Migration using AWS SCT and
DMS
• LAB2:Walk-Through of Aurora Console and DBA Tasks
• Introduction to Performance Insights
• LAB3: Performance Analysis Using PI
• Aurora Best Practices for DBAs and Wrap-Up
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Aurora with PostgreSQL
compatibility
Kevin Jernigan
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Reimagining the Relational Database
What if you were inventing the database today?
You would break apart the stack
You would build something that:
 Can scale out…
 Is self-healing…
 Leverages distributed services…
A Service-Oriented Architecture Applied to the
Database
Move the logging and storage layer into a
multitenant, scale-out, database-optimized
storage service
Integrate with other AWS services like Amazon
Elastic Compute Cloud (Amazon EC2), Amazon
Virtual Private Cloud (Amazon VPC), Amazon
DynamoDB, Amazon Simple Workflow Service
(Amazon SWF), and Amazon Route 53 for
control and monitoring
Make it a managed service – using Amazon
Relational Database Service (Amazon RDS).
Takes care of management and administrative
functions.
Amazon
DynamoDB
Amazon SWF
Amazon Route 53
Logging + Storage
SQL
Transactions
Caching
Amazon S3
1
2
3
Amazon RDS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
PostgreSQL – Open Source Database
• Open source database
• In active development for 20 years
• Owned by a foundation, not a single company
• Permissive innovation-friendly open source license
• High performance out of the box
• Object-oriented and ANSI-SQL:2008 compatible
• Most geospatial features of any open source database
• Supports stored procedures in 12 languages (Java, Perl,
Python, Ruby, Tcl, C/C++, its own Oracle-like PL/pgSQL, and
so on)
• Most Oracle-compatible open source databases
• Highest AWS Schema Conversion Tool automatic conversion
rates are from Oracle to PostgreSQL
PostgreSQL Compatibility
PostgreSQL 9.6 + Amazon Aurora cloud-optimized storage
 Performance: 2x to 3x higher throughput than PostgreSQL alone
 Availability: failover time of < 30 seconds
 Durability: six copies across three Availability Zones
 Read Replicas: single-digit millisecond lag times on up to 15 replicas
Amazon Aurora Storage
PostgreSQL Compatibility
Cloud-native security and encryption
 AWS Key Management Service (AWS KMS)
 AWS Identity and Access Management (IAM)
Easy to manage with Amazon RDS
Easy to load and unload
 AWS Database Migration Service
 AWS Schema Conversion Tool
Fully compatible with PostgreSQL, now and for the
foreseeable future
 Not a compatibility layer – native PostgreSQL
implementation
AWS DMS
Amazon RDS
PostgreSQL
Amazon Aurora with PostgreSQL Compatibility
Durability and Availability
Scale-Out, Distributed, Log Structured Storage
Master Replica Replica Replica
Availability Zone 1
Shared Storage Volume – Transaction Aware
Primary
Database
Node
Read
Replica/
Secondary
Node
Read
Replica/
Secondary
Node
Read
Replica/
Secondary
Node
Availability Zone 2 Availability Zone 3
AWS Region
Storage
Monitoring
Database and
Instance
Monitoring
Amazon Aurora Storage Engine Overview
Data is replicated six times across three
Availability Zones
Continuous backup to Amazon S3
(built for 11 9s durability)
Continuous monitoring of nodes and disks for
repair
10 GB segments as unit of repair or hotspot
rebalance
Quorum system for read/write; latency tolerant
Quorum membership changes do not stall writes
Storage volume automatically grows up to 64 TB
AZ 1 AZ 2 AZ 3
Amazon S3
Database
Node
Storage
Node
Storage
Node
Storage
Node
Storage
Node
Storage
Node
Storage
Node
Storage
Monitoring
Faster, More Predictable Failover with Amazon Aurora
App
RunningFailure Detection DNS Propagation
Recovery
Database
Failure
Amazon RDS for PostgreSQL is good: failover times of ~60 seconds
Replica-Aware App Running
Failure Detection DNS Propagation
Recovery
Database
Failure
Amazon Aurora is better: failover times < 30 seconds
1 5 - 2 0 s e c 3 - 1 0 s e c
App
Running
Amazon Aurora with PostgreSQL Compatibility
Performance Architecture
Do fewer IOs
Minimize network packets
Offload the database engine
DO LESS WORK
Process asynchronously
Reduce latency path
Use lock-free data structures
Batch operations together
BE MORE EFFICIENT
How Does Amazon Aurora Achieve High Performance?
DATABASES ARE ALL ABOUT I/O
NETWORK-ATTACHED STORAGE IS ALL ABOUT PACKETS/SECOND
HIGH-THROUGHPUT PROCESSING NEEDS CPU AND MEMORY OPTIMIZATIONS
Write IO Traffic in an Amazon Aurora Database Node
AZ 1 AZ 3
Primary
Database
Node
Amazon S3
AZ 2
Read
Replica/
Secondary
Node
AMAZON AURORA
ASYNC
4/6 QUORUM
DISTRIBUTED
WRITES
DATAAMAZON AURORA + WAL LOG COMMIT LOG & FILES
IO FLOW
Only write WAL records; all steps asynchronous
No data block writes (checkpoint, cache replacement)
6x more log writes, but 9x less network traffic
Tolerant of network and storage outlier latency
OBSERVATIONS
2x or better PostgreSQL Community Edition performance on
write-only or mixed read-write workloads
PERFORMANCE
Boxcar log records – fully ordered by LSN
Shuffle to appropriate segments – partially ordered
Boxcar to storage nodes and issue writes
WAL
T Y P E O F W R IT E
Read
Replica/
Secondary
Node
Write IO Traffic in an Amazon Aurora Storage Node
LOG RECORDS
Primary
Database
Node
INCOMING QUEUE
STORAGE NODE
AMAZON S3 BACKUP
1
2
3
4
5
6
7
8
UPDATE
QUEUE
ACK
HOT
LOG
DATA
BLOCKS
POINT IN TIME
SNAPSHOT
GC
SCRUB
COALESCE
SORT
GROUP
PEER TO PEER GOSSIPPeer
Storage
Nodes
All steps are asynchronous
Only steps 1 and 2 are in foreground latency path
Input queue is far smaller than PostgreSQL
Favors latency-sensitive operations
Uses disk space to buffer against spikes in activity
OBSERVATIONS
IO FLOW
① Receive record and add to in-memory queue
② Persist record and acknowledge
③ Organize records and identify gaps in log
④ Gossip with peers to fill in holes
⑤ Coalesce log records into new data block versions
⑥ Periodically stage log and new block versions to Amazon
S3
⑦ Periodically garbage collect old versions
⑧ Periodically validate CRC codes on blocks
IO Traffic in Aurora Replicas
PAGE CACHE
UPDATE
Aurora Master
30% Read
70% Write
Aurora Replica
100% New Reads
Shared Multi-AZ Storage
PostgreSQL Master
30% Read
70% Write
PostgreSQL Replica
30% New Reads
70% Write
SINGLE-THREADED
WAL APPLY
Data Volume Data Volume
Physical: Ship redo (WAL) to Replica
Write workload similar on both instances
Independent storage
Physical: Ship redo (WAL) from Master to Replica
Replica shares storage: No writes performed
Cached pages have redo applied
Advance read view when all commits seen
POSTGRESQL READ SCALING AMAZON AURORA READ SCALING
Amazon Aurora with PostgreSQL Compatibility
Performance as opposed to PostgreSQL
System Configuration
PostgreSQL – Single AZ, no backup
Amazon Aurora
EBS EBS EBS
60,000 total IOPS
AZ 1 AZ 2 AZ 3
Amazon S3
r4.16xlarge
database
instance
Storage
Node
Storage
Node
Storage
Node
Storage
Node
Storage
Node
Storage
Node
r4.8xlarge
client
driver
r4.16xlarge
database
instance
r4.8xlarge
client
driver
r4.8xlarge
client
driver
Amazon S3
Amazon RDS
r4.16xlarge
30,000 iops
Amazon Aurora Is Faster on PgBench
Running the standard pgbench benchmark, Amazon Aurora delivers
1.6x the peak throughput of PostgreSQL and 2.9x at high client counts
0
5
10
15
20
25
30
35
40
45
128 256 512 768 1024 1280 1536 1792 2048
Throughput(tps,thousands)
Number of clients
pgbench tpcb-like throughput, 150 GiB
PostgreSQL (Single AZ) Amazon Aurora (Three AZs)
Amazon Aurora Is 2x–5x Faster on Sysbench
0
20
40
60
80
100
120
140
256 512 768 1024 1280 1536 1792 2048 2305 2560
writes/second,thousands
Number of clients
sysbench write-only 30 GiB
PostgreSQL (Single AZ, No Backup) Amazon Aurora (Three AZs, Continuous Backup)
2.2x 5.3x
Running the standard sysbench benchmark, Amazon Aurora delivers
> 2x the absolute peak of PostgreSQL and 5x at high client counts.
Amazon Aurora Is 4x Faster at Large Scale
Scales from 1.8x to 4.4x better as database grows from 10 GiB to 100
GiB
74
49
30
136 134 131
0
20
40
60
80
100
120
140
160
10 GiB 30 GiB 100 GiB
writes/second,thousands
Database size
sysbench write-only
PostgreSQL (Single AZ, No Backup) Amazon Aurora (Three AZs, Continuous Backup)
4.4x1.8x 2.8x
Amazon Aurora Improvements for GA
GA release improves performance on larger working sets
112
92
83
136 134 131
0
20
40
60
80
100
120
140
160
10 GiB 30 GiB 100 GiB
writes/sec.thousands
Database Size
sysbench write-only
Amazon Aurora Preview Amazon Aurora GA
Amazon Aurora Loads Data Faster
Database initialization is > 2x faster than PostgreSQL using the
standard pgbench benchmark
Copy In
Copy In
Vacuum
Vacuum
Index Build
Index Build
0 500 1000 1500 2000 2500 3000 3500 4000
PostgreSQL
Amazon Aurora
Runtime (seconds)
pgbench initialization, scale 10000 (150 GiB)
86% reduction in vacuum time
Amazon Aurora Gives > 2x Lower Response Times
Response time under heavy write load > 2x lower than PostgreSQL,
variance reduced by 99%
0.00
100.00
200.00
300.00
400.00
500.00
600.00
700.00
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Responsetime,ms
Minutes
SYSBENCH RESPONSE TIME (p95), 30 GiB, 1024 CLIENTS
PostgreSQL (Single AZ, No Backup) Amazon Aurora (Three AZs, Continuous Backup)
Amazon Aurora Has More Consistent Throughput
While running pgbench at load, throughput is 3x more consistent
than PostgreSQL
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
10 15 20 25 30 35 40 45 50 55 60
Throughput,tps
Minutes
pgbench throughput over time, 150 GiB, 1024 clients
PostgreSQL (Single AZ) Amazon Aurora (Three AZs)
Amazon Aurora Reduced Recovery Time Up to 97%
Transaction-aware storage system recovers almost instantly
3 GiB redo
recovered in 19 seconds
10 GiB redo
recovered in 50 seconds
30 GiB redo
recovered in 123 seconds
Amazon Aurora has no redo.
Recovered in 3 seconds while maintaining
significantly greater throughput.
0
20
40
60
80
100
120
140
160
0 20000 40000 60000 80000 100000 120000 140000
Recoverytimeinseconds(lessisbetter)
writes/second (more is better)
Recovery time from crash under load
Bubble size represents redo log which must be recovered
As PostgreSQL throughput
goes up, so does log size
and crash recovery time.
Amazon Aurora with PostgreSQL Compatibility
Performance by the Numbers
Measurement Result
PgBench Up to 2.9x faster
Sysbench 2x–5x faster
Vacuum Time reduced up to 86%
Response time > 2x lower, 99% < variance
Throughput jitter 3x more consistent
Throughput at scale 4x faster
Recovery speed Time reduced up to 97%
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Database Migration
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
DB migration is part of the cloud journey
How quickly and easily can I migrate my on-premises data to the cloud?
How can I minimize application downtime during database migration?
Are there ways to automate schema conversion and conflict analysis?
How can my databases be merged or modularized during the migration for data
consolidation and application refactoring?
Can I migrate off commercial databases?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What are DMS and SCT?
AWS Database Migration Service (DMS) easily and securely
migrates and/or replicates your databases and data
warehouses to AWS
AWS Schema Conversion Tool (SCT) converts your commercial
database and data warehouse schemas to open-source engines or
AWS-native services, such as Amazon Aurora and Amazon Redshift
We have migrated over 45,000 unique databases. And counting…
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Introduction to Performance Insights
Kyle Hailey
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What Is Performance Insights?
Customers ask for
• Visibility into performance of RDS databases
• Want to optimize cloud database workloads
• Easy tool
• Often only part time DBA or no DBA
• Single Pane of glass
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
First Step: RDS Enhanced Monitoring
Released 2016
OS Metrics
Process/thread List
Down to 1 second granularity
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Introducing: Performance Insights
Dashboard
• DB load
• Adjustable timeframe
• Filterable by attribute (SQL, User, Host, Wait)
• SQL causing load
Phased RDS delivery
• Aurora, MySQL/MariaDB, PostgreSQL, Commercial DB
Guided discovery of performance problems
• For both beginners and experts
• Core metric “Database Load”
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What Is “Database Load”?
All engines have a connections list showing
• active
• Idle
We sample every second
• For each active session, collect
• SQL,
• State :CPU, I/O, Lock, Commit log wait, and so on
• Host
• User
Expose as “Average Active Sessions” (AAS)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Performance Insights Dashboard
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Sampling Every Second
Query run often
Fast query run rarely
Slow query
User 1
User 2
User 3
Time
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Sampling Is Like a Movie
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Load Chart: Average Active Sessions(AAS)
User 1
User 2
User 3
User 4
Active Sessions
=
1
2
3
4
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Queries Running Indicate Active Sessions
idleidle idle idleQuery 1 Query 2 Query 3
Time
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Different Active Session States
CPU IO Wait
idleidle idle idleQuery 1 Query 2 Query 3
Time
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AAS by Session State
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Showing Per Second Samples
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AAS over 1-Minute Averages
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AAS Compared to Max CPU
Max vCPU
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Use CPU Count As Yardstick
AAS < 1
• Database is not blocked
AAS ~= 0
• Database basically idle
• Problems are in the APP not DB
AAS < # of CPUs
• CPU available
• Are any single sessions 100% active?
AAS > # of CPUs
• Could have performance problems
AAS >> # of CPUS
• There is a bottleneck
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Idle Database
Bottleneck is not the database
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Performance Insights Useful for Sizing
Load << less than #vCPU: oversized
Load > #vCPU: undersized
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Access to Performance Insights
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Access to Performance Insights
High
Load
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Summary: Amazon RDS Performance Insights
 DB Load : Average Active Sessions
 Identifies database bottlenecks
 Easy
 Powerful
 Top SQL
 Identifies source of bottleneck
 Enables Problem Discovery
 Adjustable Time frame
 Hour, day, week and longer
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
pgbench
Gowri Subramanian
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
pgbench
 Simple program for running benchmark tests on PostgreSQL
 Runs the same sequence of SQL commands using multiple concurrent database
sessions
 Actual Pgbench schema is like TPC-B (we will use migrated HR schema for load
testing)
 Provides average transaction rate (transactions per second)
Sample pgbench command
pgbench -h <Cluster_Endpoint> -n -U <user> -d <db_name> -c <No of sessions> -T
<duration in seconds> -f <SQL File>
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
pgbench—Sample Output
transaction type: Custom query
scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
duration: 300 s
number of transactions actually processed: 35287*5
tps = 117.574256 (including connections establishing)
tps = 119.573901 (excluding connections establishing)
statement latencies in milliseconds:
83.602274select add_employee_data(5);
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Aurora Best Practices
Jignesh Shah
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
PostgreSQL Events and Logs
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Read Replica Lag
Increase wal_keep_segments to allow replicas to catch up after
interruption
Use wal_compression = on
Use higher checkpoint_timeout
Use hot_standby_feedback = on on read replicas
Use similar sized Instance size
Lag for replicas vs long running queries on replicas
• max_standby_archive_delay
• max_standby_streaming_delay
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CloudWatch—Replication Lag
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Fast Failover Using JDBC Driver
Aggressively set TCP keepalives parameters
• to ensure long running queries are killed before read timeout
expires in case of failover
Reducing DNS caching timeouts in Java application
• to ensure Aurora Read-Only Endpoint can properly cycle through
read-only nodes on subsequent connection attempts
Use the provided read and write Aurora endpoints
• to establish a connection to the cluster
Use RDS APIs to test application response on server-side failures
Use a package dropping tool to test application response for client-side
failures
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Maintenance: Bloat Management
MVCC in PostgreSQL
• DELETE operations mark a row as dead
• UPDATE operations are essentially
• Marking current row version as dead
• Row with new version is added
• Eventually, all dead rows need to be garbage collected
VACUUM utility
• Cleans up dead rows but does not release space to OS
• FULL option also reorganizes the table to release space to OS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AUTOVACUUM Tuning
For 24/7 constant load on Database server
• AUTOVACUUM may not get a chance to finish its job
For high number of tables
• Increase autovacuum_max_workers from default 3 to higher number
• Increase autovacuum_vacuum_cost_limit
• Note: With this change, there may be performance impact
For large tables use
• Decrease autovacuum_vacuum_scale_factor from 0.2 (20%) to 0.05
(5%)
• ALTER TABLE myablename SET autovacuum_scale_factor = 0.02
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Managing Bloat: Extension—pg_repack
Reorganizes Table with a very short lock
• Must have PRIMARY key or UNIQUE NOT-NULL key
Quick Setup
• Add pg_repack to shared_preload_libraries in a custom parameter group
in PostgreSQL 9.6 family
• CREATE EXTENSION pg_repack
• Use pg_repack client utility using rds_superuser privileges with –k option
pg_repack -h myproductiondb.cw7jjfgdr4on8.us-west-
2.rds.amazonaws.com -U pgadmin -k postgres
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Avoiding Transaction ID Wraparound
Each unit of work (even read-only queries) is a transaction
Each transaction is tracked by transaction ID, which is 32 bit
Two billion “in-flight” un-vacuumed transactions before PostgreSQL takes
dramatic action to avoid data loss
If the number of un-vacuumed transactions reaches (2^31 - 1,000,000):
• PostgreSQL sets the database to read-only mode and requires an
offline, single-user, standalone vacuum
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CloudWatch Metric—Max Used Trans IDs
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Performance Tuning
Module—auto_explain (9.6.3+ only)
Verify auto_explain is in shared_preload_libraries
Set following values in db parameters
• auto_explain.log_min_duration = 5000
• auto_explain.log_nested_statements = on
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Performance Tuning
Extension—pg_stat_statements
CREATE EXTENSION pg_stat_statements
SELECT * from pg_stat_statements order by total_time DESC;
-[ RECORD 2 ]-------+--------
userid | 16388
dbid | 16464
queryid | 4286627671
query | UPDATE pgbench_accounts SET abalance = abalance + ? WHERE aid = ?;
calls | 165125
total_time | 5251.54200000001
min_time | 0.015
max_time | 5.558
mean_time | 0.0318034337623008
stddev_time | 0.0369181019548524
rows | 165125
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!

More Related Content

What's hot

STG316_Optimizing Storage for Big Data Workloads
STG316_Optimizing Storage for Big Data WorkloadsSTG316_Optimizing Storage for Big Data Workloads
STG316_Optimizing Storage for Big Data WorkloadsAmazon Web Services
 
Quilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWSQuilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWSAjith Jose
 
Amazon Elastic Block Store for Application Storage
Amazon Elastic Block Store for Application StorageAmazon Elastic Block Store for Application Storage
Amazon Elastic Block Store for Application StorageAmazon Web Services
 
AWS Data Transfer Services - AWS Gateway, AWS Snowball, AWS Snowball Edge, an...
AWS Data Transfer Services - AWS Gateway, AWS Snowball, AWS Snowball Edge, an...AWS Data Transfer Services - AWS Gateway, AWS Snowball, AWS Snowball Edge, an...
AWS Data Transfer Services - AWS Gateway, AWS Snowball, AWS Snowball Edge, an...Amazon Web Services
 
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017Amazon Web Services
 
STG301_Deep Dive on Amazon S3 and Glacier Architecture
STG301_Deep Dive on Amazon S3 and Glacier ArchitectureSTG301_Deep Dive on Amazon S3 and Glacier Architecture
STG301_Deep Dive on Amazon S3 and Glacier ArchitectureAmazon Web Services
 
DAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep DiveDAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep DiveAmazon Web Services
 
CTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsCTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsAmazon Web Services
 
DAT321_How Careem Used Amazon ElastiCache for Redis to Accelerate Their Ride ...
DAT321_How Careem Used Amazon ElastiCache for Redis to Accelerate Their Ride ...DAT321_How Careem Used Amazon ElastiCache for Redis to Accelerate Their Ride ...
DAT321_How Careem Used Amazon ElastiCache for Redis to Accelerate Their Ride ...Amazon Web Services
 
Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017
Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017
Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017Amazon Web Services
 
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...Amazon Web Services
 
Batch Processing with Containers on AWS - CON304 - re:Invent 2017
Batch Processing with Containers on AWS - CON304 - re:Invent 2017Batch Processing with Containers on AWS - CON304 - re:Invent 2017
Batch Processing with Containers on AWS - CON304 - re:Invent 2017Amazon Web Services
 

What's hot (20)

STG316_Optimizing Storage for Big Data Workloads
STG316_Optimizing Storage for Big Data WorkloadsSTG316_Optimizing Storage for Big Data Workloads
STG316_Optimizing Storage for Big Data Workloads
 
Quilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWSQuilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWS
 
Amazon Elastic Block Store for Application Storage
Amazon Elastic Block Store for Application StorageAmazon Elastic Block Store for Application Storage
Amazon Elastic Block Store for Application Storage
 
AWS Data Transfer Services - AWS Gateway, AWS Snowball, AWS Snowball Edge, an...
AWS Data Transfer Services - AWS Gateway, AWS Snowball, AWS Snowball Edge, an...AWS Data Transfer Services - AWS Gateway, AWS Snowball, AWS Snowball Edge, an...
AWS Data Transfer Services - AWS Gateway, AWS Snowball, AWS Snowball Edge, an...
 
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
 
STG301_Deep Dive on Amazon S3 and Glacier Architecture
STG301_Deep Dive on Amazon S3 and Glacier ArchitectureSTG301_Deep Dive on Amazon S3 and Glacier Architecture
STG301_Deep Dive on Amazon S3 and Glacier Architecture
 
DAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep DiveDAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep Dive
 
CTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsCTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video Workflows
 
Deep Dive on Amazon RDS
Deep Dive on Amazon RDSDeep Dive on Amazon RDS
Deep Dive on Amazon RDS
 
DAT321_How Careem Used Amazon ElastiCache for Redis to Accelerate Their Ride ...
DAT321_How Careem Used Amazon ElastiCache for Redis to Accelerate Their Ride ...DAT321_How Careem Used Amazon ElastiCache for Redis to Accelerate Their Ride ...
DAT321_How Careem Used Amazon ElastiCache for Redis to Accelerate Their Ride ...
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017
Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017
Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017
 
Amazon Aurora
Amazon AuroraAmazon Aurora
Amazon Aurora
 
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
 
AWS Route53
AWS Route53AWS Route53
AWS Route53
 
Batch Processing with Containers on AWS - CON304 - re:Invent 2017
Batch Processing with Containers on AWS - CON304 - re:Invent 2017Batch Processing with Containers on AWS - CON304 - re:Invent 2017
Batch Processing with Containers on AWS - CON304 - re:Invent 2017
 
Oracle on AWS
Oracle on AWSOracle on AWS
Oracle on AWS
 
SQL Server on AWS
SQL Server on AWSSQL Server on AWS
SQL Server on AWS
 
AWS Storage State of the Union
AWS Storage State of the UnionAWS Storage State of the Union
AWS Storage State of the Union
 
Amazon Aurora
Amazon AuroraAmazon Aurora
Amazon Aurora
 

Similar to DAT340_Hands-On Journey for Migrating Oracle Databases to the Amazon Aurora PostgreSQL-Compatible Edition

SRV407 Deep Dive on Amazon Aurora
SRV407 Deep Dive on Amazon AuroraSRV407 Deep Dive on Amazon Aurora
SRV407 Deep Dive on Amazon AuroraAmazon Web Services
 
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...Amazon Web Services
 
NEW LAUNCH! Introducing PostgreSQL compatibility for Amazon Aurora
NEW LAUNCH! Introducing PostgreSQL compatibility for Amazon AuroraNEW LAUNCH! Introducing PostgreSQL compatibility for Amazon Aurora
NEW LAUNCH! Introducing PostgreSQL compatibility for Amazon AuroraAmazon Web Services
 
Amazon (AWS) Aurora
Amazon (AWS) AuroraAmazon (AWS) Aurora
Amazon (AWS) AuroraPGConf APAC
 
Migrating Your Oracle & SQL Server Databases to Amazon Aurora (DAT318) - AWS ...
Migrating Your Oracle & SQL Server Databases to Amazon Aurora (DAT318) - AWS ...Migrating Your Oracle & SQL Server Databases to Amazon Aurora (DAT318) - AWS ...
Migrating Your Oracle & SQL Server Databases to Amazon Aurora (DAT318) - AWS ...Amazon Web Services
 
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...Amazon Web Services
 
DAT316_Report from the field on Aurora PostgreSQL Performance
DAT316_Report from the field on Aurora PostgreSQL PerformanceDAT316_Report from the field on Aurora PostgreSQL Performance
DAT316_Report from the field on Aurora PostgreSQL PerformanceAmazon Web Services
 
SRV407 Deep Dive on Amazon Aurora
SRV407 Deep Dive on Amazon AuroraSRV407 Deep Dive on Amazon Aurora
SRV407 Deep Dive on Amazon AuroraAmazon Web Services
 
Introducing Amazon Aurora with PostgreSQL Compatibility - AWS Online Tech Talks
Introducing Amazon Aurora with PostgreSQL Compatibility - AWS Online Tech TalksIntroducing Amazon Aurora with PostgreSQL Compatibility - AWS Online Tech Talks
Introducing Amazon Aurora with PostgreSQL Compatibility - AWS Online Tech TalksAmazon Web Services
 
AWS re:Invent 2016: Amazon Aurora Deep Dive (GPST402)
AWS re:Invent 2016: Amazon Aurora Deep Dive (GPST402)AWS re:Invent 2016: Amazon Aurora Deep Dive (GPST402)
AWS re:Invent 2016: Amazon Aurora Deep Dive (GPST402)Amazon Web Services
 
Getting Started with Amazon Aurora
Getting Started with Amazon AuroraGetting Started with Amazon Aurora
Getting Started with Amazon AuroraAmazon Web Services
 

Similar to DAT340_Hands-On Journey for Migrating Oracle Databases to the Amazon Aurora PostgreSQL-Compatible Edition (20)

SRV407 Deep Dive on Amazon Aurora
SRV407 Deep Dive on Amazon AuroraSRV407 Deep Dive on Amazon Aurora
SRV407 Deep Dive on Amazon Aurora
 
What’s New in Amazon Aurora
What’s New in Amazon AuroraWhat’s New in Amazon Aurora
What’s New in Amazon Aurora
 
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
 
NEW LAUNCH! Introducing PostgreSQL compatibility for Amazon Aurora
NEW LAUNCH! Introducing PostgreSQL compatibility for Amazon AuroraNEW LAUNCH! Introducing PostgreSQL compatibility for Amazon Aurora
NEW LAUNCH! Introducing PostgreSQL compatibility for Amazon Aurora
 
What’s New in Amazon Aurora
What’s New in Amazon AuroraWhat’s New in Amazon Aurora
What’s New in Amazon Aurora
 
Amazon (AWS) Aurora
Amazon (AWS) AuroraAmazon (AWS) Aurora
Amazon (AWS) Aurora
 
What's New in Amazon Aurora
What's New in Amazon AuroraWhat's New in Amazon Aurora
What's New in Amazon Aurora
 
Amazon Aurora: Under the Hood
Amazon Aurora: Under the HoodAmazon Aurora: Under the Hood
Amazon Aurora: Under the Hood
 
Deep Dive on Amazon Aurora
Deep Dive on Amazon AuroraDeep Dive on Amazon Aurora
Deep Dive on Amazon Aurora
 
Amazon Aurora 深度探討
Amazon Aurora 深度探討Amazon Aurora 深度探討
Amazon Aurora 深度探討
 
Migrating Your Oracle & SQL Server Databases to Amazon Aurora (DAT318) - AWS ...
Migrating Your Oracle & SQL Server Databases to Amazon Aurora (DAT318) - AWS ...Migrating Your Oracle & SQL Server Databases to Amazon Aurora (DAT318) - AWS ...
Migrating Your Oracle & SQL Server Databases to Amazon Aurora (DAT318) - AWS ...
 
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...
 
DAT316_Report from the field on Aurora PostgreSQL Performance
DAT316_Report from the field on Aurora PostgreSQL PerformanceDAT316_Report from the field on Aurora PostgreSQL Performance
DAT316_Report from the field on Aurora PostgreSQL Performance
 
SRV407 Deep Dive on Amazon Aurora
SRV407 Deep Dive on Amazon AuroraSRV407 Deep Dive on Amazon Aurora
SRV407 Deep Dive on Amazon Aurora
 
Introducing Amazon Aurora with PostgreSQL Compatibility - AWS Online Tech Talks
Introducing Amazon Aurora with PostgreSQL Compatibility - AWS Online Tech TalksIntroducing Amazon Aurora with PostgreSQL Compatibility - AWS Online Tech Talks
Introducing Amazon Aurora with PostgreSQL Compatibility - AWS Online Tech Talks
 
Deep Dive on Amazon Aurora
Deep Dive on Amazon AuroraDeep Dive on Amazon Aurora
Deep Dive on Amazon Aurora
 
Deep Dive on Amazon Aurora
Deep Dive on Amazon AuroraDeep Dive on Amazon Aurora
Deep Dive on Amazon Aurora
 
AWS re:Invent 2016: Amazon Aurora Deep Dive (GPST402)
AWS re:Invent 2016: Amazon Aurora Deep Dive (GPST402)AWS re:Invent 2016: Amazon Aurora Deep Dive (GPST402)
AWS re:Invent 2016: Amazon Aurora Deep Dive (GPST402)
 
What's New in Amazon Aurora
What's New in Amazon AuroraWhat's New in Amazon Aurora
What's New in Amazon Aurora
 
Getting Started with Amazon Aurora
Getting Started with Amazon AuroraGetting Started with Amazon Aurora
Getting Started with Amazon Aurora
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

DAT340_Hands-On Journey for Migrating Oracle Databases to the Amazon Aurora PostgreSQL-Compatible Edition

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Hands-On Journey for Migrating Oracle Databases to the Amazon Aurora PostgreSQL-Compatible Edition S a m e e r M a l i k G o w r i B a l a s u b r a m a n i a n K y l e H a i l e y K e v i n J e r n i g a n J i g n e s h S h a h N o v e m b e r 2 8 , 2 0 1 7 AWS re:INVENT
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Introduction Gowri Balasubramanian
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What to Expect from This Session • Introduction to Aurora PostgreSQL and DMS • LAB1: Oracle to Aurora PostgreSQL Migration using AWS SCT and DMS • LAB2:Walk-Through of Aurora Console and DBA Tasks • Introduction to Performance Insights • LAB3: Performance Analysis Using PI • Aurora Best Practices for DBAs and Wrap-Up
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Aurora with PostgreSQL compatibility Kevin Jernigan
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Reimagining the Relational Database What if you were inventing the database today? You would break apart the stack You would build something that:  Can scale out…  Is self-healing…  Leverages distributed services…
  • 6. A Service-Oriented Architecture Applied to the Database Move the logging and storage layer into a multitenant, scale-out, database-optimized storage service Integrate with other AWS services like Amazon Elastic Compute Cloud (Amazon EC2), Amazon Virtual Private Cloud (Amazon VPC), Amazon DynamoDB, Amazon Simple Workflow Service (Amazon SWF), and Amazon Route 53 for control and monitoring Make it a managed service – using Amazon Relational Database Service (Amazon RDS). Takes care of management and administrative functions. Amazon DynamoDB Amazon SWF Amazon Route 53 Logging + Storage SQL Transactions Caching Amazon S3 1 2 3 Amazon RDS
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. PostgreSQL – Open Source Database • Open source database • In active development for 20 years • Owned by a foundation, not a single company • Permissive innovation-friendly open source license • High performance out of the box • Object-oriented and ANSI-SQL:2008 compatible • Most geospatial features of any open source database • Supports stored procedures in 12 languages (Java, Perl, Python, Ruby, Tcl, C/C++, its own Oracle-like PL/pgSQL, and so on) • Most Oracle-compatible open source databases • Highest AWS Schema Conversion Tool automatic conversion rates are from Oracle to PostgreSQL
  • 8. PostgreSQL Compatibility PostgreSQL 9.6 + Amazon Aurora cloud-optimized storage  Performance: 2x to 3x higher throughput than PostgreSQL alone  Availability: failover time of < 30 seconds  Durability: six copies across three Availability Zones  Read Replicas: single-digit millisecond lag times on up to 15 replicas Amazon Aurora Storage
  • 9. PostgreSQL Compatibility Cloud-native security and encryption  AWS Key Management Service (AWS KMS)  AWS Identity and Access Management (IAM) Easy to manage with Amazon RDS Easy to load and unload  AWS Database Migration Service  AWS Schema Conversion Tool Fully compatible with PostgreSQL, now and for the foreseeable future  Not a compatibility layer – native PostgreSQL implementation AWS DMS Amazon RDS PostgreSQL
  • 10. Amazon Aurora with PostgreSQL Compatibility Durability and Availability
  • 11. Scale-Out, Distributed, Log Structured Storage Master Replica Replica Replica Availability Zone 1 Shared Storage Volume – Transaction Aware Primary Database Node Read Replica/ Secondary Node Read Replica/ Secondary Node Read Replica/ Secondary Node Availability Zone 2 Availability Zone 3 AWS Region Storage Monitoring Database and Instance Monitoring
  • 12. Amazon Aurora Storage Engine Overview Data is replicated six times across three Availability Zones Continuous backup to Amazon S3 (built for 11 9s durability) Continuous monitoring of nodes and disks for repair 10 GB segments as unit of repair or hotspot rebalance Quorum system for read/write; latency tolerant Quorum membership changes do not stall writes Storage volume automatically grows up to 64 TB AZ 1 AZ 2 AZ 3 Amazon S3 Database Node Storage Node Storage Node Storage Node Storage Node Storage Node Storage Node Storage Monitoring
  • 13. Faster, More Predictable Failover with Amazon Aurora App RunningFailure Detection DNS Propagation Recovery Database Failure Amazon RDS for PostgreSQL is good: failover times of ~60 seconds Replica-Aware App Running Failure Detection DNS Propagation Recovery Database Failure Amazon Aurora is better: failover times < 30 seconds 1 5 - 2 0 s e c 3 - 1 0 s e c App Running
  • 14. Amazon Aurora with PostgreSQL Compatibility Performance Architecture
  • 15. Do fewer IOs Minimize network packets Offload the database engine DO LESS WORK Process asynchronously Reduce latency path Use lock-free data structures Batch operations together BE MORE EFFICIENT How Does Amazon Aurora Achieve High Performance? DATABASES ARE ALL ABOUT I/O NETWORK-ATTACHED STORAGE IS ALL ABOUT PACKETS/SECOND HIGH-THROUGHPUT PROCESSING NEEDS CPU AND MEMORY OPTIMIZATIONS
  • 16. Write IO Traffic in an Amazon Aurora Database Node AZ 1 AZ 3 Primary Database Node Amazon S3 AZ 2 Read Replica/ Secondary Node AMAZON AURORA ASYNC 4/6 QUORUM DISTRIBUTED WRITES DATAAMAZON AURORA + WAL LOG COMMIT LOG & FILES IO FLOW Only write WAL records; all steps asynchronous No data block writes (checkpoint, cache replacement) 6x more log writes, but 9x less network traffic Tolerant of network and storage outlier latency OBSERVATIONS 2x or better PostgreSQL Community Edition performance on write-only or mixed read-write workloads PERFORMANCE Boxcar log records – fully ordered by LSN Shuffle to appropriate segments – partially ordered Boxcar to storage nodes and issue writes WAL T Y P E O F W R IT E Read Replica/ Secondary Node
  • 17. Write IO Traffic in an Amazon Aurora Storage Node LOG RECORDS Primary Database Node INCOMING QUEUE STORAGE NODE AMAZON S3 BACKUP 1 2 3 4 5 6 7 8 UPDATE QUEUE ACK HOT LOG DATA BLOCKS POINT IN TIME SNAPSHOT GC SCRUB COALESCE SORT GROUP PEER TO PEER GOSSIPPeer Storage Nodes All steps are asynchronous Only steps 1 and 2 are in foreground latency path Input queue is far smaller than PostgreSQL Favors latency-sensitive operations Uses disk space to buffer against spikes in activity OBSERVATIONS IO FLOW ① Receive record and add to in-memory queue ② Persist record and acknowledge ③ Organize records and identify gaps in log ④ Gossip with peers to fill in holes ⑤ Coalesce log records into new data block versions ⑥ Periodically stage log and new block versions to Amazon S3 ⑦ Periodically garbage collect old versions ⑧ Periodically validate CRC codes on blocks
  • 18. IO Traffic in Aurora Replicas PAGE CACHE UPDATE Aurora Master 30% Read 70% Write Aurora Replica 100% New Reads Shared Multi-AZ Storage PostgreSQL Master 30% Read 70% Write PostgreSQL Replica 30% New Reads 70% Write SINGLE-THREADED WAL APPLY Data Volume Data Volume Physical: Ship redo (WAL) to Replica Write workload similar on both instances Independent storage Physical: Ship redo (WAL) from Master to Replica Replica shares storage: No writes performed Cached pages have redo applied Advance read view when all commits seen POSTGRESQL READ SCALING AMAZON AURORA READ SCALING
  • 19. Amazon Aurora with PostgreSQL Compatibility Performance as opposed to PostgreSQL
  • 20. System Configuration PostgreSQL – Single AZ, no backup Amazon Aurora EBS EBS EBS 60,000 total IOPS AZ 1 AZ 2 AZ 3 Amazon S3 r4.16xlarge database instance Storage Node Storage Node Storage Node Storage Node Storage Node Storage Node r4.8xlarge client driver r4.16xlarge database instance r4.8xlarge client driver r4.8xlarge client driver Amazon S3 Amazon RDS r4.16xlarge 30,000 iops
  • 21. Amazon Aurora Is Faster on PgBench Running the standard pgbench benchmark, Amazon Aurora delivers 1.6x the peak throughput of PostgreSQL and 2.9x at high client counts 0 5 10 15 20 25 30 35 40 45 128 256 512 768 1024 1280 1536 1792 2048 Throughput(tps,thousands) Number of clients pgbench tpcb-like throughput, 150 GiB PostgreSQL (Single AZ) Amazon Aurora (Three AZs)
  • 22. Amazon Aurora Is 2x–5x Faster on Sysbench 0 20 40 60 80 100 120 140 256 512 768 1024 1280 1536 1792 2048 2305 2560 writes/second,thousands Number of clients sysbench write-only 30 GiB PostgreSQL (Single AZ, No Backup) Amazon Aurora (Three AZs, Continuous Backup) 2.2x 5.3x Running the standard sysbench benchmark, Amazon Aurora delivers > 2x the absolute peak of PostgreSQL and 5x at high client counts.
  • 23. Amazon Aurora Is 4x Faster at Large Scale Scales from 1.8x to 4.4x better as database grows from 10 GiB to 100 GiB 74 49 30 136 134 131 0 20 40 60 80 100 120 140 160 10 GiB 30 GiB 100 GiB writes/second,thousands Database size sysbench write-only PostgreSQL (Single AZ, No Backup) Amazon Aurora (Three AZs, Continuous Backup) 4.4x1.8x 2.8x
  • 24. Amazon Aurora Improvements for GA GA release improves performance on larger working sets 112 92 83 136 134 131 0 20 40 60 80 100 120 140 160 10 GiB 30 GiB 100 GiB writes/sec.thousands Database Size sysbench write-only Amazon Aurora Preview Amazon Aurora GA
  • 25. Amazon Aurora Loads Data Faster Database initialization is > 2x faster than PostgreSQL using the standard pgbench benchmark Copy In Copy In Vacuum Vacuum Index Build Index Build 0 500 1000 1500 2000 2500 3000 3500 4000 PostgreSQL Amazon Aurora Runtime (seconds) pgbench initialization, scale 10000 (150 GiB) 86% reduction in vacuum time
  • 26. Amazon Aurora Gives > 2x Lower Response Times Response time under heavy write load > 2x lower than PostgreSQL, variance reduced by 99% 0.00 100.00 200.00 300.00 400.00 500.00 600.00 700.00 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Responsetime,ms Minutes SYSBENCH RESPONSE TIME (p95), 30 GiB, 1024 CLIENTS PostgreSQL (Single AZ, No Backup) Amazon Aurora (Three AZs, Continuous Backup)
  • 27. Amazon Aurora Has More Consistent Throughput While running pgbench at load, throughput is 3x more consistent than PostgreSQL 0 5000 10000 15000 20000 25000 30000 35000 40000 45000 10 15 20 25 30 35 40 45 50 55 60 Throughput,tps Minutes pgbench throughput over time, 150 GiB, 1024 clients PostgreSQL (Single AZ) Amazon Aurora (Three AZs)
  • 28. Amazon Aurora Reduced Recovery Time Up to 97% Transaction-aware storage system recovers almost instantly 3 GiB redo recovered in 19 seconds 10 GiB redo recovered in 50 seconds 30 GiB redo recovered in 123 seconds Amazon Aurora has no redo. Recovered in 3 seconds while maintaining significantly greater throughput. 0 20 40 60 80 100 120 140 160 0 20000 40000 60000 80000 100000 120000 140000 Recoverytimeinseconds(lessisbetter) writes/second (more is better) Recovery time from crash under load Bubble size represents redo log which must be recovered As PostgreSQL throughput goes up, so does log size and crash recovery time.
  • 29. Amazon Aurora with PostgreSQL Compatibility Performance by the Numbers Measurement Result PgBench Up to 2.9x faster Sysbench 2x–5x faster Vacuum Time reduced up to 86% Response time > 2x lower, 99% < variance Throughput jitter 3x more consistent Throughput at scale 4x faster Recovery speed Time reduced up to 97%
  • 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Database Migration
  • 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. DB migration is part of the cloud journey How quickly and easily can I migrate my on-premises data to the cloud? How can I minimize application downtime during database migration? Are there ways to automate schema conversion and conflict analysis? How can my databases be merged or modularized during the migration for data consolidation and application refactoring? Can I migrate off commercial databases?
  • 32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What are DMS and SCT? AWS Database Migration Service (DMS) easily and securely migrates and/or replicates your databases and data warehouses to AWS AWS Schema Conversion Tool (SCT) converts your commercial database and data warehouse schemas to open-source engines or AWS-native services, such as Amazon Aurora and Amazon Redshift We have migrated over 45,000 unique databases. And counting…
  • 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Introduction to Performance Insights Kyle Hailey
  • 34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What Is Performance Insights? Customers ask for • Visibility into performance of RDS databases • Want to optimize cloud database workloads • Easy tool • Often only part time DBA or no DBA • Single Pane of glass
  • 35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. First Step: RDS Enhanced Monitoring Released 2016 OS Metrics Process/thread List Down to 1 second granularity
  • 36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Introducing: Performance Insights Dashboard • DB load • Adjustable timeframe • Filterable by attribute (SQL, User, Host, Wait) • SQL causing load Phased RDS delivery • Aurora, MySQL/MariaDB, PostgreSQL, Commercial DB Guided discovery of performance problems • For both beginners and experts • Core metric “Database Load”
  • 37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What Is “Database Load”? All engines have a connections list showing • active • Idle We sample every second • For each active session, collect • SQL, • State :CPU, I/O, Lock, Commit log wait, and so on • Host • User Expose as “Average Active Sessions” (AAS)
  • 38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Performance Insights Dashboard
  • 39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Sampling Every Second Query run often Fast query run rarely Slow query User 1 User 2 User 3 Time
  • 40. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Sampling Is Like a Movie
  • 41. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Load Chart: Average Active Sessions(AAS) User 1 User 2 User 3 User 4 Active Sessions = 1 2 3 4
  • 42. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Queries Running Indicate Active Sessions idleidle idle idleQuery 1 Query 2 Query 3 Time
  • 43. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Different Active Session States CPU IO Wait idleidle idle idleQuery 1 Query 2 Query 3 Time
  • 44. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AAS by Session State
  • 45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Showing Per Second Samples
  • 46. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AAS over 1-Minute Averages
  • 47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AAS Compared to Max CPU Max vCPU
  • 48. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Use CPU Count As Yardstick AAS < 1 • Database is not blocked AAS ~= 0 • Database basically idle • Problems are in the APP not DB AAS < # of CPUs • CPU available • Are any single sessions 100% active? AAS > # of CPUs • Could have performance problems AAS >> # of CPUS • There is a bottleneck
  • 49. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Idle Database Bottleneck is not the database
  • 50. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Performance Insights Useful for Sizing Load << less than #vCPU: oversized Load > #vCPU: undersized
  • 51. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Access to Performance Insights
  • 52. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Access to Performance Insights High Load
  • 53. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Summary: Amazon RDS Performance Insights  DB Load : Average Active Sessions  Identifies database bottlenecks  Easy  Powerful  Top SQL  Identifies source of bottleneck  Enables Problem Discovery  Adjustable Time frame  Hour, day, week and longer
  • 54. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. pgbench Gowri Subramanian
  • 55. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. pgbench  Simple program for running benchmark tests on PostgreSQL  Runs the same sequence of SQL commands using multiple concurrent database sessions  Actual Pgbench schema is like TPC-B (we will use migrated HR schema for load testing)  Provides average transaction rate (transactions per second) Sample pgbench command pgbench -h <Cluster_Endpoint> -n -U <user> -d <db_name> -c <No of sessions> -T <duration in seconds> -f <SQL File>
  • 56. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. pgbench—Sample Output transaction type: Custom query scaling factor: 1 query mode: simple number of clients: 10 number of threads: 1 duration: 300 s number of transactions actually processed: 35287*5 tps = 117.574256 (including connections establishing) tps = 119.573901 (excluding connections establishing) statement latencies in milliseconds: 83.602274select add_employee_data(5);
  • 57. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Aurora Best Practices Jignesh Shah
  • 58. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. PostgreSQL Events and Logs
  • 59. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Read Replica Lag Increase wal_keep_segments to allow replicas to catch up after interruption Use wal_compression = on Use higher checkpoint_timeout Use hot_standby_feedback = on on read replicas Use similar sized Instance size Lag for replicas vs long running queries on replicas • max_standby_archive_delay • max_standby_streaming_delay
  • 60. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CloudWatch—Replication Lag
  • 61. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fast Failover Using JDBC Driver Aggressively set TCP keepalives parameters • to ensure long running queries are killed before read timeout expires in case of failover Reducing DNS caching timeouts in Java application • to ensure Aurora Read-Only Endpoint can properly cycle through read-only nodes on subsequent connection attempts Use the provided read and write Aurora endpoints • to establish a connection to the cluster Use RDS APIs to test application response on server-side failures Use a package dropping tool to test application response for client-side failures
  • 62. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Maintenance: Bloat Management MVCC in PostgreSQL • DELETE operations mark a row as dead • UPDATE operations are essentially • Marking current row version as dead • Row with new version is added • Eventually, all dead rows need to be garbage collected VACUUM utility • Cleans up dead rows but does not release space to OS • FULL option also reorganizes the table to release space to OS
  • 63. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AUTOVACUUM Tuning For 24/7 constant load on Database server • AUTOVACUUM may not get a chance to finish its job For high number of tables • Increase autovacuum_max_workers from default 3 to higher number • Increase autovacuum_vacuum_cost_limit • Note: With this change, there may be performance impact For large tables use • Decrease autovacuum_vacuum_scale_factor from 0.2 (20%) to 0.05 (5%) • ALTER TABLE myablename SET autovacuum_scale_factor = 0.02
  • 64. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Managing Bloat: Extension—pg_repack Reorganizes Table with a very short lock • Must have PRIMARY key or UNIQUE NOT-NULL key Quick Setup • Add pg_repack to shared_preload_libraries in a custom parameter group in PostgreSQL 9.6 family • CREATE EXTENSION pg_repack • Use pg_repack client utility using rds_superuser privileges with –k option pg_repack -h myproductiondb.cw7jjfgdr4on8.us-west- 2.rds.amazonaws.com -U pgadmin -k postgres
  • 65. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Avoiding Transaction ID Wraparound Each unit of work (even read-only queries) is a transaction Each transaction is tracked by transaction ID, which is 32 bit Two billion “in-flight” un-vacuumed transactions before PostgreSQL takes dramatic action to avoid data loss If the number of un-vacuumed transactions reaches (2^31 - 1,000,000): • PostgreSQL sets the database to read-only mode and requires an offline, single-user, standalone vacuum
  • 66. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CloudWatch Metric—Max Used Trans IDs
  • 67. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Performance Tuning Module—auto_explain (9.6.3+ only) Verify auto_explain is in shared_preload_libraries Set following values in db parameters • auto_explain.log_min_duration = 5000 • auto_explain.log_nested_statements = on
  • 68. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Performance Tuning Extension—pg_stat_statements CREATE EXTENSION pg_stat_statements SELECT * from pg_stat_statements order by total_time DESC; -[ RECORD 2 ]-------+-------- userid | 16388 dbid | 16464 queryid | 4286627671 query | UPDATE pgbench_accounts SET abalance = abalance + ? WHERE aid = ?; calls | 165125 total_time | 5251.54200000001 min_time | 0.015 max_time | 5.558 mean_time | 0.0318034337623008 stddev_time | 0.0369181019548524 rows | 165125
  • 69. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you!