Businesses are moving to cloud services in large numbers. The move promises flexibility, reliability, and economy. It saves having to maintain and upgrade an on-premises server, and it allows unlimited growth without having to acquire new hardware. Cloud data storage is especially attractive, since it’s scalable, accessible from anywhere, and protected against data loss.
The first question when moving data to “the cloud” is: Which cloud? Several vendors offer high-quality services. Two of the top contenders are Amazon AWS and Microsoft Azure. If it comes down to a choice between them, you need to consider not just the services, but your present configuration and the migration path.
AWS databases
Both AWS and Azure offer a choice of database software, including SQL and NoSQL
Amazon RDS is a relational database service with a choice of six database engines: Amazon Aurora, MySQL, PostgreSQL, Oracle, MariaDB, and Microsoft SQL Server. The administrator can manage it from the command line, through API calls, or by the AWS Management Console. It eliminates the need for most management tasks, though the administrator still has to handle any application-specific settings.
Aurora is Amazon’s own relational database engine and one of the options under RDS. It offers high performance in MySQL and PostgreSQL compatibility modes. If complete compatibility is more important, then an organization should migrate to the engine of their choice. If performance is important and the database maintainers can make the required changes, Aurora is the better option.
For organizations with large amounts of data for batch processing, Amazon offers Redshift. It’s a “data warehouse” which accepts SQL and can handle multiple petabytes. It’s designed for massive operations such as analytics but isn’t as well suited for interactive environments.
The NoSQL option from Amazon is DynamoDB. NoSQL databases are more varied than SQL, and data from an existing database would have to be converted. DynamoDB keeps one foot in the SQL world, with its tables, keys, and indexes. It supports JSON but doesn’t use it for storage. MongoDB is also available, so sites that already use it can migrate their existing databases.
Azure databases
Azure offers two main approaches for SQL databases. SQL Database is called “a cloud database built for developers.” In spite of what that might suggest, it’s the simpler of the two options to manage. It doesn’t require any management of the operating system, allowing the focus to be on the application layer.
SQL Server on virtual machines gives more control over the server environment. Administrators use Azure Portal to manage everything. Microsoft recommends SQL Server for easy migration of existing applications. It allows hybrid cloud setups with applications that run partially on-premises. Both SQL Database and SQL Server are highly compatible with on-premises versions of Microsoft SQL Server.
Azure’s data warehouse is called, not surprisingly, Azure SQL Data Warehouse. Like Redshift, it can hold petabytes of data. Microsoft stresses the economy of its pricing model.
For those who want NoSQL, Azure offers DocumentDB. It uses SQL-like syntax plus JavaScript to query schemaless JSON-based databases. It also supports a MongoDB API, providing a high degree of compatibility for those migrating from MongoDB.
Comparing the options
AWS provides a greater range of database options than Azure. Organizations migrating from MySQL, PostgreSQL, and Oracle won’t have to change much database code when moving to Amazon. Organizations already using Microsoft’s SQL Server can go either way but will probably find the move to Azure easier, staying in an all-Microsoft environment. Organizations looking at a hybrid cloud setup are also likely to find Azure a better choice.
NoSQL organizations will find that DynamoDB doesn’t follow the current trends as much as DocumentDB does, so Azure has an edge there. However, MongoDB may be a satisfactory alternative on AWS.
The pricing models are noticeably different. Azure charges based on the database storage used. Amazon’s prices are based primarily on CPU time used. One service or the other might be significantly less expensive, depending on the pattern of expected usage.
This discussion covers just DBaaS offerings. With both Azure and AWS, organizations can go in to the infrastructure level and install the database software of their choice. They have to manage all aspects of it, just as they would on on-premises servers, but without the burden of managing the hardware or installing the operating system.
AWS migration
Amazon offers the AWS Database Migration Service for moving existing databases. It supports heterogeneous migrations from one platform to another, as well as homogeneous (same-platform) migrations. An active database can migrate, copying all changes made while the migration is in process, so it isn’t necessary to shut down the on-premises database first.
Sometimes offline migration is preferable, especially when a large amount of data is involved. Amazon offers Snowball, an appliance that holds 50 or 80 terabytes under 256-bit encryption. For even larger transfers, Snowmobile can ship as much as 100 petabytes in a truckload.
Azure migration
Migrating from an on-premises SQL Server to Azure is easy, as you would expect. Microsoft offers several options. The administrator can back up the database and restore it to Azure, using a file or URL. The database can be copied to Azure blob storage. The whole server can be virtualized and uploaded. The Add Azure Replica Wizard can replicate the database.
The Azure Import/Export Service is available for offline migration. The organization puts the data on a BitLocker encrypted drive and ships it to an Azure data center.
Comparing migrations
AWS’s ability to do a live migration is an advantage. So is its greater range of options. Migrating on Azure is easiest when coming from an SQL Server database.
Azure’s offline migration is less elegant than AWS’s Snowball and Snowmobile, but it gets the job done. Since it requires BitLocker, it’s more complicated if the organization is moving from a non-Microsoft server.
Overall considerations
Moving large amounts of data to a cloud service is a strenuous task. Downtime needs to be kept to a minimum. Administrators will need to learn new tools. It’s essential to set up a trial environment first, replicating as much as possible of the live one. This will uncover any problems with the migration and let users and administrators get familiar with the tools. It may turn out that the organization isn’t ready to migrate yet, or that it needs to consider more options.
Azure and AWS each offer a range of services. AWS has tiers with different feature levels. AWS has more software options. Some experimentation will be necessary to find the best configuration for either one.
Database migration doesn’t happen in a vacuum. It’s usually part of a broader cloud strategy. An organization planning a migration needs to consider how its data migration will fit with cloud applications it will want to use. Nothing requires a business to use one cloud provider for everything, but the pieces should fit together well.
Deciding which cloud service offers the better migration path depends heavily on whether the organization is a Microsoft shop or not. Amazon provides many options and a smooth migration path, and it’s likely to be the more attractive choice for anyone using Oracle, MySQL, or other non-Microsoft databases on a Linux or Unix server.
A business that uses Microsoft servers and databases will find Azure a more familiar environment. It will have the option of incremental migration, since Azure works well in a hybrid environment with Microsoft on-premises servers.
Either path can work well. Which is the better choice depends on the existing software environment, the resources available for migration, and the relative costs. Talk with us to find out what the best cloud hosting options are for your business.