46_1 ‐ Create Load balancer and setup connectivity with Application server in private network - SanjeevOCI/Ocidocs GitHub Wiki

Objective

Create an OCI Load Balancer that fronts application servers in a private subnet, following best practices for subnet design, routing, gateways, NSGs, and health checks. Validate end-to-end connectivity from the internet (or private network) to the app servers.

This lab assumes you already have a VCN and spoke VCN. If not, create them first. The steps below focus on the Web Layer using Load Balancer + private app servers.


Reference Architecture

3_Tier_Architecture


Step 1 — Configure the Web Layer in the Spoke VCN

Since the spoke contains the Application Server, we front it with a Load Balancer in a dedicated web subnet.

1a) Create a Web Subnet

Define a subnet for the Load Balancer:

46_Load balancer_setup connectivity_App_server_private_nw_1
46_Load balancer_setup connectivity_App_server_private_nw_2
46_Load balancer_setup connectivity_App_server_private_nw_3
46_Load balancer_setup connectivity_App_server_private_nw_4
46_Load balancer_setup connectivity_App_server_private_nw_5


1b) Create a Route Table & Security List for the Web Subnet

Best practice: each subnet should have its own route table and security list (or better, NSG).

46_Load balancer_setup connectivity_App_server_private_nw_6
46_Load balancer_setup connectivity_App_server_private_nw_7
46_Load balancer_setup connectivity_App_server_private_nw_8
46_Load balancer_setup connectivity_App_server_private_nw_9
46_Load balancer_setup connectivity_App_server_private_nw_10
46_Load balancer_setup connectivity_App_server_private_nw_11
46_Load balancer_setup connectivity_App_server_private_nw_12


1c) Update Subnet Associations

Associate the new route table and security list with the web-subnet, and remove the default ones.

46_Load balancer_setup connectivity_App_server_private_nw_13
46_Load balancer_setup connectivity_App_server_private_nw_14
46_Load balancer_setup connectivity_App_server_private_nw_15
46_Load balancer_setup connectivity_App_server_private_nw_16
46_Load balancer_setup connectivity_App_server_private_nw_17
46_Load balancer_setup connectivity_App_server_private_nw_18
46_Load balancer_setup connectivity_App_server_private_nw_19
46_Load balancer_setup connectivity_App_server_private_nw_20

✅ Now we have a dedicated route table and security list for the web-subnet.


Step 2 — Create the Load Balancer

Navigate: Menu → Networking → Load Balancer → Create Load Balancer for web traffic.

46_Load balancer_setup connectivity_App_server_private_nw_21
46_Load balancer_setup connectivity_App_server_private_nw_22
46_Load balancer_setup connectivity_App_server_private_nw_23
46_Load balancer_setup connectivity_App_server_private_nw_24
46_Load balancer_setup connectivity_App_server_private_nw_25
46_Load balancer_setup connectivity_App_server_private_nw_26
46_Load balancer_setup connectivity_App_server_private_nw_27
46_Load balancer_setup connectivity_App_server_private_nw_28
46_Load balancer_setup connectivity_App_server_private_nw_29
46_Load balancer_setup connectivity_App_server_private_nw_30
46_Load balancer_setup connectivity_App_server_private_nw_31
46_Load balancer_setup connectivity_App_server_private_nw_32
46_Load balancer_setup connectivity_App_server_private_nw_33
46_Load balancer_setup connectivity_App_server_private_nw_34
46_Load balancer_setup connectivity_App_server_private_nw_35
46_Load balancer_setup connectivity_App_server_private_nw_36
46_Load balancer_setup connectivity_App_server_private_nw_37
46_Load balancer_setup connectivity_App_server_private_nw_38

✅ Load Balancer is created.


Step 3 — How Load Balancer Works

  1. The Load Balancer has a public IP.
  2. The Listener is configured (HTTP/80).
  3. Requests → Listener → Backend Set → Backend Servers (port 80).

46_Load balancer_setup connectivity_App_server_private_nw_39
46_Load balancer_setup connectivity_App_server_private_nw_40
46_Load balancer_setup connectivity_App_server_private_nw_38


Step 4 — Security Rules for Connectivity

3a) Allow inbound Port 80 in Web Subnet

So LB can receive HTTP traffic:

46_Load balancer_setup connectivity_App_server_private_nw_41

3b) Allow egress to App Subnet

Get CIDR of app subnet (e.g., 10.0.1.0/24) and allow egress port 80:

46_Load balancer_setup connectivity_App_server_private_nw_42
46_Load balancer_setup connectivity_App_server_private_nw_43
46_Load balancer_setup connectivity_App_server_private_nw_44
46_Load balancer_setup connectivity_App_server_private_nw_45
46_Load balancer_setup connectivity_App_server_private_nw_46
46_Load balancer_setup connectivity_App_server_private_nw_47


Final Outcome

  • ✅ Web-subnet created with its own route table & security list
  • ✅ Public Load Balancer deployed in the web-subnet
  • ✅ Listener + Backend Set configured on port 80
  • ✅ Security list rules updated for HTTP ingress and egress to private app subnet
  • ✅ Traffic from internet → Load Balancer → App servers is validated