Skip to main content

AWS: Building Modern Java Applications on AWS

In this course, we will be covering how to build a modern, greenfield serverless backend on AWS.

6 weeks
1–4 hours per week
Self-paced
Progress at your own speed
This course is archived

About this course

Skip About this course

In modern cloud native application development, it’s often times the goal to build out serverlessarchitectures that are scalable, are highly available, and are fully managed. This mean, less operational overhead for you and your business, and more focusing on the applications and business specific projects that differentiate you in your marketplace. In this course, we will be covering how to build a modern, greenfield serverless backend on AWS.

Building brand new applications on AWS is a different task than lifting and shifting existing applications into AWS. When you have an existing application that you need to move to AWS, you might first look to using Amazon EC2 as your virtual machines, or maybe you might look into using docker containers and container hosting services like Amazon Elastic Container Service or Amazon Elastic Kubernetes Service. Those are all great application hosting options, but in most cases, they still require you to have some kind of pulse on the underlying infrastructure hosting your application.

In this class, we will explore how to build an API driven application using Amazon API Gateway for serverless API hosting, AWS Lambda for serverless compute, and Amazon Cognito for serverless authentication. We will follow an API driven development process and first mock up what the API will look like. We will cover all the ins and outs of the service Amazon API Gateway, and as you’ll learn- it does a lot more than just hosting an API.

Then we will add authentication to the API using Amazon Cognito. You’ll learn about how the authorization flow works with cognito, and how to build it into your APIs. From there, we will add a Lambda backend that will be triggered by API Gateway. The lambda functions will be using the AWS SDKs to perform various data processing tasks. You’ll learn about the different configurations that exist for Lambda, and we will show you how to create and manage lambda functions. Some of the features of our API will require multiple lambda functions to execute in a specific order, like a workflow, and we will use AWS Step Functions to create a serverless workflow. Finally, we will talk about how to optimize your APIs at every layer using AWS features.

At a glance

  • Institution: AWS
  • Subject: Computer Science
  • Level: Introductory
  • Prerequisites:

    We expect that you have basic knowledge of AWS already. Some examples of concepts you should be familiar with are: you should know the basics of the AWS Global infrastructure, like what regions and availability zones are. You also should know the at a high-level AWS Identity and Access Management, or IAM, and how it is used to control access to AWS resources. You should also understand what an Amazon EC2 instance is, what Amazon S3 is, what a VPC is, as well as other basic AWS terminology.

  • Language: English
  • Video Transcript: English
  • Associated skills:Serverless Computing, Amazon Elastic Container Service, Authorization (Computing), Amazon Cognito, Internet Hosting Service, Java (Programming Language), Scalability, Amazon Web Services, Workflow Management, Amazon API Gateway, Hosting, AWS Lambda, Application Development, Infrastructure, Application Programming Interface (API), API Gateway, Virtual Machines, Cloud-Native Applications, Data Processing, Docker (Software), Amazon Elastic Kubernetes Service, Amazon Elastic Compute Cloud, Authentications

What you'll learn

Skip What you'll learn
  • How to build a modern, greenfield serverless backend on AWS
  • How to build an API driven application using Amazon API Gateway for serverless API hosting
  • How to build an API driven application using AWS Lambda for serverless compute
  • How to build an API driven application using Amazon Cognito for serverless authentication

Week 1

  • Architecting for the Cloud
  • What we are building
  • Introduction to AWS Cloud9
  • AWS Command Line Interface (CLI) and Application Programming Interfaces (APIs)
  • AWS APIs
  • AWS CLI
  • Section Reading
  • AWS SDK Exploration (Java)
  • AWS Credentials in Cloud9
  • Introduction to the Serverless Application Model (SAM)
  • AWS Toolkit for (Cloud9/IntelliJ/PyCharm)
  • Section Reading
  • Quiz
  • Lab 1: Create a static website in Amazon S3

Week 2

  • Introduction to API Driven Design
  • API driven development
  • What is Amazon API Gateway
  • Amazon API Gateway terminology
  • Section Readings
  • Models and Mapping
  • Creating an API with Mock integration
  • Using Mappings
  • Using Models
  • Section Readings
  • Publish API
  • Using Postman to create requests
  • Section Readings
  • Lab 2: API
  • API Authentication
  • Introduction to Amazon API Gateway authentication
  • Amazon API Gateway access controls
  • Amazon API Gateway authentication and authorization mechanisms
  • Amazon Cognito
  • Introduction to Amazon Cognito
  • Using Amazon Cognito to sign in and call Amazon API Gateway
  • Section Readings
  • Quiz
  • Lab 3 Cognito

Week 3

  • Serverless Computing and AWS Lambda
  • Introduction to AWS Lambda
  • AWS Lambda Execution
  • AWS Lambda permisions
  • Section Readings
  • Triggers, Push, Pull model
  • AWS Lambda execution context and reuse
  • AWS Lambda Compliance
  • Asynchronous vs Synchronous Responses
  • Section Readings
  • Versions and Aliases
  • Creating a lambda function using the AWS CLI
  • Creating and Debugging a AWS Lambda Function using the AWS Toolkit
  • Section Readings
  • Lab 4: AWS Lambda
  • Quiz

Week 4

  • Orchestration
  • Creating a serverless workflow
  • Introduction to AWS Step Functions
  • Step Functions API exploration
  • Step Function State types
  • Section Readings
  • Step Function Service Integrations
  • Amazon API Gateway and Step function Integration
  • Callback patterns
  • Step Function Activities
  • Standard vs Express Step functions
  • Section Readings
  • Other Orchestration and messaging Services
  • Event Driven Architectures
  • SQS, SNS, EventBridge
  • Section Reading
  • Lab 5: Process
  • Quiz

Week 5

  • Observability
  • Introduction to Observability
  • Introduction to Amazon X-Ray
  • X-Ray, API Gateway, and Lambda
  • Using the AWS X-Ray SDK with (Java)
  • Section Readings
  • API Gateway and Lambda Logs
  • Amazon CloudWatch Logs integration with API Gateway, Step Functions, and Lambda
  • Configuring CloudWatch Logs in API Gateway, Step Functions, and Lambda
  • Section Readings
  • Quiz

Week 6

  • Optimization
  • Introduction to edge-optimized endpoints
  • API Gateway Response caching
  • Lambda at the Edge
  • Section Readings
  • Lambda Performance
  • Lambda Layers
  • Lambda best practices
  • Section Readings
  • API Gateway optimization
  • API Gateway Proxy for AWS APIs
  • API Gateway HTTP APIs
  • Section Readings
  • Lab 6: Optimizing
  • Quiz
  • Course Wrap-up
  • Final Readings
  • Final Assessment

Frequently Asked Questions

Skip Frequently Asked Questions

Q. Are there any costs associated with this course?
A. Learners can register for the course in an Audit track or Verified Certificate track. The Audit track is free, but limits the duration of access to 6 weeks from registration. The Verified Certificate track costs $169 and provides full access to course content for the duration. Please visit edx.org for more information.

In addition to course registration costs, this course provides optional hands-on exercises which may have an associated charge in your AWS account. Please familiarize yourself with the AWS Free Tier at aws.amazon.com/free/.

Please note that the AWS Free Tier also has a limit on the amount of resources that you can consume before you begin accruing charges. If you perform these hands-on exercises, there is a chance you may incur charges on your AWS account. Please visit the AWS Free Tier page for more information.

Q. Do I need a credit card to create an AWS Account?
A. Yes, you will need a credit card to activate your AWS account.

Q. How much time will this course require?
A. If following the weekly schedule, learners should plan to spend 2-4 hours per week on this course. However, learners may complete the course at their own pace.

Q. Will I receive a certificate for this course?
A. Learners enrolled in the Verified Certificate path will receive a certificate upon successful completion of the course.

Q. What is the grading policy for this course?
A. All learners may take weekly quizzes, which are not graded and allow unlimited retries.

Learners in the Verified Certificate track are able to take the final course assessment in the course. Passing the final assessment is required to obtain the Verified Certificate.

Learners in the Audit track will not have access to the final assessment, and will not be able to earn a certificate.

Q. How are discussions used in this course?
A. This course has discussion groups aligned to each week of the course. We encourage learners to ask questions or offer suggestions and feedback. AWS Instructors will monitor the discussion groups to answer questions specific to the exercises and topics covered in the course.

Q. Will this course help me prepare for an AWS Certification?
A. Earning an AWS Certification typically requires both knowledge and experience. While this course, if taken in isolation, will provide you with relevant information and skills, it likely will not equip you to earn an AWS Certification. For more information about AWS Certifications, including recommended training and experience requirements, visit aws.amazon.com/certification.

Interested in this course for your business or team?

Train your employees in the most in-demand topics, with edX For Business.