My containerized application requires me to define and manage capacity(CPU, Memory, Instance type) explicitly for optimizing costs while using AWS infrastructure.
Which of the following technologies will I use while defining my Elastic Container Services compute instances.
Click on the arrows to vote for the correct answer
A. B. C. D.Correct Answer: A.
Elastic Container Services supports two launch types for deploying containers mainly the EC2 type & the Fargate type.
Fargate provides infrastructure automation for provisioning compute instances as required.
Since our scenario requires explicit control of CPU & Memory resources for launching the container instances, EC2 will be the most appropriate type.
Option A is CORRECT since the user will have complete control over the VM configuration & the OS.
Option B is incorrect since Fargate automates infrastructure provisioning where a user may have limited control.
Option C is incorrect since Lambda is a serverless technology & is not used within a service containerization context.
Option D is incorrect since serverless technologies although may be lucrative from a cost standpoint will not have complete user control over configuring the compute instances.
Diagram:
Reference:
https://aws.amazon.com/ecs/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc&ecs-blogs.sort-by=item.additionalFields.createdDate&ecs-blogs.sort-order=descIf you want to define and manage the capacity explicitly for your containerized application, you will need to use Elastic Container Service (ECS) on AWS. ECS is a container orchestration service that allows you to run Docker containers on AWS infrastructure.
ECS offers two compute options for running your containers: EC2 and Fargate. EC2 is a traditional compute option that provides you with the ability to specify and manage the capacity for your instances. Fargate, on the other hand, is a serverless compute option that allows you to run containers without having to manage the underlying infrastructure.
If you choose to use EC2, you will have to provision and manage the instances that your containers run on. This means that you will need to choose the appropriate instance type, specify the amount of CPU and memory required for your containers, and manage the scaling of your instances.
If you choose to use Fargate, you will not have to manage the underlying infrastructure. Fargate automatically provisions and scales the compute resources required for your containers based on the CPU and memory requirements that you specify.
In both cases, you will be able to optimize costs by choosing the appropriate instance types, specifying the amount of CPU and memory required for your containers, and scaling your instances based on demand. However, Fargate may be more cost-effective if you do not want to manage the underlying infrastructure yourself.
Lambda is not a suitable option for running containerized applications since it is a serverless compute option that only supports running code in response to events. Therefore, the correct answer is either A or B, depending on your preference for managing the underlying infrastructure.