Written by Sudarshan Roy, Senior Database Specialist Architect, AWS & Saleh Ghasemi, Senior Database Specialist Architect, AWS
Data is one of the most valuable assets your company owns. Database management, however, is undifferentiated heavy lifting that incurs high operational costs. Management of your database, such as applying patches, managing backups and failovers, is not where you provide value to your customers. As a company, you provide value by innovating on behalf of your customers.
Migration to a cloud-based, fully-managed database provides an answer. AWS created Amazon Relational Database Service (RDS), which is a fully-managed database service, to minimize the effort involved in managing a relational database and enable you to focus on delivering innovation and higher value business solutions that matter most to your customers. As a result, Amazon RDS has proven to deliver (1) significant cost savings and (2) automated maintenance that frees up developer time. A recent IDC study found that customers utilizing Amazon RDS had 39% lower database operation costs versus on-premises and a 264% return on investment over three years.
In this article, we review the importance of having a well-architected solution and how Amazon RDS for SQL Server enables customers to gain competitive advantages and agility in designing, deploying, and managing well-architected SQL Server solutions.
Designed for Resilience and Agility
We understand that things will eventually fail and we designed Amazon RDS for SQL Server databases to recover gracefully in such an event. With the right strategy and tools, you can minimize the chance of failure and disruption to the business. Key strategies are:
- Flexibility to manage cash and pay as you go with no long-term contracts
- Designing solutions with high availability, scalability, and resiliency that span across multiple data centers and regions
- Agility through infrastructure-as-code, proactive monitoring, and automation
- Making data available for quick access to make decisions and take appropriate actions
Incorporating these strategies and deploying a well-architected solution on-premises requires some heavy lifting (e.g., infrastructure, tools, service integration). Amazon RDS for SQL Server removes the heavy-lifting. Amazon RDS for SQL Server has built-in tooling for all aspects of database management to ensure that your database is operating at the highest level and handles all the fundamental operations including operating system and database patching, automated backups and recovery, point-in-time restores, horizontal and vertical scaling, single-click high availability and durability.
Why Amazon RDS for SQL Server?
So, let’s talk about how Amazon RDS for SQL Server gives your business agility and competitive advantages by enabling you to design solutions that are secure, performant, cost-effective, reliable, and operationally excellent, as prescribed by the AWS Well-Architected Framework.
First, to reduce administrative burden, Amazon RDS for SQL Server database instances are pre-configured with parameters and settings appropriate for the style of databases and server type you have selected. DB Parameter Groups provide fine-tuning and customization of DB engine configuration. You can launch a database instance and connect your application within minutes. Beyond initial set up, Amazon RDS for SQL Server stays up-to-date with the latest patches, relieving you of this burden. You can exert optional control over when and if your database instance is patched.
Second, Amazon RDS for SQL Server is highly scalable. This includes flexibility in storage performance ranging up to 64,000 IOPS. For write-heavy and I/O-intensive transactional (OLTP) database workloads you can tune your performance needs with Provisioned Storage. You can also scale the compute and memory resources powering your deployment up or down. Compute scaling operations typically complete in a few minutes. The Amazon RDS for SQL Server engine will automatically grow the size of your database volume as your database storage needs grow, up to a maximum of 16 TB or a maximum you define. Storage scaling is on-the-fly with zero downtime.
Another benefit Amazon RDS for SQL Server has to offer is enterprise grade high availability and durability features. The automated backup feature of Amazon RDS for SQL Server enables point-in-time recovery for your database instance. Amazon RDS for SQL Server will back up your database and transaction logs, allowing for a point-in-time recovery for up to 35 days. They can be configured for in-region and cross-region durability needs. Additionally, you can initiate a database snapshot and retain that snapshot until you no longer need it. With Multi-AZ, Amazon RDS for SQL Server will automatically provision a primary database in one Availability Zone and maintain a synchronous "standby" replica in a different Availability Zone. An Availability Zone (AZ) is one or more discrete data centers with redundant power, networking, and connectivity in an AWS Region. AZs give customers the ability to operate production applications and databases that are more highly available, fault tolerant, and scalable than would be possible from a single data center. Amazon RDS for SQL Server will automatically rebuild your secondary instance after a failover event, getting your mission critical workloads back into a highly available state as quickly as possible.
Security is paramount to our customers, and at Amazon, we treat security with the highest standards to ensure the trust of our customers. Amazon RDS for SQL Server allows you to encrypt your databases using encryption keys you manage through AWS Key Management Service (KMS). On a database instance running with Amazon RDS for SQL Server encryption, data stored at rest in the underlying storage is encrypted, as are its automated backups, read replicas, and snapshots. Amazon RDS for SQL Server supports Transparent Data Encryption (TDE) in SQL Server and SSL to secure data in transit.
Lastly, there is no up-front commitment with Amazon RDS for SQL Server; you simply pay an hourly charge for each database instance that you launch. And, when you’re finished with a database instance, you can easily delete it. Amazon RDS for SQL Server has two instance pricing options: On-Demand based on hourly usage or Reserved Instance for a one- or three-year term at a significant discount compared to On-Demand pricing. Amazon RDS for SQL Server pricing includes the software license, underlying hardware resources, and Amazon RDS for SQL Server management capabilities. This means that you do not need to purchase SQL Server licenses separately.
Amazon RDS Custom for SQL Server
Some SQL Server workloads require granular control over the database (DB) and operating system (OS) where third party drivers and libraries need to be installed or require elevated privileges to change the DB or OS environment. An example of these workloads are Microsoft SharePoint and Microsoft Dynamics deployments. Traditionally such workloads are implemented on Amazon EC2 where the OS and DB can be customized; however, customers have to self-manage and maintain the database. In such cases where you need to retain administrative rights to manage workloads or simply not ready to move to fully-managed service, Amazon RDS Custom for SQL Server is that half-step that provides the flexibility and customization that you get from running SQL Server on EC2 while at the same time, providing the managed experience in Amazon RDS for SQL Server including automated backups, patching, scaling, and recovery from host failure. To learn more about Amazon RDS Custom for SQL Server, see the service overview or refer to the AWS documentation.
How to Migrate
Building for the future is a journey and AWS offers tools and experts to help assess, plan, and build the right path for your company. If you have mission-critical workloads running on a self-managed Microsoft SQL Server database, the first and simplest consideration for moving to a fully-managed cloud database is to keep the same database engine (homogeneous migration) with minimal to near-zero downtime. The recommended approach of migrating your self-managed SQL Server database to Amazon RDS for SQL Server is using the SQL Server native backup and restore in conjunction with AWS Database Migration Service (AWS DMS) to minimize downtime. This method is useful when you have to migrate the database code objects, including views, stored procedures, and functions, as part of the database migration. This solution is applicable to SQL Server of any database size. It keeps the database available for the application during migration and when you need to perform validation on the target database while the data is getting replicated from source to target, thereby saving time on data validation. Depending on your migration needs, we offer other programs and services, ranging from AWS Professional Services which taps into the deep expertise of tenured professional for migration assistance to Database Migration Accelerator (DMA), where for a fixed fee, a team of AWS professionals handles the conversion of both the database and application for you.
Migrating your self-managed SQL Server database to a fully-managed Amazon RDS for SQL Server database is a high-payoff decision. Amazon RDS for SQL Server is a like-for-like (homogeneous) migration and the least complex migration to begin to reap the efficiencies of AWS technologies for a fast and reliable database option. Amazon RDS for SQL Server handles high availability, backups, and software updates, so you can focus on high-value tasks that move the needle towards your business objectives.
To get started, you can gain hands-on experience with Amazon RDS Free Tier. AWS also offers Optimization and Licensing Assessment (OLA) to help you evaluate options to migrate to the cloud. Click here to sign up so the AWS OLA team can help you. To learn more about Amazon RDS for SQL Server, head over to the product page where additional documentation and AWS Database blogs are posted.