SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
How Amazon.com Migrates
Inventory Management Systems
Brent Bigonger
Senior Database Engineer
Amazon Fulfillment Technologies (AFT)
D A T 3 4 6
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda
Amazon Fulfillment Technologies (AFT)
Technical challenges
AFT’s Oracle to Aurora PostgreSQL migration
Additional lessons learned
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Fulfillment Technologies
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Fulfillment Technologies
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Fulfillment Technologies
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Fulfillment Technologies
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Complexity and Scale
300+ Oracle source databases
Minimal downtime requirements
Dozens of services
Some of the oldest Amazon databases
• Complex dependencies
• 20+ years of optimization for Oracle
Stringent database call latency requirements
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Fulfillment Technologies
Receive Stow Pick Sort Pack Ship
Inventory
Previous architecture
Oracle
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Challenges in Oracle and on-premise
Scalability
• Difficult to scale
• Required custom hardware
Availability
• Hardware failures compromised
availability
• Longer time to recover
Hardware
management
• Hardware forecasting, ordering
and provisioning
• High operational burden to
maintain
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Database characteristics
Relational
Referential integrity
with strong
consistency,
transactions, and
hardened scale
Key-value
Low-latency, key-
based queries with
high throughput and
fast data ingestion
Document
Indexing and storing
of documents with
support for query on
any property
In-memory
Microsecond latency,
key-based queries,
specialized data
structures
Graph
Creating and
navigating relations
between data easily
and quickly
Complex query
support via SQL
Simple query
methods with filters
Simple query with
filters, projections
and aggregates
Simple query
methods with filters
Easily express queries
in terms of relations
Amazon Aurora
Amazon RDS
Amazon DynamoDB Amazon DynamoDB Amazon ElastiCache
for Redis &
Memcached
Amazon Neptune
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Fulfillment Technologies
Relational Key-value Document Graph In-memory Search
Inventory
Receive Stow Pick Sort Pack Ship
Aurora PostgreSQL
Purpose-built databases
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Why we chose Aurora PostgreSQL
High performance
High availability
Feature/SQL parity with Oracle
scalability
Vertical
Horizontal (Up to 15 Reader Instances)
Managed service
Database snapshots
Full production non-prod databases
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Migration
Preparation
Migration
Post-migration
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design patterns
Separate AWS prod/non-prod AWS accounts
Architect applications to leverage Readers
Provides horizontal read scaling
Utilize database clones into development test cycles
Initial performance benchmarks, functional testing, load testing, etc.
Encryption in-transit and at-rest
Plan for automation (AWS APIs/CLIs)
Multiple non-prod cutovers/cut-backs
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Oracle & PostgreSQL considerations
Timestamps/timezones differences
Oracle - server’s timezone
SYSDATE()
PostgresSQL - client’s timezone
clock_timestamp()
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Oracle & PostgreSQL considerations (cont.)
Partitioning differences
Oracle != PostgreSQL
Inheritance Partitioning (PostgreSQL 9.6)
Child tables maintained via triggers
Declarative Partitioning (PostgreSQL 10+)
Only range/list supported
No global uniqueness (PKs/UKs)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Oracle & PostgreSQL considerations (cont.)
COLLATE 'en_US':
ttest1=> SELECT * FROM bb_sort
ORDER BY val;
id | val
----+--------
2 | three
3 | t-wo
1 | ONE
COLLATE 'C':
ttest1=> SELECT * FROM bb_sort
ORDER BY val;
id | val
----+--------
1 | ONE
3 | t-wo
2 | three
Default PostgreSQL collation != Oracle
DMS data validation uses ‘C’ collation
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Dependency analysis
Capture all query and DML activities
Shared objects – tables, views, sequences
Cross-database Materialized Views
Data Warehouse ETL feeds
How?
Query historical views (DBA_HIST_%, v$active_session_history)
Periodic sampling active v$ views (v$sql, v$sqlarea)
Login monitoring (logon trigger)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Migration
Preparation
Migration
Post-migration
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Database launch automation
Create Reserved
Instance
Create database
AWS Data Migration
Service (DMS) kick-off
Onboard Data
Warehouse ETL feeds
Create
scheduled jobs
Integrate Amazon
CloudWatch metrics
Application
schema creation
Enable monitoring
Enter database in
fleet-wide metadata
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Data migration
Oracle
Schema
Conversion Tool
Step 1
Oracle
AWS Database
Migration
Service
Step 2
PostgreSQL
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Migration methodology
Not a “zero” downtime migration
Lift-and-shift but innovate where applicable
Start with manual migrations
Some pilot FCs
Full migration automation after pilot FCs
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Migration Requirements
Performance
• No operational impact on FC
operations
• Short downtime
• Aurora PostgreSQL same or
better performance from Oracle
Migration
management
• Full data load and ongoing
replication
• Continuous data validation
• Replication monitoring and
alarming
Automation
• Automated database provisioning
and build
• Automated data migration
• Full cutover automation for
services and database
• Support multiple concurrent
cutovers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Workflow Engine migration automation
DevOps
Operator
WebUI/CLI
System
Description
Amazon SWF
Java
Component
DMS
Component
SQL
Component
Additional
Components
Inventory
Services
Migration
Control
Plane
Monitoring
Systems
Networking
(DNS)
Additional
Systems
WebUI/CLI
System
Description
Amazon SWF
Java
Component
DMS
Component
SQL
Component
Additional
Components
Inventory
Services
Migration
Control
Plane
Monitoring
Systems
Networking
(DNS)
Additional
Systems
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Migration
Preparation
Migration
Post-migration
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Auto Vacuum
Key knob of PostgreSQL architecture
CloudWatch alarm for MaximumUsedTransactionIDs
2.1 billion un-vacuumed Transaction IDs
Monitor
pg_stat_all_tables
Key columns n_live_tup, n_dead_tup, autovacuum_date
Absolute: n_dead_tup
Ratio: n_dead_tup/n_live_tup
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Auto Vacuum (cont.)
Review *autovacuum* parameters
Defaults can’t accommodate all situations
Type of Table
INSERT only, INSERT + UPDATE/DELETE
fillfactor (table default 100)
Highly active tables (heavy DML)
autovacuum_vacuum_scale_factor
autovacuum_vacuum_threshold
autovacuum_analyze_scale_factor
autovacuum_analyze_threshold
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
CloudWatch Dashboards and Alarms
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Performance Insights
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Aurora PostgreSQL Benefits for AFT
Performance
• Scales to
largest AFT
workloads
• Supports our
strict query
latency
requirements
• No impact
snapshot
backups
Scalability
• Now scaling
up/down
takes minutes,
not hours
• Seamless
horizontal
read scaling
Availability
• Faster
failovers
• Back to high
availability in
minutes after
hardware
failure
Hardware
management
• Provisioning
our hardware
in minutes,
not months
• Better use of
DBA team
resources
Cloud-based
automation
• AWS API/CLI
enabled
management
• CloudWatch
monitoring
• Build test
databases
from
snapshots
Cost
• No more
Oracle license
costs
• Open source
with support
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Additional lessons
Better telemetry in service API call translation to SQL
Instrumenting SQL with comments.
"SELECT /* SVC-API-FooClass.java-UUID-v1 */ ..."
Auto-commit typically *on* in clients
No database method to set directly.
Sequences
PostgreSQL sequence caching occurs per connection.
Oracle global sequence caching.
Use SSL (verify-full)
Inserting NULL
In Oracle, "" (empty string) and null are treated the same.
In PostgreSQL, "" (empty string) is stored as an empty string.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Additional lessons
No Global Temporary tables
Session level frequent create/drop
EXCEPTION blocks consume Transaction IDs (XIDs)
Even when exception not fired
RAISE notices or error doesn’t
Remove EXCEPTION blocks from any triggers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Additional lessons
Idle transactions and long-running queries
Both prevent dead tuple and multi-transaction cleanup
Idle transactions
Consider ‘idle_in_transaction_session_timeout’ (PostgreSQL 9.6+)
FATAL: terminating connection due to idle-in-transaction timeout
Long-running queries
Consider ‘old_snapshot_threshold’ (PostgreSQL 9.6+)
Similar to “snapshot too old”
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Additional lessons - DMS
All source tables should have a PK/UK
Primary Key required for LOBs
Primary Key or Unique Index required for data validation
Identify tables with LOBs
LOB size affects technical approach (Limited LOB Mode, Full LOB Mode)
Large replication instances (R4 class) allow many DMS tasks
Monitors on replication instances
Especially swap usage, which can make task behavior abnormal
Consider one heartbeat table per DMS task
DMS validation fails if PostgreSQL triggers change data
Evaluate date range partitioned table retention
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Additional lessons - DMS
Challenge
• Oracle “snapshot too old” (ORA-01555) error
• Large and highly active tables
Mitigation
• Adjust UNDO retention (undo_retention)
• Reduce source data retention if possible
• Evaluate date range partitioned table retention
• Separate DMS task from other tables
• Use multiple tasks to achieve parallelism
• Run full load from Read Only Standby
• Full load in low peak time
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Additional lessons - DMS
Challenge
• Migrating tables with Large Objects (LOBs)
Mitigation
• Table must have Primary Key
• Determine max LOB size (see Notes)
• Limited LOB Mode (<= 64k)
• Set extra connection attribute
‘failTasksOnLobTruncation=true’ to avoid LOB
truncation for LOBs > 64kb
• Full LOB Mode (> 64k)
• Slower than Limited LOB Mode
• Set LOB chunk size (k) less than network maximum
allowed packet size.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Additional lessons
Useful extensions:
pg_stat_statements
pgaudit
pgstattuple
pg_hint_plan
pg_repack
log_fdw
auto_explain
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Additional lessons
Consider parameters:
log_statement = ddl
log_connections =on
log_disconnections =on
log_lock_waits = on
log_min_duration_statement = 5000
rds.force_ssl = True
huge_pages = on (larger instance types)
random_page_cost =1
idle_in_transaction_session_timeout = per your needs
old_snapshot_threshold = per your needs
Thank you!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Brent Bigonger
bigonger@amazon.com
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Determine max LOB size
select
'select (max(length(' || COLUMN_NAME || '))/(1024)) as "Size in KB"
from
' || owner || '.' || TABLE_NAME ||';' "maxlobsizeqry"
from dba_tab_cols
where owner='<schema_name>'
and data_type in ('CLOB','BLOB','LOB');

Contenu connexe

Tendances

Best Practices for Safe Deployments on AWS Lambda and Amazon API Gateway (SRV...
Best Practices for Safe Deployments on AWS Lambda and Amazon API Gateway (SRV...Best Practices for Safe Deployments on AWS Lambda and Amazon API Gateway (SRV...
Best Practices for Safe Deployments on AWS Lambda and Amazon API Gateway (SRV...Amazon Web Services
 
Set Up Compliance Automation Using AWS Management Tools (SEC317) - AWS re:Inv...
Set Up Compliance Automation Using AWS Management Tools (SEC317) - AWS re:Inv...Set Up Compliance Automation Using AWS Management Tools (SEC317) - AWS re:Inv...
Set Up Compliance Automation Using AWS Management Tools (SEC317) - AWS re:Inv...Amazon Web Services
 
Resiliency Testing: Verify That Your System Is as Reliable as You Think (ARC4...
Resiliency Testing: Verify That Your System Is as Reliable as You Think (ARC4...Resiliency Testing: Verify That Your System Is as Reliable as You Think (ARC4...
Resiliency Testing: Verify That Your System Is as Reliable as You Think (ARC4...Amazon Web Services
 
“Cloud First” Helps Hub Intl Grow the Business with Splunk on AWS (ANT330-S) ...
“Cloud First” Helps Hub Intl Grow the Business with Splunk on AWS (ANT330-S) ...“Cloud First” Helps Hub Intl Grow the Business with Splunk on AWS (ANT330-S) ...
“Cloud First” Helps Hub Intl Grow the Business with Splunk on AWS (ANT330-S) ...Amazon Web Services
 
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018Amazon Web Services
 
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...Amazon Web Services
 
Petabyte-Scale Migration to Amazon S3 Building Photobox's Data Lake (STG393) ...
Petabyte-Scale Migration to Amazon S3 Building Photobox's Data Lake (STG393) ...Petabyte-Scale Migration to Amazon S3 Building Photobox's Data Lake (STG393) ...
Petabyte-Scale Migration to Amazon S3 Building Photobox's Data Lake (STG393) ...Amazon Web Services
 
Your road to a Well Architected solution in the Cloud - Tel Aviv Summit 2018
Your road to a Well Architected solution in the Cloud - Tel Aviv Summit 2018Your road to a Well Architected solution in the Cloud - Tel Aviv Summit 2018
Your road to a Well Architected solution in the Cloud - Tel Aviv Summit 2018Amazon Web Services
 
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...Amazon Web Services
 
Lifecycle Management of Amazon WorkSpaces Using the AWS Service Catalog Conne...
Lifecycle Management of Amazon WorkSpaces Using the AWS Service Catalog Conne...Lifecycle Management of Amazon WorkSpaces Using the AWS Service Catalog Conne...
Lifecycle Management of Amazon WorkSpaces Using the AWS Service Catalog Conne...Amazon Web Services
 
ENT206 Product Development in the Cloud
ENT206 Product Development in the CloudENT206 Product Development in the Cloud
ENT206 Product Development in the CloudAmazon Web Services
 
Building Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQLBuilding Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQLAmazon Web Services
 
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Amazon Web Services
 
All About the Customer: GraphQL & Real-Time Subscriptions in Customer Service...
All About the Customer: GraphQL & Real-Time Subscriptions in Customer Service...All About the Customer: GraphQL & Real-Time Subscriptions in Customer Service...
All About the Customer: GraphQL & Real-Time Subscriptions in Customer Service...Amazon Web Services
 
ENT202 Breaking Barriers: Move Enterprise SAP Customers to SAP HANA on AWS in...
ENT202 Breaking Barriers: Move Enterprise SAP Customers to SAP HANA on AWS in...ENT202 Breaking Barriers: Move Enterprise SAP Customers to SAP HANA on AWS in...
ENT202 Breaking Barriers: Move Enterprise SAP Customers to SAP HANA on AWS in...Amazon Web Services
 
SPEKE-ing of Content Protection & DRM (MAE302) - AWS re:Invent 2018
SPEKE-ing of Content Protection & DRM (MAE302) - AWS re:Invent 2018SPEKE-ing of Content Protection & DRM (MAE302) - AWS re:Invent 2018
SPEKE-ing of Content Protection & DRM (MAE302) - AWS re:Invent 2018Amazon Web Services
 
Hitchhiker's Guide to Cloud Ops
Hitchhiker's Guide to Cloud Ops Hitchhiker's Guide to Cloud Ops
Hitchhiker's Guide to Cloud Ops Amazon Web Services
 
Deep Dive on Cloud File System Offerings: What to Use, Where, and Why (STG392...
Deep Dive on Cloud File System Offerings: What to Use, Where, and Why (STG392...Deep Dive on Cloud File System Offerings: What to Use, Where, and Why (STG392...
Deep Dive on Cloud File System Offerings: What to Use, Where, and Why (STG392...Amazon Web Services
 
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...Amazon Web Services
 

Tendances (20)

Best Practices for Safe Deployments on AWS Lambda and Amazon API Gateway (SRV...
Best Practices for Safe Deployments on AWS Lambda and Amazon API Gateway (SRV...Best Practices for Safe Deployments on AWS Lambda and Amazon API Gateway (SRV...
Best Practices for Safe Deployments on AWS Lambda and Amazon API Gateway (SRV...
 
Set Up Compliance Automation Using AWS Management Tools (SEC317) - AWS re:Inv...
Set Up Compliance Automation Using AWS Management Tools (SEC317) - AWS re:Inv...Set Up Compliance Automation Using AWS Management Tools (SEC317) - AWS re:Inv...
Set Up Compliance Automation Using AWS Management Tools (SEC317) - AWS re:Inv...
 
Resiliency Testing: Verify That Your System Is as Reliable as You Think (ARC4...
Resiliency Testing: Verify That Your System Is as Reliable as You Think (ARC4...Resiliency Testing: Verify That Your System Is as Reliable as You Think (ARC4...
Resiliency Testing: Verify That Your System Is as Reliable as You Think (ARC4...
 
“Cloud First” Helps Hub Intl Grow the Business with Splunk on AWS (ANT330-S) ...
“Cloud First” Helps Hub Intl Grow the Business with Splunk on AWS (ANT330-S) ...“Cloud First” Helps Hub Intl Grow the Business with Splunk on AWS (ANT330-S) ...
“Cloud First” Helps Hub Intl Grow the Business with Splunk on AWS (ANT330-S) ...
 
Deep dive - AWS Fargate
Deep dive - AWS FargateDeep dive - AWS Fargate
Deep dive - AWS Fargate
 
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018
 
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...
 
Petabyte-Scale Migration to Amazon S3 Building Photobox's Data Lake (STG393) ...
Petabyte-Scale Migration to Amazon S3 Building Photobox's Data Lake (STG393) ...Petabyte-Scale Migration to Amazon S3 Building Photobox's Data Lake (STG393) ...
Petabyte-Scale Migration to Amazon S3 Building Photobox's Data Lake (STG393) ...
 
Your road to a Well Architected solution in the Cloud - Tel Aviv Summit 2018
Your road to a Well Architected solution in the Cloud - Tel Aviv Summit 2018Your road to a Well Architected solution in the Cloud - Tel Aviv Summit 2018
Your road to a Well Architected solution in the Cloud - Tel Aviv Summit 2018
 
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...
 
Lifecycle Management of Amazon WorkSpaces Using the AWS Service Catalog Conne...
Lifecycle Management of Amazon WorkSpaces Using the AWS Service Catalog Conne...Lifecycle Management of Amazon WorkSpaces Using the AWS Service Catalog Conne...
Lifecycle Management of Amazon WorkSpaces Using the AWS Service Catalog Conne...
 
ENT206 Product Development in the Cloud
ENT206 Product Development in the CloudENT206 Product Development in the Cloud
ENT206 Product Development in the Cloud
 
Building Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQLBuilding Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQL
 
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
 
All About the Customer: GraphQL & Real-Time Subscriptions in Customer Service...
All About the Customer: GraphQL & Real-Time Subscriptions in Customer Service...All About the Customer: GraphQL & Real-Time Subscriptions in Customer Service...
All About the Customer: GraphQL & Real-Time Subscriptions in Customer Service...
 
ENT202 Breaking Barriers: Move Enterprise SAP Customers to SAP HANA on AWS in...
ENT202 Breaking Barriers: Move Enterprise SAP Customers to SAP HANA on AWS in...ENT202 Breaking Barriers: Move Enterprise SAP Customers to SAP HANA on AWS in...
ENT202 Breaking Barriers: Move Enterprise SAP Customers to SAP HANA on AWS in...
 
SPEKE-ing of Content Protection & DRM (MAE302) - AWS re:Invent 2018
SPEKE-ing of Content Protection & DRM (MAE302) - AWS re:Invent 2018SPEKE-ing of Content Protection & DRM (MAE302) - AWS re:Invent 2018
SPEKE-ing of Content Protection & DRM (MAE302) - AWS re:Invent 2018
 
Hitchhiker's Guide to Cloud Ops
Hitchhiker's Guide to Cloud Ops Hitchhiker's Guide to Cloud Ops
Hitchhiker's Guide to Cloud Ops
 
Deep Dive on Cloud File System Offerings: What to Use, Where, and Why (STG392...
Deep Dive on Cloud File System Offerings: What to Use, Where, and Why (STG392...Deep Dive on Cloud File System Offerings: What to Use, Where, and Why (STG392...
Deep Dive on Cloud File System Offerings: What to Use, Where, and Why (STG392...
 
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
 

Similaire à Amazon Fulfillment Technologies migrates Oracle to Aurora PostgreSQL

Under the Hood: How Amazon Uses AWS Services for Analytics at a Massive Scale...
Under the Hood: How Amazon Uses AWS Services for Analytics at a Massive Scale...Under the Hood: How Amazon Uses AWS Services for Analytics at a Massive Scale...
Under the Hood: How Amazon Uses AWS Services for Analytics at a Massive Scale...Amazon Web Services
 
Data Transformation Patterns in AWS - AWS Online Tech Talks
Data Transformation Patterns in AWS - AWS Online Tech TalksData Transformation Patterns in AWS - AWS Online Tech Talks
Data Transformation Patterns in AWS - AWS Online Tech TalksAmazon Web Services
 
Building a Modern Data Warehouse - Deep Dive on Amazon Redshift
Building a Modern Data Warehouse - Deep Dive on Amazon RedshiftBuilding a Modern Data Warehouse - Deep Dive on Amazon Redshift
Building a Modern Data Warehouse - Deep Dive on Amazon RedshiftAmazon Web Services
 
Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...
Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...
Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...Amazon Web Services
 
Using Tableau and AWS for Fearless Reporting at UMD
Using Tableau and AWS for Fearless Reporting at UMDUsing Tableau and AWS for Fearless Reporting at UMD
Using Tableau and AWS for Fearless Reporting at UMDAmazon Web Services
 
SQL Server to Amazon Aurora Migration, Step by Step (DAT405) - AWS re:Invent ...
SQL Server to Amazon Aurora Migration, Step by Step (DAT405) - AWS re:Invent ...SQL Server to Amazon Aurora Migration, Step by Step (DAT405) - AWS re:Invent ...
SQL Server to Amazon Aurora Migration, Step by Step (DAT405) - AWS re:Invent ...Amazon Web Services
 
Getting Started with Amazon Database Migration Service
Getting Started with Amazon Database Migration ServiceGetting Started with Amazon Database Migration Service
Getting Started with Amazon Database Migration ServiceAmazon Web Services
 
深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service 深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service Amazon Web Services
 
Lessons Learned from a Large-Scale Legacy Migration with Sysco (STG311) - AWS...
Lessons Learned from a Large-Scale Legacy Migration with Sysco (STG311) - AWS...Lessons Learned from a Large-Scale Legacy Migration with Sysco (STG311) - AWS...
Lessons Learned from a Large-Scale Legacy Migration with Sysco (STG311) - AWS...Amazon Web Services
 
AWS Data Lake: data analysis @ scale
AWS Data Lake: data analysis @ scaleAWS Data Lake: data analysis @ scale
AWS Data Lake: data analysis @ scaleAmazon Web Services
 
Building Serverless ETL Pipelines with AWS Glue - AWS Summit Sydney 2018
Building Serverless ETL Pipelines with AWS Glue - AWS Summit Sydney 2018Building Serverless ETL Pipelines with AWS Glue - AWS Summit Sydney 2018
Building Serverless ETL Pipelines with AWS Glue - AWS Summit Sydney 2018Amazon Web Services
 
Using data lakes to quench your analytics fire - AWS Summit Cape Town 2018
Using data lakes to quench your analytics fire - AWS Summit Cape Town 2018Using data lakes to quench your analytics fire - AWS Summit Cape Town 2018
Using data lakes to quench your analytics fire - AWS Summit Cape Town 2018Amazon Web Services
 
Business Intelligence in Minutes with Amazon Athena and Amazon QuickSight - A...
Business Intelligence in Minutes with Amazon Athena and Amazon QuickSight - A...Business Intelligence in Minutes with Amazon Athena and Amazon QuickSight - A...
Business Intelligence in Minutes with Amazon Athena and Amazon QuickSight - A...Amazon Web Services
 
Workshop: Architecting a Serverless Data Lake
Workshop: Architecting a Serverless Data LakeWorkshop: Architecting a Serverless Data Lake
Workshop: Architecting a Serverless Data LakeAmazon Web Services
 
Modern Cloud Data Warehousing ft. Equinox Fitness Clubs: Optimize Analytics P...
Modern Cloud Data Warehousing ft. Equinox Fitness Clubs: Optimize Analytics P...Modern Cloud Data Warehousing ft. Equinox Fitness Clubs: Optimize Analytics P...
Modern Cloud Data Warehousing ft. Equinox Fitness Clubs: Optimize Analytics P...Amazon Web Services
 
Building Serverless ETL Pipelines with AWS Glue
Building Serverless ETL Pipelines with AWS GlueBuilding Serverless ETL Pipelines with AWS Glue
Building Serverless ETL Pipelines with AWS GlueAmazon Web Services
 
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...Amazon Web Services
 
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...Amazon Web Services
 

Similaire à Amazon Fulfillment Technologies migrates Oracle to Aurora PostgreSQL (20)

Under the Hood: How Amazon Uses AWS Services for Analytics at a Massive Scale...
Under the Hood: How Amazon Uses AWS Services for Analytics at a Massive Scale...Under the Hood: How Amazon Uses AWS Services for Analytics at a Massive Scale...
Under the Hood: How Amazon Uses AWS Services for Analytics at a Massive Scale...
 
Migrating database to cloud
Migrating database to cloudMigrating database to cloud
Migrating database to cloud
 
Data Transformation Patterns in AWS - AWS Online Tech Talks
Data Transformation Patterns in AWS - AWS Online Tech TalksData Transformation Patterns in AWS - AWS Online Tech Talks
Data Transformation Patterns in AWS - AWS Online Tech Talks
 
Building a Modern Data Warehouse - Deep Dive on Amazon Redshift
Building a Modern Data Warehouse - Deep Dive on Amazon RedshiftBuilding a Modern Data Warehouse - Deep Dive on Amazon Redshift
Building a Modern Data Warehouse - Deep Dive on Amazon Redshift
 
Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...
Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...
Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...
 
Using Tableau and AWS for Fearless Reporting at UMD
Using Tableau and AWS for Fearless Reporting at UMDUsing Tableau and AWS for Fearless Reporting at UMD
Using Tableau and AWS for Fearless Reporting at UMD
 
SQL Server to Amazon Aurora Migration, Step by Step (DAT405) - AWS re:Invent ...
SQL Server to Amazon Aurora Migration, Step by Step (DAT405) - AWS re:Invent ...SQL Server to Amazon Aurora Migration, Step by Step (DAT405) - AWS re:Invent ...
SQL Server to Amazon Aurora Migration, Step by Step (DAT405) - AWS re:Invent ...
 
Getting Started with Amazon Database Migration Service
Getting Started with Amazon Database Migration ServiceGetting Started with Amazon Database Migration Service
Getting Started with Amazon Database Migration Service
 
深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service 深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service
 
Lessons Learned from a Large-Scale Legacy Migration with Sysco (STG311) - AWS...
Lessons Learned from a Large-Scale Legacy Migration with Sysco (STG311) - AWS...Lessons Learned from a Large-Scale Legacy Migration with Sysco (STG311) - AWS...
Lessons Learned from a Large-Scale Legacy Migration with Sysco (STG311) - AWS...
 
AWS Data Lake: data analysis @ scale
AWS Data Lake: data analysis @ scaleAWS Data Lake: data analysis @ scale
AWS Data Lake: data analysis @ scale
 
Building Serverless ETL Pipelines with AWS Glue - AWS Summit Sydney 2018
Building Serverless ETL Pipelines with AWS Glue - AWS Summit Sydney 2018Building Serverless ETL Pipelines with AWS Glue - AWS Summit Sydney 2018
Building Serverless ETL Pipelines with AWS Glue - AWS Summit Sydney 2018
 
Using data lakes to quench your analytics fire - AWS Summit Cape Town 2018
Using data lakes to quench your analytics fire - AWS Summit Cape Town 2018Using data lakes to quench your analytics fire - AWS Summit Cape Town 2018
Using data lakes to quench your analytics fire - AWS Summit Cape Town 2018
 
Business Intelligence in Minutes with Amazon Athena and Amazon QuickSight - A...
Business Intelligence in Minutes with Amazon Athena and Amazon QuickSight - A...Business Intelligence in Minutes with Amazon Athena and Amazon QuickSight - A...
Business Intelligence in Minutes with Amazon Athena and Amazon QuickSight - A...
 
Workshop: Architecting a Serverless Data Lake
Workshop: Architecting a Serverless Data LakeWorkshop: Architecting a Serverless Data Lake
Workshop: Architecting a Serverless Data Lake
 
Big Data@Scale
 Big Data@Scale Big Data@Scale
Big Data@Scale
 
Modern Cloud Data Warehousing ft. Equinox Fitness Clubs: Optimize Analytics P...
Modern Cloud Data Warehousing ft. Equinox Fitness Clubs: Optimize Analytics P...Modern Cloud Data Warehousing ft. Equinox Fitness Clubs: Optimize Analytics P...
Modern Cloud Data Warehousing ft. Equinox Fitness Clubs: Optimize Analytics P...
 
Building Serverless ETL Pipelines with AWS Glue
Building Serverless ETL Pipelines with AWS GlueBuilding Serverless ETL Pipelines with AWS Glue
Building Serverless ETL Pipelines with AWS Glue
 
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...
 
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...
 

Plus de 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
 

Plus de 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
 

Amazon Fulfillment Technologies migrates Oracle to Aurora PostgreSQL

  • 1.
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. How Amazon.com Migrates Inventory Management Systems Brent Bigonger Senior Database Engineer Amazon Fulfillment Technologies (AFT) D A T 3 4 6
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Agenda Amazon Fulfillment Technologies (AFT) Technical challenges AFT’s Oracle to Aurora PostgreSQL migration Additional lessons learned
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Fulfillment Technologies
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Fulfillment Technologies
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Fulfillment Technologies
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Fulfillment Technologies
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Complexity and Scale 300+ Oracle source databases Minimal downtime requirements Dozens of services Some of the oldest Amazon databases • Complex dependencies • 20+ years of optimization for Oracle Stringent database call latency requirements
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Fulfillment Technologies Receive Stow Pick Sort Pack Ship Inventory Previous architecture Oracle
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Challenges in Oracle and on-premise Scalability • Difficult to scale • Required custom hardware Availability • Hardware failures compromised availability • Longer time to recover Hardware management • Hardware forecasting, ordering and provisioning • High operational burden to maintain
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Database characteristics Relational Referential integrity with strong consistency, transactions, and hardened scale Key-value Low-latency, key- based queries with high throughput and fast data ingestion Document Indexing and storing of documents with support for query on any property In-memory Microsecond latency, key-based queries, specialized data structures Graph Creating and navigating relations between data easily and quickly Complex query support via SQL Simple query methods with filters Simple query with filters, projections and aggregates Simple query methods with filters Easily express queries in terms of relations Amazon Aurora Amazon RDS Amazon DynamoDB Amazon DynamoDB Amazon ElastiCache for Redis & Memcached Amazon Neptune
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Fulfillment Technologies Relational Key-value Document Graph In-memory Search Inventory Receive Stow Pick Sort Pack Ship Aurora PostgreSQL Purpose-built databases
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Why we chose Aurora PostgreSQL High performance High availability Feature/SQL parity with Oracle scalability Vertical Horizontal (Up to 15 Reader Instances) Managed service Database snapshots Full production non-prod databases
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 17. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Migration Preparation Migration Post-migration
  • 18. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Design patterns Separate AWS prod/non-prod AWS accounts Architect applications to leverage Readers Provides horizontal read scaling Utilize database clones into development test cycles Initial performance benchmarks, functional testing, load testing, etc. Encryption in-transit and at-rest Plan for automation (AWS APIs/CLIs) Multiple non-prod cutovers/cut-backs
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Oracle & PostgreSQL considerations Timestamps/timezones differences Oracle - server’s timezone SYSDATE() PostgresSQL - client’s timezone clock_timestamp()
  • 20. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Oracle & PostgreSQL considerations (cont.) Partitioning differences Oracle != PostgreSQL Inheritance Partitioning (PostgreSQL 9.6) Child tables maintained via triggers Declarative Partitioning (PostgreSQL 10+) Only range/list supported No global uniqueness (PKs/UKs)
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Oracle & PostgreSQL considerations (cont.) COLLATE 'en_US': ttest1=> SELECT * FROM bb_sort ORDER BY val; id | val ----+-------- 2 | three 3 | t-wo 1 | ONE COLLATE 'C': ttest1=> SELECT * FROM bb_sort ORDER BY val; id | val ----+-------- 1 | ONE 3 | t-wo 2 | three Default PostgreSQL collation != Oracle DMS data validation uses ‘C’ collation
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Dependency analysis Capture all query and DML activities Shared objects – tables, views, sequences Cross-database Materialized Views Data Warehouse ETL feeds How? Query historical views (DBA_HIST_%, v$active_session_history) Periodic sampling active v$ views (v$sql, v$sqlarea) Login monitoring (logon trigger)
  • 23. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Migration Preparation Migration Post-migration
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Database launch automation Create Reserved Instance Create database AWS Data Migration Service (DMS) kick-off Onboard Data Warehouse ETL feeds Create scheduled jobs Integrate Amazon CloudWatch metrics Application schema creation Enable monitoring Enter database in fleet-wide metadata
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Data migration Oracle Schema Conversion Tool Step 1 Oracle AWS Database Migration Service Step 2 PostgreSQL
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Migration methodology Not a “zero” downtime migration Lift-and-shift but innovate where applicable Start with manual migrations Some pilot FCs Full migration automation after pilot FCs
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Migration Requirements Performance • No operational impact on FC operations • Short downtime • Aurora PostgreSQL same or better performance from Oracle Migration management • Full data load and ongoing replication • Continuous data validation • Replication monitoring and alarming Automation • Automated database provisioning and build • Automated data migration • Full cutover automation for services and database • Support multiple concurrent cutovers
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Workflow Engine migration automation DevOps Operator WebUI/CLI System Description Amazon SWF Java Component DMS Component SQL Component Additional Components Inventory Services Migration Control Plane Monitoring Systems Networking (DNS) Additional Systems WebUI/CLI System Description Amazon SWF Java Component DMS Component SQL Component Additional Components Inventory Services Migration Control Plane Monitoring Systems Networking (DNS) Additional Systems
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Migration Preparation Migration Post-migration
  • 30. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Auto Vacuum Key knob of PostgreSQL architecture CloudWatch alarm for MaximumUsedTransactionIDs 2.1 billion un-vacuumed Transaction IDs Monitor pg_stat_all_tables Key columns n_live_tup, n_dead_tup, autovacuum_date Absolute: n_dead_tup Ratio: n_dead_tup/n_live_tup
  • 31. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Auto Vacuum (cont.) Review *autovacuum* parameters Defaults can’t accommodate all situations Type of Table INSERT only, INSERT + UPDATE/DELETE fillfactor (table default 100) Highly active tables (heavy DML) autovacuum_vacuum_scale_factor autovacuum_vacuum_threshold autovacuum_analyze_scale_factor autovacuum_analyze_threshold
  • 32. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. CloudWatch Dashboards and Alarms
  • 33. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Performance Insights
  • 34. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Aurora PostgreSQL Benefits for AFT Performance • Scales to largest AFT workloads • Supports our strict query latency requirements • No impact snapshot backups Scalability • Now scaling up/down takes minutes, not hours • Seamless horizontal read scaling Availability • Faster failovers • Back to high availability in minutes after hardware failure Hardware management • Provisioning our hardware in minutes, not months • Better use of DBA team resources Cloud-based automation • AWS API/CLI enabled management • CloudWatch monitoring • Build test databases from snapshots Cost • No more Oracle license costs • Open source with support
  • 35. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 36. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Additional lessons Better telemetry in service API call translation to SQL Instrumenting SQL with comments. "SELECT /* SVC-API-FooClass.java-UUID-v1 */ ..." Auto-commit typically *on* in clients No database method to set directly. Sequences PostgreSQL sequence caching occurs per connection. Oracle global sequence caching. Use SSL (verify-full) Inserting NULL In Oracle, "" (empty string) and null are treated the same. In PostgreSQL, "" (empty string) is stored as an empty string.
  • 37. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Additional lessons No Global Temporary tables Session level frequent create/drop EXCEPTION blocks consume Transaction IDs (XIDs) Even when exception not fired RAISE notices or error doesn’t Remove EXCEPTION blocks from any triggers
  • 38. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Additional lessons Idle transactions and long-running queries Both prevent dead tuple and multi-transaction cleanup Idle transactions Consider ‘idle_in_transaction_session_timeout’ (PostgreSQL 9.6+) FATAL: terminating connection due to idle-in-transaction timeout Long-running queries Consider ‘old_snapshot_threshold’ (PostgreSQL 9.6+) Similar to “snapshot too old”
  • 39. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Additional lessons - DMS All source tables should have a PK/UK Primary Key required for LOBs Primary Key or Unique Index required for data validation Identify tables with LOBs LOB size affects technical approach (Limited LOB Mode, Full LOB Mode) Large replication instances (R4 class) allow many DMS tasks Monitors on replication instances Especially swap usage, which can make task behavior abnormal Consider one heartbeat table per DMS task DMS validation fails if PostgreSQL triggers change data Evaluate date range partitioned table retention
  • 40. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Additional lessons - DMS Challenge • Oracle “snapshot too old” (ORA-01555) error • Large and highly active tables Mitigation • Adjust UNDO retention (undo_retention) • Reduce source data retention if possible • Evaluate date range partitioned table retention • Separate DMS task from other tables • Use multiple tasks to achieve parallelism • Run full load from Read Only Standby • Full load in low peak time
  • 41. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Additional lessons - DMS Challenge • Migrating tables with Large Objects (LOBs) Mitigation • Table must have Primary Key • Determine max LOB size (see Notes) • Limited LOB Mode (<= 64k) • Set extra connection attribute ‘failTasksOnLobTruncation=true’ to avoid LOB truncation for LOBs > 64kb • Full LOB Mode (> 64k) • Slower than Limited LOB Mode • Set LOB chunk size (k) less than network maximum allowed packet size.
  • 42. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Additional lessons Useful extensions: pg_stat_statements pgaudit pgstattuple pg_hint_plan pg_repack log_fdw auto_explain
  • 43. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Additional lessons Consider parameters: log_statement = ddl log_connections =on log_disconnections =on log_lock_waits = on log_min_duration_statement = 5000 rds.force_ssl = True huge_pages = on (larger instance types) random_page_cost =1 idle_in_transaction_session_timeout = per your needs old_snapshot_threshold = per your needs
  • 44. Thank you! © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Brent Bigonger bigonger@amazon.com
  • 45. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 46. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 47. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Determine max LOB size select 'select (max(length(' || COLUMN_NAME || '))/(1024)) as "Size in KB" from ' || owner || '.' || TABLE_NAME ||';' "maxlobsizeqry" from dba_tab_cols where owner='<schema_name>' and data_type in ('CLOB','BLOB','LOB');