Amazon Elastic Container Service (Amazon ECS) is a scalable, high performance container management service that supports Docker containers.
$0
per hour per GB
Google App Engine
Score 8.4 out of 10
N/A
Google App Engine is Google Cloud's platform-as-a-service offering. It features pay-per-use pricing and support for a broad array of programming languages.
There is no additional charge for Amazon ECS. You pay for AWS resources (e.g., Amazon EC2 instances or Amazon EBS volumes) you create to store and run your application. You only pay for what you use, as you use it; there are no minimum fees and no upfront commitments.
Amazon Elastic Container Service (Amazon ECS) is well suited where you need the ease of managing the clusters by letting AWS do the stuff for you. Obviously, whenever you want to run the docker based workloads, it is always better to go for either AWS ECS or AWS EKS. If you are interested in staying at AWS only and don't want to be cloud-agnostic, then go for AWS ECS instead of AWS EKS. AWS ECS is cheaper than AWS EKS and also more managed by AWS and better integrated with other AWS services. If you want to run those workloads as serverless, then AWS ECS Fargate is the best option to go with. If you already have a Kubernetes based setup that you want to migrate to AWS, then go for AWS EKS instead of AWS ECS.
App Engine is such a good resource for our team both internally and externally. You have complete control over your app, how it runs, when it runs, and more while Google handles the back-end, scaling, orchestration, and so on. If you are serving a tool, system, or web page, it's perfect. If you are serving something back-end, like an automation or ETL workflow, you should be a little considerate or careful with how you are structuring that job. For instance, the Standard environment in Google App Engine will present you with a resource limit for your server calls. If your operations are known to take longer than, say, 10 minutes or so, you may be better off moving to the Flexible environment (which may be a little more expensive but certainly a little more powerful and a little less limited) or even moving that workflow to something like Google Compute Engine or another managed service.
One of the biggest advantages is the flexibility to change underlying EC2 instances. As the traffic or demand increases, we can easily change EC2 instances without any issues.
Amazon ECS APIs are extremely robust and one can start and stop containers by firing one post request only. So, it is not mandatory to keep the demo solutions up for every time. Just at the time of demo fire the command - make the container up and running - do the demo - down the container with API. A simple portal can control every container which helps non-technical (sales, marketing) to do the demo without keeping the solutions up for the entire time frame.
There is a slight learning curve to getting used to code on Google App Engine.
Google Cloud Datastore is Google's NoSQL database in the cloud that your applications can use. NoSQL databases, by design, cannot give handle complex queries on the data. This means that sometimes you need to think carefully about your data structures - so that you can get the results you need in your code.
Setting up billing is a little annoying. It does not seem to save billing information to your account so you can re-use the same information across different Cloud projects. Each project requires you to re-enter all your billing information (if required)
App Engine is a solid choice for deployments to Google Cloud Platform that do not want to move entirely to a Kubernetes-based container architecture using a different Google product. For rapid prototyping of new applications and fairly straightforward web application deployments, we'll continue to leverage the capabilities that App Engine affords us.
Google App Engine is very intuitive. It has the common programming language most would use. Google is a dependable name and I have not had issues with their servers being down....ever. You can safely use their service and store your data on their servers without worrying about downtime or loss of data.
Support is relatively good, although the documentation sometimes is lacking, as well as outdated in our experience, especially when we initiated the process of using this service. But once we found how to assemble things, we haven't really required support from anyone at AWS, the service works without problems so we haven't had the need to contact support, which speaks well of how ECS is built.
Good amount of documentation available for Google App Engine and in general there is large developer community around Google App Engine and other products it interacts with. Lastly, Google support is great in general. No issues so far with them.
EKS is a Kubernetes technology and you need to learn Kubernetes and build a cluster before using it. So there's a learning curve here. ECS was easier to implement and simpler to have in our use case. It takes less time to run a workload and make it available.
We were on another much smaller cloud provider and decided to make the switch for several reasons - stability, breadth of services, and security. In reviewing options, GCP provided the best mixtures of meeting our needs while also balancing the overall cost of the service as compared to the other major players in Azure and AWS.
The autoscaling kept the performance of the services great.
We saved money by running the workloads on AWS ECS in Fargate mode by having different settings for different services to save on the hardware configuration side as well as having scheduled tasks.
Effective integration to other java based frameworks.
Time to market is very quick. Build, test, deploy and use.
The GAE Whitelist for java is an important resource to know what works and what does not. So use it. It would also be nice for Google to expand on items that are allowed on GAE platform.