Step 4: Create your load balancer
Published: 2022-04-17 21:38:34

To create your first load balancer, complete the following steps.

## To create a load balancer

- Use the [`create-load-balancer`](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-load-balancer.html) command to create a load balancer. You must specify two subnets that are not from the same Availability Zone.

```bash
$ aws elbv2 create-load-balancer --name my-load-balancer --subnets subnet-b46032ec subnet-a46032fc --security-groups sg-e1fb8c9a
```

The output includes the Amazon Resource Name (ARN) of the load balancer, with the following format:
```bash
arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-load-balancer/1234567890123456
```

- Use the [`create-target-group`](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-target-group.html) command to create a target group, specifying the same VPC that you used for your EC2 instances.

You can create PIv4 and IPv6 target groups to associate with dualstack load balancers. The target group's IP address type determines the IP version that the load balancer will use to both communicate with, and check the health of, your backend targets.

```bash
$ aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 --vpc-id vpc-2f09a348 --ip-address-type [ipv4 or ipv6]
```

The output includes the ARN of the target group, with this format:

```bash
arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/1234567890123456
```

- Use the [`register-targets`](https://docs.aws.amazon.com/cli/latest/reference/elbv2/register-targets.html) command to register your instances with your target group:
```bash
$ aws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/1234567890123456 --targets Id=i-0146854b7443af453 Id=i-1234567890abcdef0
```

- Use the [`create-listener`](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) command to create a listener for your load balancer with a default rule that forwards request to your target group:

```bash
$ aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-load-balancer/1234567890123456 --protocol HTTP --port 80 --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/1234567890123456
```

- (Optional) You can verify the health of the registered targets for your target group using this [`describe-target-health`](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-target-health.html) command:

```bash
aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/1234567890123456
```
---

## Delete your load balancer

When you no longer need your load balancer and target group, you can delete them as follows:

```bash
$ aws elbv2 delete-load-balancer --load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-load-balancer/1234567890123456
$ aws elbv2 delete-target-group --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/1234567890123456
```