Managing Oracle databases is not an easy task, especially at large scale. Many organizations are migrating Oracle databases to the public cloud, allowing Amazon to manage the infrastructure on their behalf. There are two main AWS database services that can run Oracle databases: the Relational Database Service (RDS) and Amazon EC2.
In this post, we’ll help you understand the options, and the tools and techniques available for migrating your existing databases to AWS. In addition, we’ll show how NetApp Cloud Volumes ONTAP can help optimize storage for AWS Oracle databases.
In this article, you will learn:
- Oracle Database on AWS: RDS vs EC2
- Solving the Drawbacks of Oracle on EC2: A Cloud Volumes ONTAP Case Study
- Oracle to AWS Migration Tools
- Optimizing Oracle Database Storage on AWS with Cloud Volumes ONTAP
Oracle Database on AWS: RDS vs EC2
When you want to run an Oracle database on AWS, you have two main options. You can run it fully managed on the Amazon Relational Database Service (RDS) or you can run it on EC2 instances, and manage the database yourself.
AWS is one of the few cloud providers whose users can fully take advantage of Oracle, provided they have a license. AWS offers two different licensing methods:
- Pay for an Oracle license as part of your ongoing charges on Amazon RDS
- Bring your own license (BYOL)—supported for both RDS and EC2
Oracle on Amazon RDS: The Managed Option
RDS is a managed service in which AWS manages and maintains the database for you. Services include provisioning, updating, monitoring, backups, and hardware scaling. You can use it with either Provisioned IOPS storage or General Purpose (SSD) storage. RDS also offers push-button, synchronous Multi-AZ replication.
For more details about this deployment option, read our article about AWS Oracle RDS.
Pros of Amazon RDS for Oracle:
- Ease of use—RDS makes it easy to configure the Oracle database yourself. All you need to do is select the type of database, version (from the versions provided), size, cores, and you're essentially done.
- Scalability—RDS lets you easily scale the database up to the maximum RDS instance size, which is 64 TB. If your database is larger than 64 TB, or expected to reach this limit, this can become a concern.
- Cross-Regional Support—allows you to replicate Oracle databases across Amazon regions, to improve resiliency. Previously this was not supported, but the release of cross-region read replica support for Oracle made cross-region replication possible. However you must be using versions Oracle Enterprise Edition 12.1, and if you’re using a BYOL license, you must own a separate license for Oracle Active Data Guard.
Cons of Amazon RDS for Oracle:
- Configuration and flexibility—using Amazon RDS limits your ability to configure and optimize your Oracle instance for your specific deployment needs. Since RDS does not give you access to the database servers’ file system, you won’t be able to configure how your system will run monitoring, backups, management agents and restoration. You also won’t be able to use optional modules available in Oracle Database, which may be important to your day-to-day operations.
- Version limitations—find a list of the Oracle editions you can deploy on AWS here. This should be less of an issue for new Oracle instances but might cause problems if you haven’t been keeping up to date with the new Oracle versions.
- Cloud lock in—Amazon RDS is specific to AWS. That means that you will make design decisions and create code and configuration around Amazon RDS and AWS. If you decide to migrate away from AWS, you will need to redo your code and configuration to match wherever your new Oracle instance will be deployed.
- Managed service charges—when using RDS you are being charged at a premium for the routine tasks of configuring and maintaining Oracle on AWS. Pricing for Amazon RDS is hourly, determined by the amount of storage used and the type of instance. For example, if you spin up an Oracle instance on RDS that is a db.t3.micro with 1 core, 2 vCPUs and 1 GiB of memory and run it all month, AWS estimates that it will cost around $20 a month.
- The 64 TB threshold—scalability on RDS only goes so far. Once a database reaches the 64 TB threshold, you cannot use it on RDS anymore.
Oracle on AWS EC2: The Self-Managed Option
Hosting Oracle on EC2 means self-managing your database. You have full control over the setup and configuration but you are also responsible for all of the maintenance. This option is similar to hosting your database on-premises. When using EC2, you need to provision EC2 instances, storage, and networking resources.
Pros of Oracle on EC2:
- More control over configuration and optimization—with a database built on EC2, you aren’t limited to the parameters provided by RDS. If there are specific settings or optimizations you would like to select for your Oracle instance, you can use them. For example, you can decide to use striping for your data across AWS EBS (Elastic Block Store) volumes for improved performance (not possible on RDS).
- Scalability—using an EC2-based Oracle database gives you almost unlimited scale. You can add instances as needed, and you can leverage managed storage services like Cloud Volumes ONTAP, which scales to 368 TB per database.
- Avoid vendor lock-in—an Oracle database on EC2 is more portable across various cloud providers. Nevertheless, if you decide to use S3, AWS Gateway, or other AWS components, then you will still have a hard time moving your infrastructure to another cloud (you will have to rewrite code that interacts with these components).
- Cross-region—like RDS, on EC2 you can create cross-region duplicates of your Oracle database.
Cons of Oracle on EC2:
- Requires specialized skills—deploying Oracle on EC2 comes with more control and flexibility, however, all that flexibility does require a higher level of technical skill to manage your custom architecture. Optimizing your architecture on EC2 requires a database admin or developer with deep knowledge of database technology.
- More points of failure—together with your database on EC2, you may be utilizing multiple AWS components, each with their own monitoring and management. If an issue occurs in any of them, it may be difficult to assess where the problem is coming from. In general, you have greater risk of a specific component failing.
One solution to these drawbacks is to employ a storage management layer over your AWS deployment, such as NetApp Cloud Volumes ONTAP, NetApp’s enterprise cloud data management platform, which can solve issues related to data protection, storage efficiency, business continuity, automobility, and cost-optimizations.
Solving the Drawbacks of Oracle on EC2: A Cloud Volumes ONTAP Case Study
One Oracle user that was able to deploy managed storage for their database on Cloud Volumes ONTAP was a major financial software enterprise located in the US. Their business is to develop and market software and services to help individuals and small-to-midsize businesses manage finances, tax preparation, and accounting. A considerable portion of the US population relies on this company’s software to prepare their taxes every single year.
This company had a directive to move all operations to the cloud by the end of 2020, which included thousands of VPCs in multiple regions. To run their Oracle Goldengate with high availability, this company had to choose between the managed service (Amazon RDS) and managed storage option. While it would have been possible to replicate Oracle from their on-premises data center to AWS RDS, or to replicate Oracle RDS between two different AWS regions, they chose to deploy with a database on EC2 with Cloud Volumes ONTAP instead.
The main benefits to this approach were clear:
- Centralized management through Cloud Manager supporting 1000s of AWS accounts and VPCs.
- AWS high availability for business continuity that met their strict Recovery Point Objective (RPO) of zero seconds, and Recovery Time Objective (RTO) of under 60 seconds.
- Multi-region disaster recovery backed by NetApp Snapshot™ and SnapMirror technologies to ensure recovery within an hour.
- 30-day backups with single file restore.
This company is also using Cloud Volumes ONTAP and Cloud Sync for use with their Hadoop data lakes to Amazon S3. You can read more about how this company uses Windows Server Failover Clustering with Cloud Volumes ONTAP here.
Oracle to AWS Migration Tools
Whether you choose to run Oracle on RDS or EC2, you will need help migrating your systems and data. Many of these processes can be simplified with tools made available from AWS or Oracle. Below are a few tools you can consider using.
AWS Database Migration Service
The AWS Database Migration Service is a paid service you can use to migrate with minimal downtime. The service continually replicates changes between your source and target databases. This enables you to continue using the source database until your migration is complete. With this service, you can also leave the replication active for as long as you wish. Just keep in mind that there are costs for replication.
AWS Snowball is an appliance you can use to transfer large amounts of data. It can help you avoid large network costs, long transfer times, and can provide greater data security during transfer.
To use Snowball, you simply create a transfer job in the AWS Management Console to have the appliance shipped to you. After you transfer your data, the appliance is picked up and data is transferred to S3. From there, you can transfer it to your database instances.
Oracle Recovery Manager (RMAN)
To extract data from your source database, you can use Oracle RMAN. This tool enables you to backup your source data. You can then export this data to AWS directly via a VPN or AWS Direct Connect connection, or transfer it to a Snowball appliance.
Oracle Data Pump
Oracle Data Pump is a tool you can use to move data and metadata from your source database. It enables you to smoothly perform export/import operations and to send files directly to Oracle machines or Amazon S3 buckets. From there, you can import data to your desired database.
AWS Storage Gateway
AWS Storage Gateway lets you create a copy of your data infrastructure on AWS that integrates with an on-premises database. It works well for Oracle as well as other databases and storage systems.
Oracle on AWS Q&A
What Types of Services Does AWS Offer for Oracle?
AWS is responsible for managing the physical Oracle infrastructure up to the virtualization layer. You are responsible for managing the operating system (OS), the Oracle databases, and the applications running on top of the virtualization layer.
Further management services are offered by a network of third-party partners specializing in tasks like architecting, deploying, and managing Oracle workloads on AWS.
What Types of Replication Does Amazon RDS support for Oracle?
Amazon RDS for Oracle supports the following two types of replication:
- Multi-AZ deployments—this option provides high availability and durability for database (DB) instances located in a single AWS Region. Multi-AZ is offered for License Included and Bring Your Own License (BYOL) licensing deployments.
- Read replicas—lets you replicate across several different AWS regions. This option is offered only for Bring Your Own License (BYOL) deployments. It is recommended for mission-critical workloads that require a higher level of data protection.
What is Oracle Data Pump?
The Oracle Data Pump Export tool lets you copy Oracle-based data and metadata. This information is moved into a set of operating system files. To copy and import these files to another location, you can use the matching Data Pump Import utility. To copy subsets of data and metadata, you can use export filters.
Optimizing Oracle Database Storage on AWS with Cloud Volumes ONTAP
NetApp Cloud Volumes ONTAP, the leading enterprise-grade storage management solution, delivers secure, proven storage management services on AWS, Azure and Google Cloud. Cloud Volumes ONTAP supports up to a capacity of 2 PB, and supports various use cases such as file services, databases, DevOps or any other enterprise workload, with a strong set of features including high availability, data protection, storage efficiencies, Kubernetes integration, and more.
In particular, Cloud Volumes ONTAP helps in addressing database workloads challenges in the cloud, and filling the gap between your cloud-based database capabilities and the public cloud resources it runs on.
Learn more about running Oracle in the cloud with Cloud Volumes ONTAP.