50 shades of .NET on AWS

How to host our .NET applications on AWS

  • Always prefer fully managed services to self-managed services when available and applicable
  • For container orchestration, use Amazon Elastic Container Services (ECS) rather than Amazon Elastic Kubernetes (EKS) as it is more opinionated and straightforward to use
  • For container execution, when it matches our hardware requirements, use AWS Fargate, their fully managed serverless compute engine for containers to avoid the burden of operating our own container hosts
  1. Hosting our existing .NET Framework applications with low to no modifications
  2. Hosting .NET Framework microservices that we’ve just extracted from our .NET Framework monoliths and containerized
  3. Hosting containerized .NET 6+ microservices that we’ve ported from .NET Framework
  4. Hosting brand new .NET 6+ microservices
.NET migration use case categorization

Rehost our existing .NET Framework applications

Hosting existing .NET Framework applications

Replatform our .NET Framework microservices into containerized microservices

Hosting .NET Framework microservices

Refactor our .NET microservices to .NET 6

Hosting ported to .NET 6+ microservices

Rebuild to brand new .NET 6+ serverless applications

Hosting brand new .NET 6+ serverless applications
    /// <summary>
/// This method is called for every Lambda invocation.
/// This method takes in an SQS event object and can be used
/// to respond to SQS messages.
/// </summary>
/// <param name="evnt"></param>
/// <param name="context"></param>
/// <returns></returns>
public async Task FunctionHandler(SQSEvent evnt,
ILambdaContext context)
{
foreach(var message in evnt.Records)
{
await ProcessMessageAsync(message, context);
}
}

Conclusion

  • We will host .NET Framework monolith applications on AWS Elastic Beanstalk.
  • We will host .NET Framework containerized microservices on AWS Fargate with Amazon ECS managed Windows containers.
  • We will host .NET 6+ containerized microservices on AWS Fargate with Amazon ECS managed Linux containers.
  • We will host new .NET 6+ microservices on AWS Lambda.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store