How HTTP and HTTPS Traffic Flows Through an AWS ALB to EKS
How HTTP and HTTPS Traffic Flows Through an AWS ALB to EKS
When an application runs in Amazon EKS, users normally don’t connect directly to Kubernetes Pods. An AWS Application Load Balancer (ALB) sits in front of the application and receives incoming traffic.
But where exactly are HTTP and HTTPS used? And if the user connects over HTTPS, does that mean the traffic stays HTTPS all the way to the Pod?
Let’s follow one request from the browser to an application running in EKS.
Imagine an application running with multiple Pods:
![]() |
| The Basic Traffic Flow |
The ALB provides the entry point for traffic coming from outside the Kubernetes cluster.
Before looking deeper into this flow, let's understand HTTP and HTTPS.
What Is HTTP?
HTTP Hypertext Transfer Protocol is a protocol used by clients and servers to communicate.
For example: http://app.example.com
HTTP traffic is not encrypted. That means we generally don't want sensitive information such as passwords, authentication tokens, or customer information traveling over the public internet using plain HTTP.
HTTP commonly uses port 80.
What Is HTTPS?
HTTPS is HTTP protected by TLS encryption.
For example: https://app.example.com
HTTPS commonly uses port 443. When HTTPS is used, the communication between the client and the server is encrypted.
But HTTPS requires something else: a TLS certificate.
HTTPS at the AWS Load Balancer
Suppose a user opens: https://app.example.com
The request reaches the ALB:
For the ALB to accept HTTPS traffic, it needs an HTTPS listener and a TLS certificate.
In AWS, the certificate is commonly managed using AWS Certificate Manager (ACM).
The browser establishes the secure TLS connection with the ALB.
This is an important point: The HTTPS connection from the user's browser terminates at the ALB. This is commonly called TLS termination.
What Happens After TLS Terminates?
Once the ALB receives and decrypts the HTTPS request, it needs to send that request to the backend application. The backend connection is a separate connection.
For example:
![]() |
| This is a very common architecture. |
The traffic traveling across the public internet is encrypted using HTTPS, while the ALB communicates with the backend using HTTP.
Can ALB to the Backend Use HTTPS?
Yes. You can also configure the backend communication to use HTTPS:
Whether backend HTTPS is required depends on your application's architecture and security requirements.
The important thing to remember is:
- Frontend HTTPS and backend HTTPS are separate configurations.
- Having HTTPS configured on the ALB does not automatically mean the ALB communicates with the backend using HTTPS.
What Happens to HTTP Port 80?
An ALB can have multiple listeners.
A common configuration is:
What About the AWS ALB DNS Name?
- When AWS creates an ALB, it provides a DNS name similar to:
my-alb-123456.us-east-2.elb.amazonaws.com
- An important misconception is that the DNS name itself determines whether the connection uses HTTP or HTTPS.
It doesn't.
- These are different:
http://my-alb-123456.us-east-2.elb.amazonaws.comand:
https://my-alb-123456.us-east-2.elb.amazonaws.com
The protocol used depends on the ALB listeners and how the client connects.
For a real application, we normally use our own hostname: app.example.com
DNS directs that hostname toward the load balancer, and the ALB has a certificate matching the application's hostname.
Putting Everything Together
A common EKS traffic flow looks like this:
So when someone says:
"Our application uses HTTPS."
There is an important follow-up question:
Where does TLS terminate?
In many AWS ALB and EKS architectures, the answer is the Application Load Balancer:
The user's connection to the ALB is encrypted. The ALB terminates TLS using the certificate and then creates a separate connection to the backend. That backend connection can be either HTTP or HTTPS, depending on how the application and target group are configured.
Understanding these two separate connections makes HTTP, HTTPS, TLS certificates, and AWS load balancers much easier to reason about.







