This course helps developers, DevOps engineers, and solutions architects understand and work with containerized .NET applications and services using Amazon Elastic Container Service (Amazon ECS), AWS Fargate, and Amazon Elastic Container Registry (Amazon ECR). The lessons in this course will expose you to deploying and managing containerized applications running on Amazon ECS and Fargate.
   •   Course Level: Intermediate
   •   Duration: 3 Hours
Activities
This course includes interactive learning objects, assessments, and a hands-on lab exercise.
Course objectives
In this course, you will learn to:
   •   Identify and differentiate between containers running on Amazon ECS and Amazon ECS on Fargate.
   •   Articulate use cases for containers running in clusters on Amazon ECS or Amazon ECS on Fargate.
   •   Differentiate between clusters, tasks, task definitions, services, and other resources you will encounter when working with Amazon ECS and Fargate.
   •   Begin using Amazon ECS on Fargate, and Amazon ECR.
Intended audience
This course is intended for:
   •   Solutions architects who design architectures for .NET workloads on AWS
   •   Developers
   •   DevOps engineers
Prerequisites
We recommend that attendees of this course have:
   •   Experience developing .NET applications
Course outline
Lesson 1: Introduction to .NET on AWS
   •   Running .NET applications in the AWS Cloud
   •   .NET Core and .NET
Lesson 2: Introduction to Amazon ECS
   •   Overview of Amazon ECS
   •   Amazon ECS launch types
   •   Amazon ECS resources
   •   Example task definition
Lesson 3: Persisting Application Data
   •   Purpose of persisting application data
   •   Persistent storage options for Linux containers
   •   Persistent storage options for Windows containers
   •   Other persistent storage options
Lesson 4: Introduction to AWS Fargate
   •   Overview of Fargate
   •   Using Fargate
   •   Deploying .NET applications to Linux containers on Fargate
   •   Deploying .NET applications to Windows containers on Fargate
   •   Determining when to use Amazon ECS or Amazon ECS on Fargate
Lesson 5: Amazon ECR and Container Images
   •   Overview of Amazon ECR
   •   Public and private registries
   •   Creating a private repository
   •   Pull through cache repositories
   •   Pushing and pulling images
   •   Authorizing repository access
Lesson 6: Deploying .NET applications to Containers on AWS
   •   Deployment tools for containerized .NET applications
   •   Deploying .NET applications to containers on AWS with Visual Studio
   •   Installing the AWS Toolkit
   •   Working with Amazon ECS and Amazon ECR from the AWS Explorer view
   •   Deploying to Amazon ECS and Amazon ECR from Visual Studio
   •   Installing Publish to AWS
   •   Deploying from Publish to AWS
   •   Deploying from CI/CD pipelines
   •   Deleting deployments
Lesson 7: Deploying .NET Containers to AWS from the Command Line
   •   Command line deployment tools
   •   Downloading and installing AWS.Deploy.Tools
   •   Deploying from the command line
   •   Deploying containers from CI/CD pipelines
   •   Creating custom deployment projects
   •   Deleting container deployments
   •   Downloading and installing Amazon.ECS.Tools
   •   Using Amazon.ECS.Tools commands
   •   Using an options configuration file
   •   Deploying containers from CI/CD pipelines and deleting containers
   •   Deploying .NET containers to AWS from Azure DevOps
Lesson 8: Building an Amazon ECS Service with an ASP.NET Website
   •   Setting up an AWS environment
   •   Setting up a development environment
   •   Creating an Amazon DynamoDB table
   •   Creating a WeatherAPI project
   •   Testing WeatherAPI locally
   •   Deploying WeatherAPI to Amazon ECS
   •   Updating the Amazon ECS task role and testing
   •   Creating a WeatherSite project
   •   Testing WeatherSite locally
   •   Deploying WeatherSite to Amazon ECS
   •   Deploying an update
Lesson 9: Additional Resources
   •   Curated list of resources for .NET workloads