What should a solutions architect recommend to meet this requirement?
Deploy a Network Load Balancer (NLB). Configure the NLB to be publicly accessible over the TCP port that the application requires.
Deploy an Application Load Balancer (ALB). Configure the ALB to be publicly accessible over the TCP port that the application requires.
Deploy an Amazon CloudFront distribution that listens on the TCP port that the application requires. Use an Application Load Balancer as the origin.
Deploy an Amazon API Gateway API that is configured with the TCP port that the application requires. Configure AWS Lambda functions with provisioned concurrency to process the requests.
Explanations:
A Network Load Balancer (NLB) is designed for handling millions of requests per second while maintaining low latency. It operates at the TCP level and can be configured to be publicly accessible on a nonstandard TCP port, making it suitable for migrating the TCP-based application with the required performance.
An Application Load Balancer (ALB) is designed primarily for HTTP/HTTPS traffic and operates at the application layer (Layer 7). It cannot be used for nonstandard TCP ports in the same way as an NLB, making it unsuitable for this use case where TCP-based communication is required.
Amazon CloudFront is primarily a content delivery network (CDN) that is optimized for web content and HTTP/HTTPS protocols. It does not support arbitrary TCP ports directly for non-HTTP traffic, so using it as a distribution for a TCP-based application does not meet the performance requirement.
Amazon API Gateway is designed for RESTful APIs and HTTP-based applications. It does not support TCP-based communication directly and is not suitable for high-performance TCP applications. Even with provisioned concurrency for Lambda, it cannot achieve the same level of performance required for the migration.