Assuming that resources are deployed in multiple Availability Zones in a single Region, which solution will meet these requirements?
Create Amazon EC2 instances with an Elastic IP address for each instance. Create a Network Load Balancer (NLB) and expose the static TCP port. Register EC2 instances with the NLB. Create a new name server record set named my.service.com, and assign the Elastic IP addresses of the EC2 instances to the record set. Provide the Elastic IP addresses of the EC2 instances to the other companies to add to their allow lists.
Create an Amazon ECS cluster and a service definition for the application. Create and assign public IP addresses for the ECS cluster. Create a Network Load Balancer (NLB) and expose the TCP port. Create a target group and assign the ECS cluster name to the NLB. Create a new A record set named my.service.com, and assign the public IP addresses of the ECS cluster to the record set. Provide the public IP addresses of the ECS cluster to the other companies to add to their allow lists.
Create Amazon EC2 instances for the service. Create one Elastic IP address for each Availability Zone. Create a Network Load Balancer (NLB) and expose the assigned TCP port. Assign the Elastic IP addresses to the NLB for each Availability Zone. Create a target group and register the EC2 instances with the NLB. Create a new A (alias) record set named my.service.com, and assign the NLB DNS name to the record set.
Create an Amazon ECS cluster and a service definition for the application. Create and assign public IP address for each host in the cluster. Create an Application Load Balancer (ALB) and expose the static TCP port. Create a target group and assign the ECS service definition name to the ALB. Create a new CNAME record set and associate the public IP addresses to the record set. Provide the Elastic IP addresses of the Amazon EC2 instances to the other companies to add to their allow lists.
Explanations:
While this option ensures redundancy and availability by using multiple EC2 instances behind a Network Load Balancer (NLB), using Elastic IPs directly for each EC2 instance does not align with best practices for load balancing, as it defeats the purpose of using a NLB. Furthermore, the DNS record for my.service.com would need to be updated if the Elastic IPs were to change, which does not guarantee fixed addresses for allow listing.
This option suggests using Amazon ECS and assigning public IPs to the ECS cluster. However, the requirement for fixed addresses for allow listing cannot be met if the IPs are dynamically assigned by ECS. Additionally, an NLB is more suitable for TCP services compared to the Application Load Balancer (ALB) suggested in this option.
This option meets all requirements. It creates EC2 instances with Elastic IP addresses assigned to an NLB for redundancy across Availability Zones. The NLB provides a single DNS name for my.service.com, and the Elastic IPs provide fixed addresses that can be easily added to allow lists.
This option suggests using ECS and public IP addresses for each host, which can change and does not guarantee fixed addresses. An Application Load Balancer (ALB) is not ideal for TCP services. The CNAME record for my.service.com also complicates the fixed address requirement for allow listing.