Ravindra BagaleCourses & study guides English

AWS CLI ELB Commands: Application Load Balancer बनवा

Terminal मधून Application Load Balancer बनवू: target group, health checks, listener, path rules, HTTPS. मग क्रमाने delete.

या chapter मध्ये तुम्ही काय शिकाल

  • Health checks सह target group
  • Targets register आणि check
  • ALB आणि listener बनवा
  • Path rules आणि HTTPS
  • योग्य क्रमाने delete

1. मोठं चित्र: एक दरवाजा, अनेक counters

हे का लागतं?

Bank ला एक entrance आणि token machine. ते प्रत्येक customer ला free counter कडे पाठवतं, बंद counter टाळतं. हाच load balancer.

हे काय आहे?

ALB commands aws elbv2 मध्ये: create-target-group, register-targets, create-load-balancer, create-listener, create-rule.

कसं करायचं (step by step)

बनवायचा क्रमcreate-target-group + health checkregister-targets (EC2)create-load-balancer (2 subnets)create-listener :80 → TGcreate-rule /api/*
ALB ला कमीत कमी दोन AZ मधले subnets लागतात.

2. Target group बनवा

हे का लागतं?

Load balancer ला कळायला हवं traffic कुठल्या servers ला आणि त्यांची test कशी.

हे काय आहे?

Target group = targets ची list (instances, IPs, Lambda) + port + health check path.

कसं करायचं (step by step)

  1. बनवा.
TG=$(aws elbv2 create-target-group --name cli-web-tg --protocol HTTP --port 80 --vpc-id $VPC --health-check-path /health --health-check-interval-seconds 15 --query "TargetGroups[0].TargetGroupArn" --output text)
echo $TG

अपेक्षित output:

arn:aws:elasticloadbalancing:ap-south-1:111122223333:targetgroup/cli-web-tg/abc123
  1. दोन instances register.
aws elbv2 register-targets --target-group-arn $TG --targets Id=$I1 Id=$I2

अपेक्षित output:

(no output means success)
  1. Health बघा.
aws elbv2 describe-target-health --target-group-arn $TG --query "TargetHealthDescriptions[].[Target.Id,TargetHealth.State]" --output text

अपेक्षित output:

i-0aaa...  healthy
i-0bbb...  healthy

3. ALB आणि listener बनवा

हे का लागतं?

Users ना प्रत्येक server चा IP नाही, एक stable DNS नाव हवं.

हे काय आहे?

ALB public subnets मध्ये security group सोबत. Listener एका port वर थांबतो आणि target group ला forward करतो.

कसं करायचं (step by step)

  1. ALB बनवा.
ALB=$(aws elbv2 create-load-balancer --name cli-alb --type application --subnets $PUB1 $PUB2 --security-groups $ALBSG --query "LoadBalancers[0].LoadBalancerArn" --output text)
aws elbv2 wait load-balancer-available --load-balancer-arns $ALB && echo ready

अपेक्षित output:

ready
  1. HTTP listener.
L80=$(aws elbv2 create-listener --load-balancer-arn $ALB --protocol HTTP --port 80 --default-actions Type=forward,TargetGroupArn=$TG --query "Listeners[0].ListenerArn" --output text)

अपेक्षित output:

(no output means success)
  1. DNS नाव घेऊन test.
DNS=$(aws elbv2 describe-load-balancers --load-balancer-arns $ALB --query "LoadBalancers[0].DNSName" --output text)
curl -s http://$DNS/health

अपेक्षित output:

OK

4. Path rules

हे का लागतं?

/api API servers ला, बाकी web servers ला.

हे काय आहे?

Rule = priority + condition (path/host) + action (forward, redirect, fixed response).

कसं करायचं (step by step)

  1. /api/* API group ला.
aws elbv2 create-rule --listener-arn $L80 --priority 10 --conditions Field=path-pattern,Values="/api/*" --actions Type=forward,TargetGroupArn=$APITG --query "Rules[0].Priority" --output text

अपेक्षित output:

10
  1. Rules list.
aws elbv2 describe-rules --listener-arn $L80 --query "Rules[].[Priority,Conditions[0].Values[0]]" --output text

अपेक्षित output:

10       /api/*
default  None

5. ACM certificate सह HTTPS

हे का लागतं?

Passwords आणि cookies plain text मध्ये जाऊ नयेत.

हे काय आहे?

443 वर HTTPS listener ACM certificate वापरतो. Port 80 listener 443 ला redirect करतो.

कसं करायचं (step by step)

  1. 443 listener.
aws elbv2 create-listener --load-balancer-arn $ALB --protocol HTTPS --port 443 --certificates CertificateArn=$CERT --ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06 --default-actions Type=forward,TargetGroupArn=$TG --query "Listeners[0].Port"

अपेक्षित output:

443
  1. 80 ते 443 redirect.
aws elbv2 modify-listener --listener-arn $L80 --default-actions "Type=redirect,RedirectConfig={Protocol=HTTPS,Port=443,StatusCode=HTTP_301}" --query "Listeners[0].DefaultActions[0].Type" --output text

अपेक्षित output:

redirect
  1. Verify.
curl -sI http://$DNS/ | head -2

अपेक्षित output:

HTTP/1.1 301 Moved Permanently
Location: https://...:443/

6. हीच action Python, Node.js, Java, Go, .NET आणि PHP मध्ये

हे का लागतं?

Scripts CLI मध्ये सुरू होतात. Apps तोच API SDK मधून call करतात. दोन्ही माहीत असले की test केलेली command थेट code मध्ये नेता येते.

हे काय आहे?

प्रत्येक CLI command म्हणजे एक API call. उदा. aws elbv2 create-load-balancer --name web --subnets s1 s2 म्हणजे CreateLoadBalancer API.

कसं करायचं (step by step)

हीच action (CreateLoadBalancer) code मधून. प्रत्येक SDK CLI सारखेच profile, region आणि credentials वाचतो.

StackCode
Python (boto3)boto3.client("elbv2").create_load_balancer(Name="web",Subnets=["s1","s2"])
Node.js (v3)await elb.send(new CreateLoadBalancerCommand({Name:"web",Subnets:["s1","s2"]}));
Java (v2)elb.createLoadBalancer(r -> r.name("web").subnets("s1","s2"));
Go (v2)c.CreateLoadBalancer(ctx, &elasticloadbalancingv2.CreateLoadBalancerInput{Name: aws.String("web"), Subnets: []string{"s1","s2"}})
.NETawait elb.CreateLoadBalancerAsync(new CreateLoadBalancerRequest{Name="web",Subnets=new(){"s1","s2"}});
PHP$elb->createLoadBalancer(["Name"=>"web","Subnets"=>["s1","s2"]]);

7. काहीही खर्च चालू राहू नये म्हणून cleanup

हे का लागतं?

चालू ठेवलेले lab resources पैसे खातात आणि security risk बनतात.

हे काय आहे?

उलट्या क्रमाने delete करा: आधी children, मग parents.

कसं करायचं (step by step)

  1. Load balancer delete (listeners, rules सोबत जातात).
aws elbv2 delete-load-balancer --load-balancer-arn $ALB
aws elbv2 wait load-balancers-deleted --load-balancer-arns $ALB

अपेक्षित output:

(no output means success)
  1. Target groups delete.
aws elbv2 delete-target-group --target-group-arn $TG
aws elbv2 delete-target-group --target-group-arn $APITG

अपेक्षित output:

(no output means success)
  1. Verify.
aws elbv2 describe-load-balancers --names cli-alb

अपेक्षित output:

An error occurred (LoadBalancerNotFound) ...

Ravindra Bagale's Tip

Targets unhealthy राहिले तर तीन गोष्टी बघा: instance SG ALB SG ला allow करतो का, app त्या port वर आहे का, /health 200 देतो का.

8. मुलाखत प्रश्न आणि उत्तरं

प्र. ALB vs NLB?

ALB layer 7, NLB layer 4.

प्र. Target group काय?

Port आणि health check सह targets चा set.

प्र. दोन subnets का?

High availability साठी कमीत कमी दोन AZ.

प्र. Target unhealthy का ते कसं बघाल?

describe-target-health मध्ये Reason.

प्र. HTTPS force कसं?

80 listener वर 443 redirect.

घरी करून बघा

  1. दोन EC2 web servers ALB मागे ठेवून refresh करा, दोन्ही host names दिसतील.
  2. एक server stop करा, target unhealthy होताना बघा.

थोडक्यात सांगायचं तर

  1. आधी target group.
  2. ALB ला दोन AZ subnets.
  3. Listener TG ला forward.
  4. Path/host नुसार rules.
  5. ALB delete, मग TGs.

सराव Tasks

या scenario बद्दल

Mumbai Dabba Express हा मुंबई मधला फूड डिलिव्हरी व्यवसाय आहे. Tukaram Gaikwad त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 10

सोपं Hosted zones दाखवा

का: Records बदलायला zone ID लागतो.

काय करायचं: Account मधले सगळे hosted zones दाखवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Target health तपासा

का: Targets unhealthy असल्यास site 502/503 errors दाखवते.

काय करायचं: arn:aws:elasticloadbalancing:ap-south-1:117031344167:targetgroup/mumbaidabba-tg/6d0ecf831eec9f09 मधल्या targets चं health दाखवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Target group मध्ये servers register करा

का: फक्त registered व healthy targets ना traffic मिळतं.

काय करायचं: Instance i-0ba1443130b111a2b ला target group arn:aws:elasticloadbalancing:ap-south-1:117031344167:targetgroup/mumbaidabba-tg/6d0ecf831eec9f09 मध्ये register करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Target group बनवा

का: Target group म्हणजे load balancer ज्यांना traffic पाठवतो त्या servers ची list.

काय करायचं: vpc-00313441cadeadbee मध्ये HTTP port 80 साठी mumbaidabba-tg target group बनवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Kubernetes LoadBalancer Service

का: LoadBalancer Service ला AWS load balancer मिळतो.

काय करायचं: app: web select करणारी LoadBalancer Service, port 80 → targetPort 8080.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.

मध्यम Hosted zone बनवा

का: Hosted zone तुमच्या domain चे सगळे DNS records ठेवतो.

काय करायचं: mumbaidabba.in साठी public hosted zone बनवा, caller reference mumbaidabba-2026-01.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Application Load Balancer बनवा

का: High availability साठी ALB ला वेगवेगळ्या AZs मधले किमान दोन subnets लागतात.

काय करायचं: mumbaidabba-alb नावाचा ALB subnets subnet-01b0313441abbb1 व subnet-0b0313441abbb2 मध्ये security group sg-01a03134416a4c3b2 सह बनवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड HTTP listener जोडा

का: Listener port वर traffic स्वीकारतो व target group कडे पाठवतो.

काय करायचं: Load balancer arn:aws:elasticloadbalancing:ap-south-1:117031344167:loadbalancer/app/mumbaidabba-alb/50dc6c495c0c9188 वर port 80 चा HTTP listener बनवा जो arn:aws:elasticloadbalancing:ap-south-1:117031344167:targetgroup/mumbaidabba-tg/6d0ecf831eec9f09 कडे forward करेल.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Network Load Balancer बनवा

का: NLB layer 4 (TCP/UDP) वर चालतो.

काय करायचं: mumbaidabba-nlb नावाचा network load balancer subnets subnet-01b0313441abbb1 व subnet-0b0313441abbb2 मध्ये बनवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड DNS record बनवा/update करा

का: UPSERT record बनवतो किंवा आधी असल्यास update करतो.

काय करायचं: change.json मधले record बदल hosted zone Z0123456789ABCDEFGHIJ ला लावा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

ALB target groups. Load balancer ला कळायला हवं कुठले servers जिवंत. Target group = targets + port + health check. create-target-group, मग register-targets. describe-target-health: healthy.
उजळणी card: ALB target groups · PNG download करा · Card page उघडा
ALB listeners, rules. अनेक servers साठी users ना एक DNS नाव. Listener port वर थांबून TG ला forward. create-rule path-pattern /api/*. HTTPS: 443 + ACM, 80 → 443 redirect.
उजळणी card: ALB listeners, rules · PNG download करा · Card page उघडा
ALB vs NLB. Layer 7, HTTP. / Layer 4, TCP/UDP.
तुलना: ALB vs NLB · PNG download करा · Card page उघडा
ALB targets unhealthy का?. Health check path fail किंवा timeout. describe-target-health मध्ये Reason. SG ALB SG ला allow? App port वर?
मुलाखत card: ALB targets unhealthy का? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.