In this course you will create several microservices in Java 21, using the Spring Boot V3 framework and Docker containers, building a backend application to interact with Amazon Web Services resources, as the mentioned below. These resources will be created in AWS using the AWS Cloud Development Kit (CDK) V2, a modern way to model and provision infrastructure in AWS. The AWS CDK is one of the best infrastructure as code, or IaC, tools for AWS.
Spring Boot V3 is a powerful Java framework to build server-side applications with annotations, controllers, services, request interceptors and much more.
The following diagram illustrate the project architecture that will be built in this course:

This course will cover the following AWS resources and tools with practical exercises:
- AWS ECS: the Elastic Container Service is the AWS container orchestration service. With this service it's possible to manage the Docker based microservices containers execution in a robust and scalable way. And with the AWS Fargate, the Serverless compute for containers from Amazon Web Services, it isn't necessary create EC2 instances, reducing the operating cost of container based applications;
- AWS ECR: with the Elastic Container Registry from AWS it's possible to create private repositories to store the microservices' container Docker images;
- AWS VPC: with the Virtual Private Cloud it's possible to secure the infrastructure with private subnets and network security policies for inbound and outbound traffic rules;
- AWS ALB: the Application Load Balancer from AWS allows the incoming HTTP traffic to be balanced between all the available application instances, and with the integrated target groups, each instance can be monitored to only receive traffic if it is healthy;
- API Gateway REST: with the Amazon API Gateway it's possible to protect the application REST API, as well as performing query string parameter and requests' body validation;
- CloudWatch Logs: responsible for concentrating applications logs and its metrics. The applications that will be created in this course will generate logs into CloudWatch Logs in a JSON format, using the log4j2 library. In this way, we can inject parameters in the logs, to be used in queries in the AWS CloudWatch Logs Insights console;
- CloudWatch Alarms: with the alarms from CloudWatch it will be possible to monitor the abnormal occurrences from the applications and AWS resources;
- CloudWatch Container Insights: with the Container Insights it's possible to aggregate monitoring information from the applications running in AWS ECS, including its logs;
- DynamoDB: the DynamoDB is a powerful NoSQL and non-relational database managed service. This course presents the usage of the DynamoDB enhanced client from the AWS SDK V2 for Java, which is a high-level library that allows a way to map client-side classes to DynamoDB tables;
- SQS: the SQS, or Simple Queue Service, is a queue service which allows asynchronous communication between applications, in order to exchange messages and events;
- SNS: with the SNS, or Simple Notification Service, it's possible to create topics and publish messages to be received by several resources and applications;
- S3: the S3, or Simple Storage Service, has a file storage with no server provisioning. Also, the S3 generates notifications when files are added to it;
- X-Ray: the AWS X-Ray is a service which allows analysis and debugging of distributed applications;
- IAM: the Identity and Access Management from AWS allows roles and permissions management, granted to users and services to access other AWS resources;
- AWS Cost Explorer: with the Cost Explorer from AWS it's possible to generate cost graphs about resource consumption, split by resource types and tags, which can identify applications and their parts.
These resources will be created on AWS using the AWS Cloud Development Kit - CDK, a modern way of modeling and provisioning infrastructure on AWS using the Java language. The AWS CDK is ideal if you want to work in the DevOps and in the infrastructure as code fields.
With this you will also learn how to use the AWS SDK V2 for Java, which is a set of libraries developed by AWS itself to use its services.
The AWS SDK V2 for Java is fully integrated with the Spring Boot V3 framework and with JDK 21 libraries, so it's very easy to access the AWS resources in an elegant way, creating operations to be execute concurrently.
If you already have AWS certification and are looking for hands-on experience, you can get that with this course, through the exercises that will be offered here.
This course has a good balance between theoretical and practical exercises. You can expect detailed explanations with diagrams and well-guided implementations, always with a well-defined purpose.
Note: This course is not intended to prepare you for an AWS certification exam. There are other courses that are specific to AWS certifications.
Also included in the package, when you buy this course:
- Student support, through the platform questions and answers section;
- Project source code to help you at the beginning of the course;
- Quizzes to test your knowledge about course topics;
- Practical exercises to let you practice, with detailed solutions offered by the instructor;