ELB: ALB/NLB & Route 53 Basics

AWS Networking (ANS-C01 track) AWS console — free tier (GUI + CLI)

مقصدObjectiveObjective

ٹارگٹ گروپ کے ساتھ Application Load Balancer بنانا، NLB کا فرق سمجھنا، اور Route 53 DNS ریکارڈ کو ALB کی طرف لگانا۔Target group ke saath Application Load Balancer banana, NLB ka farq samajhna, aur Route 53 DNS record ko ALB ki taraf lagana.Build an Application Load Balancer with a target group, understand NLB differences, and point a Route 53 DNS record at the ALB.

آسان مثالSimple AnalogySimple Analogy

ALB وہ سمارٹ ٹریفک پولیس ہے جو بورڈز (HTTP path اور hostname) پڑھتا ہے اور ہر گاڑی کو صحیح لین بھیجتا ہے۔ NLB سپر فاسٹ پولیس ہے جو بورڈز کو نظر انداز کرتا ہے اور صرف گاڑی کی قسم (TCP/UDP) دیکھ کر فوراً آگے بھیج دیتا ہے۔ Route 53 ایڈریس بک ہے — DNS — جو لوگوں کو بتاتا ہے کہ پولیس کہاں کھڑی ہے۔ALB woh smart traffic police hai jo boards (HTTP path aur hostname) parhta hai aur har gari ko sahi lane bhejta hai. NLB super fast police hai jo boards ko nazar andaz karta hai aur sirf gari ki type (TCP/UDP) dekh kar foran aagay bhej deta hai. Route 53 address book hai — DNS — jo logon ko batata hai ke police kahan khari hai.An ALB is a smart traffic policeman who reads signs (HTTP paths and hostnames) and sends each car to the right lane. An NLB is a super-fast policeman who ignores signs and only looks at car type (TCP/UDP) to forward it instantly. Route 53 is the address book — the DNS — that tells people where the policeman stands.

سیٹ اپLab SetupLab Setup

LabPublicA اور LabPublicB میں دو EC2 انسٹنسز (فری ٹیئر t2/t3.micro) چاہئیں جن پر ویب سرور چل رہا ہو، اور ایک registered ڈومین (یا ٹیسٹنگ کے لیے ALB کا DNS نام استعمال کریں)۔LabPublicA aur LabPublicB mein do EC2 instances (free tier t2/t3.micro) chahiye jin par web server chal raha ho, aur ek registered domain (ya testing ke liye ALB ka DNS name istemaal karein).You need two EC2 instances (free tier t2/t3.micro) in LabPublicA and LabPublicB running a web server, and a registered domain (or use the ALB's DNS name for testing).

اقداماتStepsSteps

Step 1

ٹارگٹ گروپ بنائیں جو بیک اینڈ سرورز کی فہرست رکھتا ہے۔ ہیلتھ چیک (path /) فیصلہ کرتا ہے کہ کون سے انسٹنسز صحیح ہیں اور ٹریفک لے سکتے ہیں۔Target group banayein jo backend servers ki fehrist rakhta hai. Health check (path /) faisla karta hai ke kaun se instances sahi hain aur traffic le sakte hain.Create a target group that lists the backends. The health check (path /) decides which instances are healthy and can receive traffic.

aws elbv2 create-target-group --name LabTG --protocol HTTP --port 80 --vpc-id vpc-0123456789abcdef0 --target-type instance --health-check-protocol HTTP --health-check-path / --tag-specifications 'ResourceType=target-group,Tags=[{Key=Name,Value=LabTG}]'

🖱️ EC2 > Target Groups > Create target group > Instances، نام LabTG، Protocol HTTP:80، VPC LabVPC، Health check path / > CreateEC2 > Target Groups > Create target group > Instances, Name LabTG, Protocol HTTP:80, VPC LabVPC, Health check path / > CreateEC2 > Target Groups > Create target group > Instances, Name LabTG, Protocol HTTP:80, VPC LabVPC, Health check path / > Create

Step 2

دونوں EC2 انسٹنسز کو ٹارگٹس کے طور پر رجسٹر کریں۔ جب تک ہیلتھ اسٹیٹس healthy نہ دکھائے انتظار کریں — اس میں 1-2 منٹ لگتے ہیں۔Dono EC2 instances ko targets ke taur par register karein. Jab tak health status healthy na dikhaye intezar karein — is mein 1-2 minute lagtay hain.Register both EC2 instances as targets. Wait until their health status shows healthy — this takes 1–2 minutes.

aws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:ap-south-1:123456789012:targetgroup/LabTG/abc123 --targets Id=i-0123456789abcdef0 Id=i-0987654321fedcba0

🖱️ Target Groups > LabTG > Targets > Register targets > دونوں EC2 انسٹنسز منتخب کریں > Include as pending below > Register pending targetsTarget Groups > LabTG > Targets > Register targets > dono EC2 instances select karein > Include as pending below > Register pending targetsTarget Groups > LabTG > Targets > Register targets > select both EC2 instances > Include as pending below > Register pending targets

Step 3

ایک internet-facing ALB بنائیں۔ اسے کم از کم دو AZs کے سب نیٹس اور ایک سیکیورٹی گروپ چاہیے — LabWebSG والا ویب گروپ لگائیں۔Ek internet-facing ALB banayein. Isay kam az kam do AZs ke subnets aur ek security group chahiye — LabWebSG wala web group lagayein.Create an internet-facing ALB. It needs subnets in at least two AZs and a security group — attach the LabWebSG web group.

aws elbv2 create-load-balancer --name LabALB --type application --scheme internet-facing --subnets subnet-aaaapublica subnet-bbbbpublicb --security-groups sg-0123456789abcdef0 --tag-specifications 'ResourceType=loadbalancer,Tags=[{Key=Name,Value=LabALB}]'

🖱️ EC2 > Load Balancers > Create load balancer > Application Load Balancer > نام LabALB، Scheme internet-facing، LabPublicA + LabPublicB سب نیٹس منتخب کریں، SG LabWebSG > CreateEC2 > Load Balancers > Create load balancer > Application Load Balancer > Name LabALB, Scheme internet-facing, LabPublicA + LabPublicB subnets select karein, SG LabWebSG > CreateEC2 > Load Balancers > Create load balancer > Application Load Balancer > Name LabALB, Scheme internet-facing, select LabPublicA + LabPublicB subnets, SG LabWebSG > Create

Step 4

پورٹ 80 پر ایک listener لگائیں جس کا ڈیفالٹ ایکشن ٹریفک کو ٹارگٹ گروپ کی طرف forward کرے۔ Listener فیصلہ کرتا ہے کہ ALB کس ٹریفک کو سنے گا۔Port 80 par ek listener lagayein jis ka default action traffic ko target group ki taraf forward kare. Listener faisla karta hai ke ALB kis traffic ko sunay ga.Add a listener on port 80 whose default action forwards to the target group. The listener decides what traffic the ALB listens to.

aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:ap-south-1:123456789012:loadbalancer/app/LabALB/abc123 --protocol HTTP --port 80 --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:ap-south-1:123456789012:targetgroup/LabTG/abc123

🖱️ LabALB > Listeners and rules > Add listener > HTTP:80، Default action: Forward to LabTG > AddLabALB > Listeners and rules > Add listener > HTTP:80, Default action: Forward to LabTG > AddLabALB > Listeners and rules > Add listener > HTTP:80, Default action: Forward to LabTG > Add

Step 5

ٹیسٹ: ALB کا DNS نام براؤزر میں کھولیں۔ آپ کو اپنے ویب سرورز میں سے کوئی ایک دکھنا چاہیے۔ NLB الگ ہے — لیئر 4، ultra fast، static IPs، path based routing نہیں۔Test: ALB ka DNS name browser mein kholein. Aap ko apne web servers mein se koi ek dikhna chahiye. NLB alag hai — layer 4, ultra fast, static IPs, path based routing nahi.Test: open the ALB's DNS name in a browser. You should reach one of your web servers. NLB is different — layer 4, ultra-fast, static IPs, no path-based routing.

🖱️ EC2 > Load Balancers > LabALB > اس کا DNS نام کاپی کریں، براؤزر میں پیسٹ کریںEC2 > Load Balancers > LabALB > is ka DNS name copy karein, browser mein paste kareinEC2 > Load Balancers > LabALB > copy its DNS name, paste in browser

Step 6

اب DNS: اپنے ڈومین کے لیے ایک hosted zone بنائیں۔ پھر ALB کی طرف ایک A ریکارڈ Alias لگائیں — Alias ریکارڈ AWS کا سمارٹ طریقہ ہے DNS کو لوڈ بیلنسر کی طرف لگانے کا۔Ab DNS: apne domain ke liye ek hosted zone banayein. Phir ALB ki taraf ek A record Alias lagayein — Alias record AWS ka smart tareeqa hai DNS ko load balancer ki taraf laganay ka.Now DNS: create a hosted zone for your domain. Then create an A record with an Alias to the ALB — the Alias record is AWS's smart way to point DNS at load balancers.

aws route53 create-hosted-zone --name lab-example.com --caller-reference "lab-$(date +%s)"

🖱️ Route 53 > Hosted zones > Create hosted zone > ڈومین نام: آپ کا ڈومین > Public hosted zone > CreateRoute 53 > Hosted zones > Create hosted zone > Domain name: aap ka domain > Public hosted zone > CreateRoute 53 > Hosted zones > Create hosted zone > Domain name: your domain > Public hosted zone > Create

تصدیقVerifyVerify

ALB کی حالت Active ہو، دونوں ٹارگٹس healthy ہوں، اور ALB کا DNS نام براؤزر میں ویب سائٹ کھولے۔ALB ki state Active ho, dono targets healthy hon, aur ALB ka DNS name browser mein website khole.The ALB state is Active, both targets show healthy, and the ALB DNS name loads the website in the browser.

aws elbv2 describe-load-balancers --names LabALB --query 'LoadBalancers[*].[DNSName,State.Code]' --output table
aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:ap-south-1:123456789012:targetgroup/LabTG/abc123 --query 'TargetHealthDescriptions[*].[Target.Id,TargetHealth.State]' --output table

خرابی دور کرناTroubleshootingTroubleshooting

⚠️ سارے ٹارگٹس unhealthy ہیں اور ALB 503 خرابی دے رہا ہے۔Saray targets unhealthy hain aur ALB 503 error de raha hai.All targets are unhealthy and the ALB returns 503.

✅ چیک کریں کہ ہیلتھ چیک والا path سرور پر موجود ہے، اور ٹارگٹ کے سیکیورٹی گروپ میں ALB کے سیکیورٹی گروپ سے ہیلتھ چیک پورٹ پر ٹریفک کی اجازت ہو۔Check karein ke health check wala path server par maujood hai, aur target ke security group mein ALB ke security group se health check port par traffic ki ijazat ho.Check the health check path exists on the server, and confirm the target security group allows traffic from the ALB's security group on the health check port.

⚠️ Route 53 کا ریکارڈ ویب سائٹ تک resolve نہیں ہوتا۔Route 53 ka record website tak resolve nahi hota.The Route 53 record does not resolve to the website.

✅ تصدیق کریں کہ ریکارڈ A ریکارڈ ہو اور Alias ALB کی طرف ہو، اور ڈومین کے name servers hosted zone کے NS ریکارڈز سے ملتے ہوں (DNS تبدیلی میں بھی چند منٹ لگتے ہیں)۔Tasdeeq karein ke record A record ho aur Alias ALB ki taraf ho, aur domain ke name servers hosted zone ke NS records se miltay hon (DNS tabdeeli mein bhi chand minute lagtay hain).Confirm the record is an A record with an Alias to the ALB, and that your domain's name servers match the hosted zone's NS records (DNS changes also need a few minutes).

انٹرویو سوالاتInterview Q&AInterview Q&A

❓ ALB اور NLB میں کیا فرق ہے؟ALB aur NLB mein kya farq hai?What is the difference between ALB and NLB?

ALB لیئر 7 (HTTP/HTTPS) پر کام کرتا ہے اور path/host based routing دیتا ہے مگر slow ہے۔ NLB لیئر 4 (TCP/UDP) پر ہے، ultra fast ہے اور static IP addresses سپورٹ کرتا ہے۔ALB layer 7 (HTTP/HTTPS) par kaam karta hai aur path/host based routing deta hai magar slow hai. NLB layer 4 (TCP/UDP) par hai, ultra fast hai aur static IP addresses support karta hai.ALB works at layer 7 (HTTP/HTTPS) with path and host-based routing, but is slower. NLB works at layer 4 (TCP/UDP), is ultra-fast, and supports static IP addresses.

❓ ٹارگٹ گروپ کیا ہوتا ہے؟Target group kya hota hai?What is a target group?

ٹارگٹ گروپ بیک اینڈ سرورز کی فہرست ہے (EC2 انسٹنسز، IPs یا Lambda فنکشنز) جن کی طرف لوڈ بیلنسر ٹریفک بھیجتا ہے، اور ساتھ ایک ہیلتھ چیک ہوتا ہے جو خراب سرورز کو نکال دیتا ہے۔Target group backend servers ki fehrist hai (EC2 instances, IPs ya Lambda functions) jin ki taraf load balancer traffic bhejta hai, aur saath ek health check hota hai jo kharab servers ko nikal deta hai.A target group is the list of backends (EC2 instances, IPs, or Lambda functions) that the load balancer forwards traffic to, along with a health check to drop unhealthy targets.