Bird
Raised Fist0
AWScloud~5 mins

Target groups concept in AWS - Commands & Configuration

Choose your learning style10 modes available
Introduction
When you run multiple servers to handle web traffic, you need a way to send users to the right server. Target groups help by grouping servers so a load balancer can send traffic to them evenly and keep your app working smoothly.
When you want to spread user requests across several servers to avoid overload on one.
When you need to check if servers are healthy before sending them traffic.
When you want to organize servers by the type of traffic they handle, like web or API requests.
When you want to add or remove servers without stopping your app.
When you want to use a load balancer to manage traffic for your app.
Config File - target-group.json
target-group.json
{
  "Name": "my-target-group",
  "Protocol": "HTTP",
  "Port": 80,
  "VpcId": "vpc-0abc123def456ghij",
  "HealthCheckProtocol": "HTTP",
  "HealthCheckPort": "traffic-port",
  "HealthCheckPath": "/health",
  "Matcher": {
    "HttpCode": "200"
  },
  "TargetType": "instance"
}

This JSON file defines a target group named my-target-group. It listens on HTTP port 80 inside a specific VPC. The health check uses HTTP requests to the /health path to make sure servers are working. Only servers responding with HTTP 200 are considered healthy. The target type is set to instance, meaning it sends traffic to EC2 instances.

Commands
This command creates a target group named 'my-target-group' that listens on HTTP port 80 in the specified VPC. It sets up health checks to verify server health by requesting the /health path and expecting a 200 response.
Terminal
aws elbv2 create-target-group --name my-target-group --protocol HTTP --port 80 --vpc-id vpc-0abc123def456ghij --health-check-protocol HTTP --health-check-port traffic-port --health-check-path /health --matcher HttpCode=200 --target-type instance
Expected OutputExpected
{ "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-target-group/abcdef1234567890", "TargetGroupName": "my-target-group", "Protocol": "HTTP", "Port": 80, "VpcId": "vpc-0abc123def456ghij", "HealthCheckProtocol": "HTTP", "HealthCheckPort": "traffic-port", "HealthCheckPath": "/health", "Matcher": { "HttpCode": "200" }, "TargetType": "instance" } ] }
→
--name - Sets the name of the target group.
→
--vpc-id - Specifies the VPC where the target group exists.
→
--health-check-path - Defines the URL path used for health checks.
This command checks the details of the target group named 'my-target-group' to confirm it was created correctly.
Terminal
aws elbv2 describe-target-groups --names my-target-group
Expected OutputExpected
{ "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-target-group/abcdef1234567890", "TargetGroupName": "my-target-group", "Protocol": "HTTP", "Port": 80, "VpcId": "vpc-0abc123def456ghij", "HealthCheckProtocol": "HTTP", "HealthCheckPort": "traffic-port", "HealthCheckPath": "/health", "Matcher": { "HttpCode": "200" }, "TargetType": "instance" } ] }
→
--names - Specifies the target group name to describe.
This command adds two EC2 instances to the target group so they can receive traffic from the load balancer.
Terminal
aws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-target-group/abcdef1234567890 --targets Id=i-0123456789abcdef0 Id=i-0fedcba9876543210
Expected OutputExpected
{}
→
--target-group-arn - Specifies the target group to add instances to.
→
--targets - Lists the instance IDs to register.
This command checks the health status of the instances registered in the target group to ensure they are ready to receive traffic.
Terminal
aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-target-group/abcdef1234567890
Expected OutputExpected
{ "TargetHealthDescriptions": [ { "Target": { "Id": "i-0123456789abcdef0" }, "TargetHealth": { "State": "healthy" } }, { "Target": { "Id": "i-0fedcba9876543210" }, "TargetHealth": { "State": "healthy" } } ] }
→
--target-group-arn - Specifies the target group to check health for.
Key Concept

If you remember nothing else from this pattern, remember: target groups organize servers so load balancers can send traffic only to healthy servers.

Common Mistakes
Not specifying the correct VPC ID when creating the target group.
The target group won't work because it must belong to the same VPC as the instances.
Always use the VPC ID where your instances run when creating the target group.
Forgetting to register instances to the target group after creating it.
No servers will receive traffic because the target group is empty.
Use the register-targets command to add your instances to the target group.
Ignoring health check settings or using incorrect health check paths.
The load balancer may mark healthy instances as unhealthy and stop sending traffic to them.
Set the health check path to a URL that returns HTTP 200 when the server is healthy.
Summary
Create a target group to group your servers and define how to check their health.
Register your servers (instances) to the target group so they can receive traffic.
Check the health of your servers in the target group to ensure smooth traffic flow.

Practice

(1/5)
1. What is the main purpose of a target group in AWS Elastic Load Balancing?
easy
A. To create virtual private clouds
B. To store user data securely
C. To manage DNS records
D. To group servers for load balancing and health checks

Solution

  1. Step 1: Understand target group role

    A target group groups servers (targets) to distribute incoming traffic.
  2. Step 2: Identify key functions

    It also performs health checks to ensure traffic goes only to healthy servers.
  3. Final Answer:

    To group servers for load balancing and health checks -> Option D
  4. Quick Check:

    Target groups = server grouping + health checks [OK]
Hint: Target groups organize servers for load balancing [OK]
Common Mistakes:
  • Confusing target groups with security groups
  • Thinking target groups store data
  • Mixing target groups with VPC functions
2. Which of the following is the correct way to specify a target group protocol in AWS CLI?
easy
A. aws elbv2 create-target-group --protocol HTTP
B. aws elbv2 create-target-group --protocol FTP
C. aws elbv2 create-target-group --protocol SMTP
D. aws elbv2 create-target-group --protocol SSH

Solution

  1. Step 1: Recall supported protocols for target groups

    AWS target groups support HTTP, HTTPS, TCP, TLS, UDP, and TCP_UDP protocols.
  2. Step 2: Identify valid protocol in options

    HTTP is a valid protocol; FTP, SMTP, and SSH are not supported for target groups.
  3. Final Answer:

    aws elbv2 create-target-group --protocol HTTP -> Option A
  4. Quick Check:

    HTTP is valid protocol for target groups [OK]
Hint: Use HTTP or HTTPS for target group protocol [OK]
Common Mistakes:
  • Using unsupported protocols like FTP or SSH
  • Confusing target group protocol with security group rules
  • Misspelling protocol names
3. Given a target group with 3 registered targets, two healthy and one unhealthy, how will the load balancer route traffic?
medium
A. It sends traffic only to the two healthy targets
B. It sends traffic equally to all three targets
C. It sends traffic only to the unhealthy target
D. It stops sending traffic until all targets are healthy

Solution

  1. Step 1: Understand health check impact

    Load balancers route traffic only to targets marked healthy by health checks.
  2. Step 2: Apply to given targets

    With two healthy and one unhealthy, traffic goes only to the two healthy targets.
  3. Final Answer:

    It sends traffic only to the two healthy targets -> Option A
  4. Quick Check:

    Traffic routes only to healthy targets [OK]
Hint: Load balancer skips unhealthy targets [OK]
Common Mistakes:
  • Assuming traffic goes to all targets regardless of health
  • Thinking traffic stops if any target is unhealthy
  • Confusing unhealthy targets with backup targets
4. You created a target group but your load balancer shows no healthy targets. What is the most likely issue?
medium
A. Load balancer is in a different region
B. Security group blocks health check traffic
C. Targets are not registered with the target group
D. Target group protocol is set to FTP

Solution

  1. Step 1: Check common causes for no healthy targets

    Targets not registered or security blocking health checks cause no healthy targets.
  2. Step 2: Analyze options

    Security group blocking health check traffic prevents health checks from succeeding, causing targets to be unhealthy.
  3. Final Answer:

    Security group blocks health check traffic -> Option B
  4. Quick Check:

    Blocked health checks cause no healthy targets [OK]
Hint: Check security groups allow health check ports [OK]
Common Mistakes:
  • Ignoring security group rules
  • Assuming region mismatch causes health check failure
  • Using unsupported protocols like FTP
5. You want to route HTTP traffic to two different target groups based on URL path: /images/* to one group and /api/* to another. Which AWS service feature should you use?
hard
A. Elastic IP addresses assigned to each target group
B. Network Load Balancer with static IP routing
C. Application Load Balancer with path-based routing rules
D. Classic Load Balancer with SSL termination

Solution

  1. Step 1: Identify routing needs

    Routing based on URL path requires path-based routing rules.
  2. Step 2: Match AWS service feature

    Application Load Balancer supports path-based routing to different target groups.
  3. Step 3: Exclude incorrect options

    Network Load Balancer does not support path-based routing; Classic Load Balancer lacks this feature; Elastic IPs do not route traffic by path.
  4. Final Answer:

    Application Load Balancer with path-based routing rules -> Option C
  5. Quick Check:

    Path-based routing = Application Load Balancer [OK]
Hint: Use ALB for URL path routing to target groups [OK]
Common Mistakes:
  • Using Network Load Balancer for path routing
  • Confusing Classic Load Balancer features
  • Thinking Elastic IPs control routing rules
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard