(PART 1) Below is a list of 30 essential services to know and learn as you are starting on your AWS journey but of course depending on your use case and what you are trying to achieve, there are many many more AWS services that you may have to dig deep into. At the time of writing this blog, there are over 200 fully featured AWS services for a wide variety of technologies, industries and use cases.
This blog is split into two parts due to its length, this is PART 1 covering the 15 services.
Do you agree with this list? What would you add or remove? Please comment below.
Compute
- Amazon EC2 – virtual servers in the cloud
- Provides elastic compute capacity running on hardware provided by AWS to manage any kind of workload with per-second billing so customers pay only for capacity they use.
- Provides ability to host instances in multiple locations, regions and availability zones.
- Offers Amazon Machine Images (AMIs) that are preconfigured with a large variety of operating systems to choose from.
- Example Use Case – run cloud native and enterprise applications quickly and dynamically scale capacities as per business demands.
- Amazon EC2 Auto Scaling – add or remove compute capacity to meet changing demand
- Automatically scale your Amazon EC2 capacity up or down according to conditions you define.
- Provides two types of scaling – dynamic and predictive. Dynamic scaling responds to current changing demands whereas predictive responds based on predictions.
- Improve fault tolerance through automatic detection and replacement of unhealthy instances.
- Example Use Case – Use previous traffic patterns to schedule application scaling and reduce manual provisioning.
- AWS Lambda – Serverless, event-driven compute service
- Runs code without provisioning or managing infrastructure. Simply write and upload code as a .zip file or container image.
- Save costs by paying only for the compute time you use – by the millisecond – instead of provisioning infrastructure upfront for peak capacity.
- Example Use Case – Create event driven applications combined with other AWS services to create secure and scalable applications.
Storage
- Amazon Simple Storage Service (S3) – scalable and secure object storage in the cloud
- Store and retrieve any amount of data from anywhere.
- The basic units in S3 are buckets and objects, essentially folders and files. Data is stored as objects within “buckets” and a single object can be up to 5TB.
- Example Use Case – back up and restore critical data.
- Amazon Elastic Block Store (EBS) – High performance elastic block storage volumes for EC2
- EBS volumes are network attached storage that can be attached to Amazon EC2 instances.
- Persists independently of the life of the EC2 instance. Multiple EBS volumes can be attached to an instance and vice versa.
- Designed for high availability, they are placed in a specific Availability Zone where they are automatically replicated.
- All EBS volume types offer snapshot capabilities.
- Example Use Case – Attach high performance and high availability block storage for mission critical applications.
- Amazon Elastic File System (EFS) – elastic file storage for EC2
- Fully managed and serverless implementation of a NFS file share accessed using the NFS protocol.
- Automatically grows and shrinks as you add and remove files with no need for management or provisioning.
- Mount file system on EC2 instances, AWS containers, Lambda functions or on-premises servers.
- Example Use Case – Persist and share data from AWS containers and serverless applications with zero management.
Containers
- Amazon Elastic Container Service (ECS) – fully managed container orchestration service
- Deploy, manage, and monitor containerized applications.
- Describe your application and the resources it needs, and Amazon ECS will launch, monitor and scale your application across compute options.
- Create custom scaling and capacity rules. Monitors the health checks of clusters and triggers alarms based on defined criteria.
- Example Use Case – Automatically scale and run web applications in multiple Availability Zones with performance, scale, reliability and availability.
- Amazon Elastic Kubernetes Service (EKS) – managed Kubernetes service
- Run Kubernetes in the AWS cloud and on-premises data centers.
- In the cloud, automatically manages the availability and scalability of Kubernetes control plane nodes.
- On-premises, EKS provides a fully-supported Kubernetes solution and simple deployments to AWS outposts, VMs, or bare metal servers.
- Example Use Case – Automatically scale and run web applications in multiple Availability Zones with out-of-the-box networking and security integrations.
- AWS Fargate – serverless compute for containers
- Remove the operational overhead to scale, patch and manage servers.
- Select any OCI-compliant container image, define memory and compute resources and run the container with serverless compute.
- Application isolation by design – Amazon ECS tasks and Amazon EKS pods run in their own dedicated environment.
- Example Use Case – Use AWS Fargate with Amazon ECS or Amazon EKS to run and scale your containerized workloads.
Databases
- Amazon RDS – managed relational database service for PostgreSQL, MySQL, MariaDB, SQL Server, Oracle and Db2
- Set up, operate, and scale a relational database in the cloud with just a few clicks.
- Provides monitoring and alerting, automated patching and upgrades, and backup and recovery.
- Example Use Case – build new apps with Amazon RDS instead of worrying about self managing your databases which can be time consuming, complex and expensive.
- Amazon DynamoDB – NoSQL database
- Fully managed and serverless, key-value NoSQL database.
- Includes built-in security, backup and restore, and encryption at rest.
- Example Use Case – build internet scale applications supporting user-content metadata and caches, that requires high concurrency and connections for millions of users and millions of requests per second.
- Amazon DocumentDB – document database (MongoDB compatible)
- Fully managed native JSON document database which provides distributed storage and scales enterprise workloads to operate critical document workloads.
- Provides advanced monitoring and alerting; automated patching, provisioning and upgrades.
- Example Use Case – Manage user profiles, preferences and requests.
- Amazon ElasticCache – in-memory caching service
- Fully managed and serverless caching service compatible with Redis and Memcached.
- Built to deliver real time performance for real-time applications.
- Example Use Case – Store frequently used data in-memory for microsecond response times and high throughput to support hundreds of millions of operations per second.
Application Integration
- Amazon Simple Notification Service (SNS) – pub/sub, SMS, email, and mobile push notifications
- Sends notifications two ways – application-to-application (A2A) and application-to-person (A2P).
- A2A provides high-throughput, push-based, many-to-many messaging between distributed systems, micro services and event driven serverless applications.
- Distribute A2P notifications to your customers with SMS texts, push notifications and email.
- Example Use Case –
- Amazon Simple Queue Service (SQS) – message queues
- Fully managed message queuing service to reliably and continually exchange any volume of messages from anywhere.
- Messages are encrypted at rest and in transit with HTTPS/TLS.
- Example USE CASE – Separate frontend from backend systems such as in a banking application. Customers immediately get a response, but the bill payment are processed in the background.