How to enable HTTP2 in AWS ELB?

How to enable HTTP2 in AWS ELB?

To use HTTP/2 on Amazon Web Services (AWS) Elastic Load Balancer (ELB), you will need to create an Application Load Balancer (ALB) and enable HTTP/2 support for it. ALBs are designed to handle traffic at the application layer, and support a range of protocols, including HTTP/2.

To create an ALB and enable HTTP/2 support, you can use the AWS Management Console or the AWS CLI. Here are the steps to create an ALB and enable HTTP/2 using the AWS Management Console:

  1. Open the AWS Management Console and navigate to the Load Balancers page.

  2. Click the “Create Load Balancer” button, and choose “Application Load Balancer” as the type.

  3. Follow the on-screen instructions to configure the ALB settings, such as the name, listeners, and target groups.

  4. In the “Configure Security Settings” step, choose HTTPS as the listener protocol, and select an SSL/TLS certificate.

  5. In the “Configure Routing” step, specify the target groups and settings for routing traffic to your backend servers.

  6. In the “Review” step, review your settings and click “Create” to create the ALB.

Once the ALB is created, you can enable HTTP/2 support by modifying the listener settings. Here are the steps to enable HTTP/2 using the AWS Management Console:

  1. Open the AWS Management Console and navigate to the Load Balancers page.

  2. Select the ALB that you want to enable HTTP/2 for, and click the “Listeners” tab.

  3. Select the HTTPS listener, and click the “Edit” button.

  4. In the “Protocol” dropdown, choose HTTP/2 as the protocol.

  5. Click the “Save” button to save the changes.

Alternatively, you can use the AWS CLI to create and configure an ALB, including enabling HTTP/2 support. Here is an example command to create an ALB and enable HTTP/2 using the AWS CLI:

aws elbv2 create-load-balancer \
        --name my-alb \
        --subnets subnet-123456 subnet-abcdef \
        --security-groups sg-123456 sg-abcdef \
        --scheme internet-facing \
        --type application \
        --listeners Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80
aws elbv2 create-listener \
        --load-balancer-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-alb/abcdef012345 \
        --protocol HTTP/2 \
        --port 443 \
        --ssl-policy ELBSecurityPolicy-TLS-1-2-2017-01

In this example, the create-load-balancer command is used to create an ALB with HTTPS listeners on port 443. The create-listener command is then used to enable HTTP/2 support for the ALB. You can modify the commands as needed to suit your specific needs.

Once you have created and configured your ALB, it will be able to serve HTTP/2 requests to your backend servers. You can use the ALB’s DNS name or IP address as the endpoint for your clients to access your application.