EdX

Building Modern Java Applications on AWS (edX)

Offered by AWS,
Building Modern Java Applications on AWS (edX)

In this course, we will be covering how to build a modern, greenfield serverless backend on AWS. 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.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

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.

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

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.

Syllabus

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

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introduction to Java Programming: Starting to code in Java (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introduction to Java Programming: Starting to code in Java (edX)

Learn to program with Java in an easy and interactive way! In this introductory Java programming course, you will be introduced to powerful concepts such as functional abstraction, the object oriented programming (OOP) paradigm and Application Programming Interfaces (APIs). Examples and case studies will be provided so that you can implement simple programs on your own or collaborate with peers.

Self Paced
Self-Paced
Introduction to Object-Oriented Programming with Java III: Exceptions, Data Structures, Recursion, and GUIs (edX) EdX
Georgia Institute of Technology,GTx

Introduction to Object-Oriented Programming with Java III: Exceptions, Data Structures, Recursion, and GUIs (edX)

Learn how to create and use exceptions, data structures, recursion, and graphical user-interfaces (GUIs). This course provides students with the knowledge to handle and even create exceptions to achieve graceful error handling in programs. They will also create and utilize data structures, including lists and files. Students will also learn about recursion and how it can be a useful approach to repetition in a program. Finally, students will learn how to develop basic graphical user interfaces (GUIs) using JavaFX.

Self Paced
Self-Paced
Introduction to Object-Oriented Programming with Java I: Foundations and Syntax Basics (edX) EdX
Georgia Institute of Technology,GTx

Introduction to Object-Oriented Programming with Java I: Foundations and Syntax Basics (edX)

Learn the foundational basics of the Java programming language. This course provides an introduction to the Java programming language. It gives students a foundational overview and history of Java, and students will learn about the language’s basic syntax. At the end, they will be able to develop interactive console programs with basic data processing and formatting capabilities.

Self Paced
Self-Paced
Software Engineering Essentials (edX) EdX
Technische Universität München - TUM,TUMx

Software Engineering Essentials (edX)

Learn agile methods, object-oriented programing and best practices for analysis, design, testing and management in software engineering. The world of software engineering requires high flexibility, an influx of new ideas, and the courage to challenge traditional approaches. As a software engineer, you need to know the methods, workflows and tools to handle continuously growing complexity and shortened development cycles. You must be able to work in teams to build high-quality software.

This course is archived
5-12 Weeks
Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX)

Learn the basics of object-oriented programming and algorithms. Students will build on the skills learned from “Introduction to Object-Oriented Programming with Java I: Foundations and Syntax Basics” and learn the basics of writing classes that serve as blueprints of concepts or objects that are represented in a programming problem. Students will leverage the concepts of inheritance, interfaces, and polymorphism to program reusability and flexibility in classes. Finally, students will gain experience walking through and analyzing algorithms that are applied on data (including objects) in many object-oriented programs.

Self Paced
Self-Paced
Introduction to Java Programming: Writing Good Code (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introduction to Java Programming: Writing Good Code (edX)

Learn to program in an easy and interactive way and enter the fascinating world of computer science. This is an introductory course to learn programming with Java designed to teach how to code good programs in Java, understanding “good” as both correct and efficient. Basic principles of software engineering will be introduced to make it easier for our future self and others to reuse code. Ethical issues and the intellectual property of our programs will also be addressed in the last part of this course. Examples and case studies will be provided, so that learners can implement simple but increasingly complex programs in Java.

Self Paced
Self-Paced
Manufacturing Process Control II (edX) EdX
MIT,MITx

Manufacturing Process Control II (edX)

Learn how to control process variation, including methods to design experiments that capture process behavior and understand means to control variability. As part of the Principles of Manufacturing MicroMasters program, this course will build on statistical process control foundations to add process modeling and optimization.Building on formal methods of designed experiments, the course develops highly applicable methods for creating robust processes with optimal quality.

Oct 17th 2023
5-12 Weeks
Architecting Solutions on AWS (edX) EdX
AWS

Architecting Solutions on AWS (edX)

Are you looking to get more technical? Are you looking to begin working in the cloud, but don’t know where to go next? Are you puzzled how to match a customer’s requirements with the right AWS services/solutions? If so, you are in the right place!! You’ll learn how to plan, think, and act like a Solution Architect in a real-life customer scenario.

Self Paced
Self-Paced