- Newest
- Most votes
- Most comments
For running containerized .NET console applications on Amazon EKS with Graviton 2 or 3 processors, there are a few considerations to keep in mind.
While using the .NET Lambda base image is possible, it's not the most optimal choice for your use case since you're not planning to use Lambda functions. The Lambda base images are specifically optimized for serverless environments and include components that may not be necessary for your EKS deployment.
Instead, it's recommended to use a more general-purpose .NET base image that's compatible with ARM64 architecture, which is what Graviton processors use. You can consider using the official Microsoft .NET SDK or runtime images that support ARM64.
To take advantage of Graviton instances, you should create multi-architecture container images or target the ARM architecture during the compile step. This will ensure your application is optimized for the Graviton processors.
When building your container image, you can use a multi-stage build process. Start with the .NET SDK image for compilation, and then copy the compiled application to a smaller runtime image for the final container. This approach helps reduce the overall size of your container image.
Regarding long-term support and security updates, your plan to regularly update to the newest versions is a good approach. This will ensure you have access to the latest security patches and performance improvements.
By using Graviton instances for your .NET applications, you can potentially benefit from significant cost savings (up to 45% in some cases) and performance improvements. Graviton 3, the latest generation, offers even better efficiency and performance compared to equivalent x86 instances.
Remember to test your application thoroughly on the ARM64 architecture to ensure compatibility and optimal performance. Also, make sure to use the appropriate EKS node groups that support Graviton instances when deploying your containers.
Sources
Deploy .NET Lambda functions with container images - AWS Lambda
Use Graviton instances and containers - AWS Prescriptive Guidance
Running .NET Applications in the AWS Cloud - Developing and Deploying .NET Applications on AWS
In my experience, I see everyone use Alpine as the base image for .NET applications
I would recommend Alpine base image for ARM64. What kind of application are you planning to run Console Apps or Web Apps
Relevant content
- asked 9 months ago
- asked a year ago
- AWS OFFICIALUpdated 8 months ago
- AWS OFFICIALUpdated 9 months ago
- AWS OFFICIALUpdated 4 years ago