Unmanaged services
Unmanaged services are cloud computing services, like Amazon EC2, where AWS takes care of the underlying physical infrastructure, but you’re responsible for setting up, securing, and maintaining the operating system, network configurations, and applications on your instances.
Managed services
Managed services are cloud computing services where AWS handles most of the setup, maintenance, and management tasks, reducing the user’s operational burden.
While AWS handles much of the operational overhead, you might still need to perform some provisioning or configuration depending on the service.
Fully-managed services
Fully-managed services—like serverless ones—are cloud computing services that take abstraction even further, eliminating the need to provision or manage any servers at all. The underlying infrastructure is fully managed by AWS, so you can focus entirely on writing and deploying code.
Example: Lambda. Lambda is a serverless compute service where AWS handles the infrastructure, scaling, and availability, while you remain responsible for securing and managing your application code.
Lambda
Lambda is a serverless compute service that runs code in response to events without the need to provision or manage servers.
Lambda’s key components
Lambda use case examples
Lambda works well along with Amazon Simple Queue Service.
Container
A container is a standardized, portable unit that packages an application along with its dependencies, libraries, and configuration files, ensuring it runs consistently across different environments.
Containers are faster and lighter than virtual machines (VMs) because they share the host computer’s operating system. VMs use a hypervisor to run full, separate operating systems, which makes them less resource-efficient and have longer startup times.
Containers orchestrator
Container orchestrators are tools or platforms that automate the deployment, scaling, management, and operation of containerized applications across multiple hosts or clusters.
As containerized applications grow from a few containers on a single host to hundreds or thousands across multiple hosts, orchestrators handle complex tasks like container lifecycle management, resource allocation, load balancing, scaling, networking, monitoring, and recovery from failures.
Amazon ECS
Amazon Elastic Container Service is a scalable container orchestration service for running and managing containers on AWS, like Docker containers. Docker is a software platform for building, testing, and deploying applications quickly.
Amazon ECS launch types:
Amazon EKS
Amazon Elastic Kubernetes Service is a fully managed service for running Kubernetes on AWS. It simplifies deploying, managing, and scaling containerized applications using open-source Kubernetes, with ongoing support and updates from the broader community.
Amazon EKS launch types
Amazon ECR
Amazon Elastic Container Registry is where you can store, manage, and deploy container images.
AWS Fargate
AWS Fargate is a serverless compute engine for containers. It works with both Amazon ECS and Amazon EKS.
Fargate is a container hosting platform, unlike Amazon ECS and Amazon EKS, which are both container orchestration services.
When using Fargate, you do not need to provision or manage servers. Fargate manages your server infrastructure for you. You can focus more on innovating and developing your applications, and you pay only for the resources that are required to run your containers.
AWS Elastic Beanstalk
Elastic Beanstalk is a fully managed service that streamlines the deployment, management, and scaling of web applications.
Developers can upload their code, and Elastic Beanstalk automatically handles the provisioning of infrastructure, scaling, load balancing, and application health monitoring.
It supports various programming languages and frameworks, such as Java, .NET, Python, Node.js, Docker, and more. It provides full control over the underlying AWS resources while automating many operational tasks.
Good for: Deploying and managing web applications, RESTful APIs, mobile backend services, and microservices architectures, with automated scaling and simplified infrastructure management
AWS Batch
AWS Batch is a fully managed service that you can use to run batch computing workloads on AWS.
It automatically schedules, manages, and scales compute resources for batch jobs, optimizing resource allocation based on job requirements.
Good for: Processing large-scale, parallel workloads in areas like scientific computing, financial risk analysis, media transcoding, big data processing, machine learning training, and genomics research
AWS Lightsail
Amazon Lightsail is a cloud service offering virtual private servers (VPSs), storage, databases, and networking at a predictable monthly price.
It’s ideal for small businesses, basic workloads, and developers seeking a straightforward AWS experience without the complexity of the full AWS Management Console.
Good for: Basic web applications, low-traffic websites, development and testing environments, small business websites, blogs, and learning cloud services
AWS Outposts
AWS Outposts is a fully managed hybrid cloud solution that extends AWS infrastructure and services to on-premises data centers.
It provides a consistent experience between on premises and the AWS Cloud, offering compute, storage, and networking components.
Good for: Low-latency applications (no delay in data transfer), data processing in remote locations, migrating and modernizing legacy applications, and meeting regulatory compliance or data residency requirements