Detailed AWS Roadmap for beginners

Detailed AWS Roadmap for beginners

Full AWS Roadmap

I recently got introduced to AWS as a cloud service provider and it can get very overwhelming if you don't have an overview of what the platform is about.

The goal of this article is to focus on fundamentals and to identify and learn the most commonly used services first, then learn about specialized services on a "need to know" basis.

Amazon Web Services (AWS) is the world’s most comprehensive and broadly adopted cloud platform, offering over 200 fully featured services from data centers globally.

In this article, I have divided the roadmap into five different sections: Fundamentals, Frontend, Backend, DevOps and Database. The objective is to not learn everything but to identify available options and then learn what fits your instance.

-Fundamentals

This is divided into 3 segments:

  • Region and Availability Zones: While this is not a service, it is very important to understand the concept. Regions are separate geographic areas. AWS Regions consist of multiple, physical locations in the world where the data center is stored. Availability Zones consist of one or more discrete data centers, each with redundant power, networking, and connectivity, and housed in separate facilities.

  • Identity and Access Management (IAM): This is a service that helps us to securely manage identities and access AWS services and resources. With IAM, you can specify who or what is authenticated and authorized to use resources in AWS

  • Virtual Private Cloud: This is a virtual network dedicated to your AWS account. VPC provides isolated cloud resources where you have complete control over your virtual networking environment, including a selection of your IP address range, the creation of subnets, and the configuration of route tables and network gateways.

    With VPC you can learn important concepts such as Private & Public Cloud, Internet & NAT Gateways, Access Control Lists (ACLs) & Security Groups, VPC CIDR Block and Route Table.

-Frontend

These are some great services that aren't limited to frontend:

  • CloudFront: This is a beginner-friendly service you can start with. CloudFront is a CDN (Computer Delivery Network) offering service. It is a system of distributed servers that deliver web pages and other web content to a user based on the geographic locations of the user, the origin of the webpage and a content delivery server.

  • Simple Storage Service (S3): Also a beginner-friendly project and one of the first services produced by AWS, it provides developers and IT teams with secure, durable, highly scalable object storage.

  • Amplify: This is a complete solution that lets frontend web and mobile developers easily build, ship, and host full-stack applications on AWS, with the flexibility to leverage the breadth of AWS services as use cases evolve. No cloud expertise is needed.

  • Cognito: This provides identity management for applications. With Cognito, you can add user sign-up and sign-in features and control access to your web and mobile applications. Cognito provides an identity store that scales to millions of users, supports social and enterprise identity federation, and offers advanced security features to protect your consumers and business.

  • Elastic Beanstalk: This is a service for deploying and scaling web applications and services. With Elastic Beanstalk, you have the freedom to select various AWS resources, such as Amazon EC2 instance type including Spot instances, that are optimal for your application, S3, Cloudwatch, Elastic load balancers, e.t.c.

-Backend

  • Compute: AWS compute supplies a virtual server instance and storage and APIs that let users migrate workloads to a virtual machine. Services under compute have further been divided into 3 subsections:

    • Elastic Compute Cloud (EC2): These are virtual servers in the cloud. EC2 offers the broadest and deepest computing platform, with over 500 instances and a choice of the latest processor, storage, networking, operating system, and purchase model to help you best match the needs of your workload. EC2 will also introduce you to Autoscaling in form of Auto Scaling Groups which helps you maintain application availability and lets you automatically add or remove EC2 instances using scaling policies that you define.

    • Lambda: This is a serverless compute service that runs your code in response to events and automatically manages the underlying compute resources for you.

    • Lightsail: This is a virtual private server (VPS) provider and is the easiest way to get started with AWS for developers, small businesses, students, and other users who need a solution to build and host their applications on the cloud. Lightsail includes everything you need to launch your project quickly – virtual machines, containers, databases, CDN, load balancers, DNS management etc.

  • Database: AWS has a lot of database services but a few important ones have been listed below:

    • Relational Database Service (RDS): This is a collection of managed services that makes it simple to set up, operate, and scale databases in the cloud.

    • Amazon Aurora: This is a relational database management system (RDBMS) built for the cloud with full MySQL and PostgreSQL compatibility. This service provides built-in security, continuous backups, serverless compute, up to 15 read replicas, automated multi-Region replication, and integrations with other AWS services.

    • DynamoDB: This is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability.

    • Elasticache: This is a fully managed, in-memory caching service supporting flexible, real-time use cases.

  • Networking & Content Delivery: To run every workload on a secure and reliable global network, there are several services we can adopt:

    • API Gateway: This is a service for creating, publishing, maintaining, monitoring, and securing REST, HTTP, and WebSocket APIs at any scale.

    • Route 53: This is a highly available and scalable Domain Name System (DNS) web service. Route 53 connects user requests to internet applications running on AWS or on-premises.

    • Elastic Load Balancing (ELB): This helps to distribute incoming traffic across multiple targets, such as EC2 instances, containers, and IP addresses, in one or more Availability Zones. It monitors the health of its registered targets and routes traffic only to the healthy targets. ELB scales your load balancer capacity automatically in response to changes in incoming traffic. ELB supports the following types of load balancers: Application Load Balancers, Network Load Balancers and Classic Load Balancers.

    • AWS Certificate Manager: This is used to provide, manage, and deploy public and private SSL/TLS certificates for use with AWS services and internally connected resources. ACM removes the time-consuming manual process of purchasing, uploading, and renewing SSL/TLS certificates. It also incorporates nicely with services such as CloudFront, ELB, API Gateway, etc.

  • Application Integration: This is a suite of services that enable communication between decoupled components within microservices, distributed systems, and serverless applications. Some of these services include:

    • Simple Queue Service (SQS): This is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications.

    • Simple Notification Service (SNS): This is a highly available, durable, secure, fully managed pub/sub messaging service that enables you to decouple microservices, distributed systems, and serverless applications.

    • EventBridge: This is a relatively new service when compared to SQS or SNS. It is a serverless event bus that makes it easier to build event-driven applications at scale using events generated from your applications, integrated Software-as-a-Service (SaaS) applications, and AWS services.

    • Step Function: This is a fully managed service that makes it easy to coordinate the components of distributed applications and microservices using visual workflows.

  • Containers: Containers provide a standard way to package your application's code, configurations, and dependencies into a single object. To choose the right AWS service for your workload, from small experiments to critical production applications, these are container services AWS offers;

    • Elastic Container Service (ECS): Amazon Elastic Container Service is a fully managed container orchestration service that provides the most secure, reliable and scalable way to run containerized applications. This is used if you want to run containerized applications or build microservices.

    • Elastic Kubernetes Service (EKS): This is used if you want to manage containers with Kubernetes. Amazon Elastic Kubernetes Service is a fully managed Kubernetes service that provides the most secure, reliable, and scalable way to run containerized applications using Kubernetes.

    • Elastic Container Registry (ECR): ECR compresses and encrypts your container images, making them fast to start and available to run anywhere. ECR is used if you want to store, encrypt, and manage container images.

    • App Runner: This is a relatively new container service that lets you build, deploy, and run containerized web applications and API services without prior infrastructure or container experience.

  • Monitoring: Monitoring your AWS resources is one of the best ways to ensure that your services and applications remain efficient. To make this monitoring easier, AWS offers a service called CloudWatch which you can use to collect and visualize metrics across your services.

-DevOps

AWS provides a set of flexible services designed to enable companies to reliably build and deliver products using AWS and DevOps practices. These services simplify provisioning and managing infrastructure, deploying application code, automating software release processes, and monitoring your application and infrastructure performance.

  • Cloud Development Kit (CDK): This is not necessarily a service but a great developer tool that helps accelerates cloud development using common programming languages to model your applications.

  • CodeBuild: This is a classic DevOps service. CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces software packages that are ready to deploy.

  • CodeDeploy: This helps us to automate code deployment to maintain application uptime for various compute services, such as Amazon Elastic Compute Cloud (EC2), Amazon Elastic Container Service (ECS), AWS Lambda, and your on-premises servers.

  • CodePipeline: This is a fully managed continuous delivery service that helps you automate your release pipelines for fast and reliable application and infrastructure updates.

-Data Engineering

AWS Data Engineering ensures fast querying to run Data Analytics on a massive volume of data and feed data to different Business Intelligence Tools, Dashboards, and other applications. Services available under this section include;

  • Athena: This is an interactive query service that makes it easy to analyze data directly in Amazon Simple Storage Service (Amazon S3) using standard SQL.

  • Kinesis: This service makes it easy to collect, process, and analyze real-time video and data streams so you can get timely insights and react quickly to new information.

  • Redshift: This an efficient service that uses SQL to analyze structured and semi-structured data across data warehouses, operational databases, and data lakes, using AWS-designed hardware and machine learning to deliver the best price-performance at any scale.

  • Glue: This is a serverless data integration service that makes it easier to discover, prepare and integrate data from multiple sources for analytics, machine learning (ML), and application development.

  • Lake Formation: This is a service that easily creates secure data lakes, making data available for wide-ranging analytics.

Like it was stated earlier, the goal isn't to learn everything but to identify available options and then learn what fits your use case. Also, there is no learning without assessing your knowledge somehow, you can get hands-on experience through self-paced projects and practices with various services on AWS.

Illustration Tool: MindMeister