Developing on AWS

Field | Description |
Purpose | To empower experienced developers to programmatically interact with AWS services, enabling them to build, secure, deploy, and debug robust cloud-native web applications. |
Audience | Software developers and technical professionals looking to transition from traditional development to cloud-based application engineering. |
Role | Software Developers, Full Stack Engineers, Cloud Developers, and Solutions Architects. |
Domain | Cloud Development / DevOps / Serverless Architecture. |
Skill Level | Intermediate. |
Style | Code-intensive and hands-on, utilizing AWS SDKs (Python, .NET, Java) and CLI to build a functional sample application through various design patterns. |
Duration | 3 Days. |
Related Technologies | AWS SDKs, AWS CLI, AWS Lambda, Amazon DynamoDB, Amazon S3, Amazon Cognito, API Gateway, and AWS SAM. |
Course Description
Developing on AWS is a deep dive into the programmatic side of the AWS Cloud. This course moves beyond the management console to teach developers how to use the AWS SDKs and Command Line Interface (CLI) to build scalable web solutions. Throughout the three days, you will follow a high-level architectural roadmap to build a sample application. You will master setting up development permissions, implementing business logic using core services, configuring secure user authentication, and deploying applications using modern DevOps methodologies.
Who is this course for
This course is specifically designed for technical builders, including:
Software Developers who need to integrate AWS services into their existing codebases.
Solutions Architects who want to understand the implementation details of their designs.
IT Professionals seeking to modernize their skill set by moving into cloud-native development.
Course Objectives
Programmatic Access: Build end-to-end applications using SDKs, CLI, and IDE integrations.
Security & Permissions: Configure IAM policies and Amazon Cognito for secure user access and resource management.
Data & Compute: Perform CRUD operations on Amazon S3 and DynamoDB, and build integrated AWS Lambda functions.
Serverless & Microservices: Design and deploy applications using API Gateway and the AWS Serverless Application Model (SAM).
Observability & DevOps: Utilize Amazon X-Ray for debugging and adopt DevOps methodologies to streamline application releases.
Prerequisites
Foundation: Completed AWS Technical Essentials.
Cloud Knowledge: Working knowledge of AWS core services (compute, storage, and networking).
Technical Skill: Professional programming experience in Python, .NET, or Java.
Course outline
Section 1: Course Overview
Logistics
Student resources
Agenda
Introductions
Section 2: Building a Web Application on AWS
Discuss the architecture of the application you are going to build during this course
Explore the AWS services needed to build your web application
Discover how to store, manage, and host your web application
Section 3: Getting Started with Development on AWS
Describe how to access AWS services programmatically
List some programmatic patterns and how they provide efficiencies within AWS SDKs and AWS CLI
Explain the value of AWS Cloud9
Section 4: Getting Started with Permissions
Lab 1: Configure the Developer Environment
Review AWS Identity and Access Management (IAM) features and components permissions to support a development environment
Demonstrate how to test AWS IAM permissions
Configure your IDEs and SDKs to support a development environment
Demonstrate accessing AWS services using SDKs and AWS Cloud9
Connect to a developer environment
Verify that the IDE and the AWS CLI are installed and configured to use the application profile
Verify that the necessary permissions have been granted to run AWS CLI commands
Assign an AWS IAM policy to a role to delete an Amazon S3 bucket
Section 5: Getting Started with Storage
Describe the basic concepts of Amazon S3
List the options for securing data using Amazon S3
Define SDK dependencies for your code
Explain how to connect to the Amazon S3 service
Describe request and response objects
Section 6: Processing Your Storage Operations
Lab 2: Develop Solutions Using Amazon S3
Perform key bucket and object operations
Explain how to handle multiple and large objects
Create and configure an Amazon S3 bucket to host a static website
Grant temporary access to your objects
Demonstrate performing Amazon S3 operations using SDKs
Interact with Amazon S3 programmatically using AWS SDKs and the AWS CLI
Create a bucket using waiters and verify service exceptions codes
Build the needed requests to upload an Amazon S3 object with metadata attached
Build requests to download an object from the bucket, process data, and upload the object back to the bucket
Configure a bucket to host the website and sync the source files using the AWS CLI
Add IAM bucket policies to access the S3 website.
Section 7: Getting Started with Databases
Describe the key components of DynamoDB
Explain how to connect to DynamoDB
Describe how to build a request object
Explain how to read a response object
List the most common troubleshooting exceptions
Section 8: Processing Your Database Operations
Lab 3: Develop Solutions Using Amazon DynamoDB
Develop programs to interact with DynamoDB using AWS SDKs
Perform CRUD operations to access tables, indexes, and data
Describe developer best practices when accessing DynamoDB
Review caching options for DynamoDB to improve performance
Perform DynamoDB operations using SDK
Interact with Amazon DynamoDB programmatically using low-level, document, and high-level APIs in your programs
Retrieve items from a table using key attributes, filters, expressions, and paginations
Load a table by reading JSON objects from a file
Search items from a table based on key attributes, filters, expressions, and paginations
Update items by adding new attributes and changing data conditionally
Access DynamoDB data using PartiQL and object-persistence models where applicable
Section 9: Processing Your Application Logic
Lab 4: Develop Solutions Using AWS Lambda Functions
Develop a Lambda function using SDKs
Configure triggers and permissions for Lambda functions
Test, deploy, and monitor Lambda functions
Create AWS Lambda functions and interact programmatically using AWS SDKs and AWS CLI
Configure AWS Lambda functions to use the environment variables and to integrate with other services
Generate Amazon S3 pre-signed URLs using AWS SDKs and verify the access to bucket objects
Deploy the AWS Lambda functions with .zip file archives through your IDE and test as needed
Invoke AWS Lambda functions using the AWS Console and AWS CLI
Section 10: Managing the APIs
Lab 5: Develop Solutions Using Amazon API Gateway
Describe the key components of API Gateway
Develop API Gateway resources to integrate with AWS services
Configure API request and response calls for your application endpoints
Test API resources and deploy your application API endpoint
Demonstrate creating API Gateway resources to interact with your application APIs
Create RESTful API Gateway resources and configure CORS for your application
Integrate API methods with AWS Lambda functions to process application data
Configure mapping templates to transform the pass-through data during method integration
Create a request model for API methods to ensure that the pass-through data format complies with application rules
Deploy the API Gateway to a stage and validate the results using the API endpoint
Section 11: Building a Modern Application
Describe the challenges with traditional architectures
Describe the microservice architecture and benefits
Explain various approaches for designing microservice applications
Explain steps involved in decoupling monolithic applications
Demonstrate the orchestration of Lambda Functions using AWS Step Functions
Section 12: Granting Access to Your Application Users
Lab 6: Capstone – Complete the Application Build
Analyze the evolution of security protocols
Explore the authentication process using Amazon Cognito
Manage user access and authorize serverless APIs
Observe best practices for implementing Amazon Cognito
Demonstrate the integration of Amazon Cognito and review JWT tokens
Create a Userpool and an Application Client for your web application using
Add new users and confirm their ability to sign-in using the Amazon Cognito CLI
Configure API Gateway methods to use Amazon Cognito as an authorizer
Verify JWT authentication tokens are generated during API Gateway calls
Develop API Gateway resources rapidly using a Swagger importing strategy
Set up your web application frontend to use Amazon Cognito and API Gateway configurations and verify the entire application functionality
Section 13: Deploying Your Application
Identify risks associated with traditional software development practices
Understand DevOps methodology
Configure an AWS SAM template to deploy a serverless application
Describe various application deployment strategies
Demonstrate deploying a serverless application using AWS SAM
Section 14: Observing Your Application
Lab 7: Observe the Application Using AWS X-Ray
Differentiate between monitoring and observability
Evaluate why observability is necessary in modern development and key components
Understand CloudWatch's part in configuring the observability
Demonstrate using CloudWatch Application Insights to monitor applications
Demonstrate using X-Ray to debug your applications
Instrument your application code to use AWS X-Ray capabilities
Enable your application deployment package to generate logs
Understand the key components of an AWS SAM template and deploy your application
Create AWS X-Ray service maps to observe end-to-end processing behavior of your application
Analyze and debug application issues using AWS X-Ray traces and annotations

