Five Ways For an Easier Transition to AWS
By: Brian Carter
While living in the Cloud has become the new normal for many companies, there are still plenty out there that have yet to make the move. It’s a huge effort for your development team, with a lot of room for error. That’s why I’ve assembled these five crucial steps to help you work through a successful AWS implementation. Even if you’re not involved in setting up the architecture, this guide will help you gain a much deeper understanding of AWS functions.
Create a plan, but be willing to pivot
Fail to plan and you plan to fail, right? No successful AWS implementation happens without a solid plan in place, but remember that things do (and will) come up: third party dependency problems, requirements changes, even service outages. When you’re getting started, some important questions to ask include “what are the application’s goals?”, “what kind of traffic will it have?”, “how is the app going to be built?”, and “where will your team be located?”. Perform Infrastructure as Code to avoid the human error element that comes with doing things manually. And anticipate failure and have a procedure in place to respond, be it disaster recovery or remediation documentation.
Make security a top priority
These days, large corporate security breaches are pretty much guaranteed to make the news. So, keep your company happy (and off of CNN) by making sure your AWS implementation is secure. To start, use AWS Identity and Access Management (IAM) to create a security identity. If you don’t have one in place, it’s hard to get everyone on your team to do their part. And when everybody isn’t doing their part, gaps can get overlooked. You’ll also want to prepare for security events ahead of time. For example, if an unknown user or strange traffic pattern arises, do you want an automated or human response? Or both? The sooner you get your eyes on a security problem, the sooner you can get it solved and potentially lessen severity.
Manage costs… ahead of time
Keeping your costs in check is an important part of the implementation process. Over provisioning of resources is all too common, as well as the unexpected costs in transferring data in and out of the Cloud. If your need for resources fluctuates throughout the year, a consumption model can help. By adopting this type of operating model, you utilize auto-scaling and only pay for the resources that are required. Just be careful, though. With the benefits of auto-scaling come a few drawbacks: if only the application scales up, the infrastructure that supports it could potentially become a bottleneck, and cause delays or timeouts; or if the database isn’t scaling at the same rate as the web application, this could cause connection issues while the read/write operations struggle to keep up.
Sure, the AWS SLA is reliable, but what can happen in the procedures that take place between you and AWS? Network problems, power loss… you’ll want to test your recovery procedures in advance so you can automatically recover from any failures in the future. Another way to ensure reliability is to stop guessing capacity. I’ve heard time and time again from clients that “it’ll never be more than x amount,” and then sure enough, it ends up over the estimate. Now you’ve been impacted, whether that’s the extra amount of time spent, or a dollar amount lost. If you’re on a consumption model with auto-scaling, it just gets done.
Optimize overall performance
Rather than having your team learn how to host and run a new technology, that technology can be consumed as a service. For example, NoSQL databases, media transcoding, and machine learning require expertise that isn’t always available on every team. AWS has services that can be consumed while the team continues to focus on product development and business value, instead of trying to master something new. Another way to optimize site performance is by using serverless architectures: they’re easy to deploy, low cost, scalable, and allow for continuous improvement. Finally, be sure to use some “mechanical sympathy.” That means understand and deploy technology that best aligns with what you’re trying to achieve. For example, consider data access patterns when selecting database or storage approaches. You don’t want to choose completely opposing technologies for your stack.
AWS implementation can be a big undertaking, but with the right team in place and a well-thought-out strategy, transitioning to the Cloud is easier than you think. Learn more about how Rural Sourcing has helped clients implement AWS for their organizations by visiting our Results page.
About the Author
Brian Carter is a senior consultant in Rural Sourcing’s Augusta Development Center. As a solutions architect, Brian has several years of experience designing and implementing engineering solutions for IaaS, SaaS, FaaS, and PaaS, primarily in Amazon Web Services, followed by projects in Microsoft Azure. He also has experience developing batch, web, and desktop applications utilizing Java and its ecosystem. Leveraging his time spent as a software engineer, Brian architects innovative solutions uniquely tailored to each project.