Amazon offers a broad range of Compute options. Picking the right one is an important first step that will affect your application performance, cost, and future scalability. In this course, let’s go ahead and explore the various options available and see how we can match these with our business requirements.
- Virtual machine options for your applications
- Options for new software development projects
- Serverless options where AWS manages the infrastructure for you
- Containers that can be deployed in a traditional server or serverless fashion
- Those new to cloud computing
- Those facing the challenge of deploying an application to AWS with very specific business requirements
- You don’t need any prior knowledge of AWS to benefit from this course
- It’s helpful to be familiar with your business requirements
So, given that there are so many choices, which Compute option is right for you?
Here's a way to find out. I'll give you a list of questions and depending on your answers, you'll end up with a narrow list of Compute options that you can choose from. Are you ready? Let's go. Does your application need a specific operating system? Does your application need a hardened version of an operating system or software? Is your company required to meet certain governance, such as end-to-end encryption or other requirements that are very specific to your use case? Does your application have an unusually high need for memory or CPU? Do you have legacy software that just needs to be migrated to the cloud? If you answered yes, to several of these questions, then probably you need to manage your own infrastructure.
In which case you would pick EC2 in AWS as your Compute option. Another great choice will be ECS backed by traditional EC2s if you run Docker containers and need to manage their infrastructure yourself. Now, moving onto the serverless world, are you running microservices? Is your software brand new or still under development? Is your application based on triggers such as file uploads, incoming emails or data streams? Are you building APIs to serve other applications or companies? Do you run containers that don't care about the infrastructure where they run as long as they are in a secure environment and highly available? If you answer yes to several of these questions, then serverless managed by AWS may be the right choice for you.
AWS Lambda and API Gateway provide a great platform for microservices and APIs. ECS Fargate is an amazing platform to run containers and let Amazon manage the infrastructure. And Step Functions and AWS Amplify provide workflow management and web application platform management without the need to manage servers at all. All right, let's do one last round. Are you running a small shop with web developers and no operations team? Do you have a specific use case for AWS that requires servers, but you would rather not have to manage them manually? Do you need to make a database servers available to the public, but without actually having to manage the server itself? These are great questions to determine whether the in-between options in AWS are a good fit for you.
Elastic Beanstalk and AWS Amplify are great choices for web developers that don't want to deal with infrastructure, but may have to from time to time. Even AWS Lightsail, which is simply a pre-configure server in the cloud, could be a great legacy option for web developers. For semi-automatic operation management, there's OpsWorks, which is a great to manage service in the cloud such as databases and applications. RDS, AWS relational database service is also a great Compute option to make databases available to third parties, internal use only and other use cases without ever managing the server itself. As you can see, picking the right Compute and infrastructure option is a very use case specific decision. Only you know the option that works best for your needs and hopefully this list of questions can help you make it better and form decision.
Software Development has been my craft for over 2 decades. In recent years, I was introduced to the world of "Infrastructure as Code" and Cloud Computing.
I loved it! -- it re-sparked my interest in staying on the cutting edge of technology.
Colleagues regard me as a mentor and leader in my areas of expertise and also as the person to call when production servers crash and we need the App back online quickly.
My primary skills are:
★ Software Development ( Java, PHP, Python and others )
★ Cloud Computing Design and Implementation
★ DevOps: Continuous Delivery and Integration