The course is part of this learning path
This course discusses how to use AWS-managed services and serverless architectures in a way that minimizes the total cost of ownership without sacrificing reliability or performance.
Learning Objectives
- Identify opportunities to leverage managed services and serverless architectures in your AWS deployments
Intended Audience
- Anyone in a solutions architect role who wants to design robust and high-performing solutions in AWS while also keeping costs down
Prerequisites
- A basic understanding of AWS compute and database services
- Experience designing and implementing solutions in the AWS Cloud
Hello, and welcome to this lecture, where I will discuss how managed services in AWS can help you minimize cost. And as you’ll see throughout this lecture, the costs that you minimize when using managed services aren’t necessarily ones that will be reflected on your monthly AWS bill. In fact, using some of these services may even result in a higher AWS bill. But in many cases, using managed services will drastically reduce your administrative overhead, especially when it comes to things like provisioning and monitoring infrastructure, or patching and updating server operating systems. And although these cost savings won’t appear directly on your AWS bill, they still have an impact on your overall bottom line. As we progress throughout this lecture, I’ll point out how the architectural decisions you make can reduce the total cost of ownership for your solution by bringing down your AWS costs, your administrative overhead costs, and sometimes both.
So let’s start by discussing managed services. Now the idea with managed services is that AWS will handle tasks like patching and backups that would typically require a system administrator or DBA to manage. And at scale, this can result in meaningful cost savings if you no longer need to employ dedicated administrators to manage these aspects of your applications. Managed services allow your team to focus more on the things that deliver value to your business instead of being bogged down with mundane overhead tasks.
And it’s important to remember that many AWS-managed services also provide native support for features like automatic scaling, fault tolerance, and high availability either out of the box, or with just a little up-front configuration on your part. This means that not only can these managed services reduce your administrative overhead, they can also make your applications more robust and reliable as well. So now let’s look at some examples to see how AWS-managed services can fit into your solution architectures.
For our first example, let’s imagine you’re part of a small development team that has built the next big application that will take the world by storm. You’ve written your code in a language like Python, Java, or maybe even .NET. But you’re a team of coders, and you want to remain strictly focused on coding. You don’t have the time, resources, or expertise to support the deployment, infrastructure provisioning, load balancing, or ongoing health monitoring of your application. This would make your application a great candidate for Elastic Beanstalk, which is a managed service that allows you to deploy and run your application on AWS by simply uploading your source code. Elastic Beanstalk will handle everything from there, including provisioning the necessary capacity for your application, setting up auto scaling, and even performing automatic security and patch updates.
Now in terms of cost, there’s actually no additional cost to use Elastic Beanstalk. So since you’ll only ever pay for the AWS resources it creates, your costs will be the same as if you went through the trouble of provisioning all of these resources yourself. And beyond that, you’ll realize additional cost savings just from the time you won’t need to spend managing your own deployments, scaling, or the ongoing administration of your application.
To learn more about Elastic Beanstalk, I encourage you to check out this course, which along with all the other courses I reference in this lecture can be found in the “Course Material” section for this course.
For our next example, let’s consider an application that makes extensive use of a relational database. And this could be an open source database such as MySQL or even a commercial database like Microsoft SQL Server. Either way, perhaps this application was initially “lifted and shifted” into the cloud by provisioning EC2 instances for its application and database servers. Now when a database is migrated to the cloud this way, you’re going to ultimately be responsible for securing, updating, and patching both the database engine as well as the underlying server operating system of the instance itself. You’ll also need to configure regular backups of your mission-critical data and manage the storage and retention of these backups. And because of that ongoing maintenance burden, this scenario is a great candidate for migration to a managed database using the Amazon Relational Database Service, or RDS.
RDS offers many benefits over traditional EC2 instance deployments for your databases. Most importantly, with RDS, AWS is going to be responsible for handling all of the fundamental operations of the database. So this means that your DBAs can focus on tasks that actually deliver value to your business, such as optimizing database queries or improving schema design. At the same time, AWS will take care of making your database highly available, keeping your database patched, and taking care of backups.
And it’s easy to migrate your existing database to RDS using the AWS Database Migration Service, or DMS. Now with RDS, your costs are likely going to be higher than if you just used a traditional EC2 instance for your database deployment. But keep in mind that your ongoing database administration requirements are significantly reduced when using RDS. In fact, citing a recent study from IDC, AWS states that RDS customers enjoy significantly faster deployments of new databases, less unplanned downtime of their applications, and spent 39% less on database operation costs while enjoying a 264% return on their RDS investment within a 3-year period.
To learn more about the different cost metrics associated with Amazon RDS, I encourage you to check out this course.
It’s easy to think of managed services when it comes to things like AWS-managed infrastructure for compute and database services. But AWS also offers managed services that you can use to enhance your deployments with improved security, monitoring, and governance regardless of whether you’re using other managed services elsewhere in your architecture.
From a security standpoint, AWS Network Firewall makes it easy to define and deploy firewall rules that can secure network traffic within all of your VPCs. Best of all, this can be done in a scalable way, without needing to deploy or provision any of your own network firewall infrastructure. And to secure your web applications and protect them from things like Distributed Denial of Service, or DDoS attacks, AWS Shield offers a managed solution with both a no-cost Standard offering for all customers as well as a $3,000 per month Advanced offering for enterprise, Internet-facing applications. And the AWS Web Application Firewall, or WAF, can help further protect your applications against common web exploits that might also compromise the overall security of your architecture.
Now in terms of cost savings, it should be fairly apparent that these managed services are not going to reduce any costs you see on your AWS bill. In fact, services like AWS Network Firewall, AWS Shield Advanced, and AWS WAF may add substantial upfront cost. However, the peace of mind that comes with knowing your VPCs, EC2 instances, and public-facing applications are being protected by an AWS-managed service might just be priceless. The monthly costs for these managed services are likely very small when compared with both the short-term and long-term costs of a security breach, downtime for your application, and any associated negative publicity.
You can learn a lot more about these AWS-managed security services in this course.
So these are just a few simple examples of how AWS-managed services can help you minimize cost, either directly or indirectly. And incorporating some of the AWS-managed compute and database services we discussed can also be a great first step toward modernizing legacy solution architectures. Any architecture that currently relies on provisioned server instances that require constant care and feeding in terms of administration, patching, and security is a great candidate for leveraging these managed services, with any additional cost savings being an added bonus.
Danny has over 20 years of IT experience as a software developer, cloud engineer, and technical trainer. After attending a conference on cloud computing in 2009, he knew he wanted to build his career around what was still a very new, emerging technology at the time — and share this transformational knowledge with others. He has spoken to IT professional audiences at local, regional, and national user groups and conferences. He has delivered in-person classroom and virtual training, interactive webinars, and authored video training courses covering many different technologies, including Amazon Web Services. He currently has six active AWS certifications, including certifications at the Professional and Specialty level.