What is our primary use case?
Our main use case for ECS-Optimized Windows is to host our containerized application, which is essential because earlier, when we had Kubernetes and different clusters, we had to use a different operating system to host Linux-based containers. We got a requirement to host .NET applications and some Windows-based applications in containerized form. During that period, we explicitly installed Windows Server as a worker node, but that was really difficult. When AWS introduced ECS-Optimized Windows, it was a lifesaver for us because it has all the containerized tools pre-installed and all the agents pre-installed. With the help of ECS-Optimized Windows, we deploy our containerized application on top of that.
We are using ECS service from Amazon and within that ECS service, we are using the optimized Windows AMI, which has a pre-configured agent, container runtimes, and several integrations with respect to containers. In our environment, we deploy this ECS cluster using Terraform in AWS and in that cluster, we have multiple EC2s, or nodes, where some nodes are Windows and some are Linux, and ECS-Optimized Windows is used there as well. It is an AMI provided by Amazon, and we host our Windows-based applications on top of those ECS-Optimized Windows hosts. We are using these ECS AMIs in our ECS cluster to host our Windows-based containerized applications.
What is most valuable?
The best features ECS-Optimized Windows offers include many benefits that I have experienced with switching from regular Windows to ECS containerized virtual machines. First of all, it has all the binaries and libraries we require for the container host pre-installed, meaning it comes with all the installed container runtime, agents installed, and all the integration already done in the AMI itself. It also allows for faster deployment because it is a package containing everything pre-installed, enabling us to deploy the node as fast as we can.
The scaling part is another feature I really appreciate because it is very easy to scale the ECS cluster. ECS-Optimized Windows is an optimized version of a Windows operating system with pre-installed libraries and binaries for containers, such as agents and runtimes. Whenever there is a huge application workload, we have predefined an auto-scaling policy for our ECS cluster, and within a couple of seconds or minutes, the node spins up, scaling up and out instantly.
Another aspect I appreciate is the integration capabilities, optimized for DevOps integration. We integrate with GitHub Actions, Datadog, monitor with CloudWatch, leverage our Elastic Container Registry (ECR), and perform auto-scaling. These are the main things I really appreciate. ECS-Optimized Windows has significantly reduced our operational effort, which is positive for our organization.
Initially, we would bring the operating system, install the container runtime, perform integration, install agents, and now, with ECS-Optimized Windows, everything is pre-installed, meaning it is a package with required libraries for containers. Nowadays, we no longer need to manually set up the server, patch, configure, modify files, or manually deal with recovery. With this AMI, everything is pre-built, and we can directly deploy and use it. ECS-Optimized Windows has saved a lot of our resources. Initially, we needed a couple of resources just to ensure Windows hosts were up with the required configuration for the ECS cluster, but with ECS-Optimized Windows, we no longer have to do that. Operational work is completely reduced, which is the main takeaway. Another aspect is that it is lightweight, making it easy to manage.
What needs improvement?
In terms of improvement, one issue is that Windows containers are heavier than Linux, which means Windows applications or containers require more resources and take longer to build up or start, and the images are heavy. However, in Windows terms, I really appreciate it. Additionally, there is some complexity regarding networking and image management with ECS Windows, but I find that manageable.
For how long have I used the solution?
I have been using ECS-Optimized Windows for about two years.
What do I think about the stability of the solution?
ECS-Optimized Windows is indeed stable and scalable.
What do I think about the scalability of the solution?
In our ECS cluster, we have already configured auto-scaling, which helps scale out and scale in the clusters. Whenever there is a huge workload, the cluster automatically scales out, and when there are idle nodes, it scales in according to the defined policy. The auto-scaling feature in ECS is very helpful for scaling, and this AMI is built in such a way that it can auto-scale.
How are customer service and support?
We have not had many interactions with customer support because there have not been many issues, but overall, customer support is good. We did receive help from them for an application where we had some deployment issues, and their assistance was really good.
Which solution did I use previously and why did I switch?
Before using ECS-Optimized Windows, we were using direct Windows Server; we explicitly had those Windows Servers for our ECS cluster and containers. In Windows, we do not have many options, so we used Microsoft-provided AMIs, but those did not have all the pre-built libraries and binaries, making ECS-Optimized Windows a good choice for us.
What other advice do I have?
When it comes to compatibility, ECS-Optimized Windows supports almost all Windows-based applications, so it is compatible with Windows-based workloads or applications. I think more input is not needed because we have plenty of documentation available and almost everything is part of the integration we need.
If anyone wants to deploy a Windows-based application, such as .NET Framework or similar, I would really recommend opting for ECS-Optimized Windows AMIs because they have everything pre-built and pre-installed. You will not need to spend a lot of time configuring your host, making ECS-Optimized Windows a worthwhile choice. I think we have covered everything. I would rate this solution a 9 out of 10.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)