Starting out with AWS can be a daunting task. Amazon has done a great job of documenting and presenting systems and services in a clear and concise manner, but when you try to apply those concepts to your specific infrastructure or use case things might not always simply click into place.
Understanding the benefits of working with AWS and weighing them against the challenges is key to a successful implementation. It is always important to put everything into the context of the particular organization or project you are considering AWS for. Some benefits seem universal: usage-based billing, low upfront infrastructure costs, just-in-time infrastructure, for example, translate well to most implementations. But beyond these, it gets more complicated to categorically embrace AWS in every situation. Is having my critical files on S3 better than keeping them on my branch-office file server? What if my internet is down? Will my legacy windows server app play nice with an RDS backend? What about security? Is AWS safe?
These are the types of questions you will face again and again, and the answers might be different for every particular use case. Deciding if AWS is right for you becomes a little easier if you consider AWS as a collection of tools (or services). Picking the right tool for the job at hand is what your decision-making process should be focused on. Let me offer some practical considerations.
1. AWS can be as much or as little as you want it to be
Doing everything in AWS can be a great concept if you are starting out from scratch. If your business case requires a solution that can handle rapid growth while keeping costs low there are very few alternatives to AWS (or cloud platforms in general) that come close. But for many company architects, the reality might be that they don’t have the luxury of starting over tabula rasa. They might be expected to move something ‘to the cloud’ that was never designed with SOA principles for example (say a legacy client-server app with tight coupling). In such cases, it can be more difficult to see benefits from moving. However don’t focus only on the app itself: consider aspects such as business continuity & disaster recovery, running costs, availability, and scalability and compare what you get on AWS vs what you have now.
Look at what your customer or organization is doing and try to find things that make sense to do with AWS. Consider using EC2 to have cheap and disposable test machines. Keep some backups on S3 or Glacier instead of investing in more tapes or NASs.
Really embracing AWS should be an evolutionary journey for many organizations.
2. You don’t have to go it alone
If you sign up with AWS directly, understand exactly what you are getting. Amazon provides you with a platform of services that you can use. There will not be a lot of hand-holding. There will not be a lot of direct support. You are expected to know what you are doing at least to some level. Although AWS offers premium support options, these can get expensive quickly and might not be cost effective for smaller deployments.
Depending on your particular situation it might make more sense to sign up for AWS services through an AWS partner. They can assist you in planning and deploying your AWS solution as well as assisting in the management and monitoring of the solution. If you are asked to deploy something with 24*7 uptime for example but don’t have the IT resources to actually cover everything 24*7, going with a partner organization that can offer that constant level of support can be a smart move in the long run.
AWS is able to give you the tools to monitor your instances 24*7, but no one from AWS will actually fix anything for you if your EC2 instance crashes. You might be able to architect your solution so that it is redundant on many levels, but if having managed services is important to you and your customers then make sure you factor this into your planning.
3. Security is important
Is AWS safe? I think this must be one of the most frequently asked questions in any implementation. The short answer is that AWS is as safe as you make it. Understand where your responsibility starts and where Amazon’s responsibility ends. AWS dedicates a huge amount of resources to make sure their infrastructure and services are safe. But once you start using those services it is up to you to make the right decisions. AWS is like a car manufacturer – they try to make their product as safe as possible, but if you drive recklessly you only have yourself to blame.
A simple example: spin up an EC2 windows instance and open port TCP 3389 to the world. Smart? Definitely not. I can almost guarantee that within 24 hrs at the latest you start getting password spammed. Of course, this will happen whether your server is on AWS or any other provider or in-house – an inherent risk of connecting anything to the web. But it underscores the point that AWS makes it easy to avoid such a mistake, but if you go ahead and ignore best practices then the security problem is not AWS – it is you.
There will be more sophisticated situations where security can make or break an AWS deployment. Some services at AWS might not be at a stage yet where you want them to be (e.g. not all RDS instances have transparent encryption for example) which might require you to rewrite your application to encrypt data within the application or switch back ends to something that works at AWS. What you should not do is put unencrypted data at AWS and then complain if someone steals it. Design your solutions under the assumption that people will try to breach your security and do everything you can to prevent that from happening. A healthy dose of paranoia can go a long way to improving system design.
Also, be aware of AWS specific limitations. One example: because of the way AWS stores data in S3, you cannot audit a particular HDD and say ‘my data is stored here’. A strange request maybe but one that is made in certain industries and for certain applications. Be aware of how things work before making the leap.
When considering security the reality in many cases is that AWS is probably more secure than many in-house IT departments – the certifications and resources they can boast of is a testament to that. But your solution and data are only as secure as the procedures and systems you put in place and the choices you make when deploying and building your solution.
New on Cloud Academy: AWS Solution Architect Lab Challenge, Azure Hands-on Labs, Foundation Certificate in Cyber Security, and Much More
Now that Thanksgiving is over and the craziness of Black Friday has died down, it's now time for the busiest season of the year. Whether you're a last-minute shopper or you already have your shopping done, the holidays bring so much more excitement than any other time of year. Since our...
Understanding Enterprise Cloud Migration
What is enterprise cloud migration? Cloud migration is about moving your data, applications, and even infrastructure from your on-premises computers or infrastructure to a virtual pool of on-demand, shared resources that offer compute, storage, and network services at scale. Why d...
6 Reasons Why You Should Get an AWS Certification This Year
In the past decade, the rise of cloud computing has been undeniable. Businesses of all sizes are moving their infrastructure and applications to the cloud. This is partly because the cloud allows businesses and their employees to access important information from just about anywhere. ...
AWS Regions and Availability Zones: The Simplest Explanation You Will Ever Find Around
The basics of AWS Regions and Availability Zones We’re going to treat this article as a sort of AWS 101 — it’ll be a quick primer on AWS Regions and Availability Zones that will be useful for understanding the basics of how AWS infrastructure is organized. We’ll define each section,...
Application Load Balancer vs. Classic Load Balancer
What is an Elastic Load Balancer? This post covers basics of what an Elastic Load Balancer is, and two of its examples: Application Load Balancers and Classic Load Balancers. For additional information — including a comparison that explains Network Load Balancers — check out our post o...
Advantages and Disadvantages of Microservices Architecture
What are microservices? Let's start our discussion by setting a foundation of what microservices are. Microservices are a way of breaking large software projects into loosely coupled modules, which communicate with each other through simple Application Programming Interfaces (APIs). ...
Kubernetes Services: AWS vs. Azure vs. Google Cloud
Kubernetes is a popular open-source container orchestration platform that allows us to deploy and manage multi-container applications at scale. Businesses are rapidly adopting this revolutionary technology to modernize their applications. Cloud service providers — such as Amazon Web Ser...
AWS Internet of Things (IoT): The 3 Services You Need to Know
The Internet of Things (IoT) embeds technology into any physical thing to enable never-before-seen levels of connectivity. IoT is revolutionizing industries and creating many new market opportunities. Cloud services play an important role in enabling deployment of IoT solutions that min...
Which Certifications Should I Get?
As we mentioned in an earlier post, the old AWS slogan, “Cloud is the new normal” is indeed a reality today. Really, cloud has been the new normal for a while now and getting credentials has become an increasingly effective way to quickly showcase your abilities to recruiters and compan...
How to Go Serverless Like a Pro
So, no servers? Yeah, I checked and there are definitely no servers. Well...the cloud service providers do need servers to host and run the code, but we don’t have to worry about it. Which operating system to use, how and when to run the instances, the scalability, and all the arch...
AWS Security: Bastion Hosts, NAT instances and VPC Peering
Effective security requires close control over your data and resources. Bastion hosts, NAT instances, and VPC peering can help you secure your AWS infrastructure. Welcome to part four of my AWS Security overview. In part three, we looked at network security at the subnet level. This ti...
Top 13 Amazon Virtual Private Cloud (VPC) Best Practices
Amazon Virtual Private Cloud (VPC) brings a host of advantages to the table, including static private IP addresses, Elastic Network Interfaces, secure bastion host setup, DHCP options, Advanced Network Access Control, predictable internal IP ranges, VPN connectivity, movement of interna...