Which combination of actions will meet these requirements?
(Choose two.)
Use AWS Lambda for the compute layers in the architecture.
Use Amazon EC2 instances for the compute layers in the architecture.
Use Amazon Simple Notification Service (Amazon SNS) as the messaging component between the compute layers.
Use Amazon Simple Queue Service (Amazon SQS) FIFO queues as the messaging component between the compute layers.
Use containers that are based on Amazon Elastic Kubernetes Service (Amazon EKS) for the compute layers in the architecture.
Explanations:
AWS Lambda is a serverless compute service that automatically manages the infrastructure and scales based on demand. It allows for the processing of messages with exactly-once delivery when combined with Amazon SQS FIFO queues, aligning with the requirement for minimal infrastructure management.
Amazon EC2 instances require more infrastructure management compared to serverless options. While they can be configured for exactly-once delivery, they do not inherently provide the same ease of management and scalability as serverless solutions like AWS Lambda.
Amazon SNS is a pub/sub messaging service that provides at-least-once delivery guarantees. It does not guarantee exactly-once delivery, which is a requirement in this scenario. Therefore, it is not suitable for ensuring exactly-once messaging between application layers.
Amazon SQS FIFO queues provide exactly-once delivery of messages and are designed to maintain the order of messages. This makes them suitable for use as the messaging component between compute layers, fulfilling the requirement while requiring minimal management.
While Amazon EKS can be used to deploy containerized applications, it involves more infrastructure management compared to serverless options. EKS does not inherently guarantee exactly-once delivery for messaging unless combined with appropriate messaging services like SQS FIFO queues.