AWS CLI VPC Commands: VPC, Subnets आणि Route Tables बनवा
Terminal मधून पूर्ण VPC बनवू: VPC, public/private subnets, internet gateway, route tables, security groups, NAT gateway. मग सगळं काढू.
या chapter मध्ये तुम्ही काय शिकाल
- VPC आणि subnets
- Internet gateway आणि routes
- Security groups आणि NACL
- Private subnet साठी NAT
- Describe आणि क्रमाने delete
1. मोठं चित्र: commands ने network
हे का लागतं?
Society ला एक gate (internet gateway), रस्ते (route tables), wings (subnets), आणि प्रत्येक flat ला guard (security groups).
हे काय आहे?
सगळ्या VPC commands aws ec2 मध्ये.
कसं करायचं (step by step)
2. VPC आणि subnets बनवा
हे का लागतं?
VPC म्हणजे तुमचं private network. Subnets zone आणि public/private नुसार भाग.
हे काय आहे?
VPC ला 10.0.0.0/16 सारखा CIDR. प्रत्येक subnet एका AZ मध्ये छोटा CIDR.
कसं करायचं (step by step)
- VPC.
VPC=$(aws ec2 create-vpc --cidr-block 10.0.0.0/16 --tag-specifications "ResourceType=vpc,Tags=[{Key=Name,Value=cli-vpc}]" --query Vpc.VpcId --output text)
echo $VPC
अपेक्षित output:
vpc-0a1b2c3d4e5f60718
- DNS hostnames on.
aws ec2 modify-vpc-attribute --vpc-id $VPC --enable-dns-hostnames
अपेक्षित output:
(no output means success)
- ap-south-1a मध्ये public subnet.
PUB=$(aws ec2 create-subnet --vpc-id $VPC --cidr-block 10.0.1.0/24 --availability-zone ap-south-1a --query Subnet.SubnetId --output text)
aws ec2 modify-subnet-attribute --subnet-id $PUB --map-public-ip-on-launch
अपेक्षित output:
subnet-0pub...
- ap-south-1b मध्ये private subnet.
PRI=$(aws ec2 create-subnet --vpc-id $VPC --cidr-block 10.0.2.0/24 --availability-zone ap-south-1b --query Subnet.SubnetId --output text)
अपेक्षित output:
(no output means success)
- Verify.
aws ec2 describe-subnets --filters Name=vpc-id,Values=$VPC --query "Subnets[].[SubnetId,CidrBlock,AvailabilityZone,MapPublicIpOnLaunch]" --output table
अपेक्षित output:
| subnet-0pub... | 10.0.1.0/24 | ap-south-1a | True |
| subnet-0pri... | 10.0.2.0/24 | ap-south-1b | False |
3. Internet gateway आणि public route
हे का लागतं?
Gateway आणि route नसेल तर VPC मधून internet नाही.
हे काय आहे?
Route table 0.0.0.0/0 internet gateway ला पाठवत असेल तरच subnet public.
कसं करायचं (step by step)
- IGW बनवून attach.
IGW=$(aws ec2 create-internet-gateway --query InternetGateway.InternetGatewayId --output text)
aws ec2 attach-internet-gateway --vpc-id $VPC --internet-gateway-id $IGW
अपेक्षित output:
igw-0abc...
- Public route table.
RT=$(aws ec2 create-route-table --vpc-id $VPC --query RouteTable.RouteTableId --output text)
aws ec2 create-route --route-table-id $RT --destination-cidr-block 0.0.0.0/0 --gateway-id $IGW
aws ec2 associate-route-table --route-table-id $RT --subnet-id $PUB
अपेक्षित output:
{ "Return": true }
{ "AssociationId": "rtbassoc-0abc..." }
- Routes verify.
aws ec2 describe-route-tables --route-table-ids $RT --query "RouteTables[0].Routes[].[DestinationCidrBlock,GatewayId]" --output text
अपेक्षित output:
10.0.0.0/16 local
0.0.0.0/0 igw-0abc...
4. Security groups आणि NACLs
हे का लागतं?
प्रत्येक server ला कोण भेटू शकतो ते guards ठरवतात.
हे काय आहे?
Security groups stateful, instances ला. NACLs stateless, subnets ला.
कसं करायचं (step by step)
- HTTP allow करणारा web SG.
WSG=$(aws ec2 create-security-group --vpc-id $VPC --group-name cli-web --description web --query GroupId --output text)
aws ec2 authorize-security-group-ingress --group-id $WSG --protocol tcp --port 80 --cidr 0.0.0.0/0
अपेक्षित output:
(no output means success)
- फक्त web SG कडून 3306.
DSG=$(aws ec2 create-security-group --vpc-id $VPC --group-name cli-db --description db --query GroupId --output text)
aws ec2 authorize-security-group-ingress --group-id $DSG --protocol tcp --port 3306 --source-group $WSG
अपेक्षित output:
(no output means success)
- Default NACL.
aws ec2 describe-network-acls --filters Name=vpc-id,Values=$VPC --query "NetworkAcls[0].Entries[].[RuleNumber,Egress,RuleAction]" --output text
अपेक्षित output:
100 False allow
32767 False deny
100 True allow
32767 True deny
5. Private subnet साठी NAT gateway
हे का लागतं?
Private servers ना internet वरून updates हवेत, पण internet ने त्यांना पोचू नये.
हे काय आहे?
NAT gateway public subnet मध्ये Elastic IP सोबत. Private route table 0.0.0.0/0 त्याला. तासाला पैसे.
कसं करायचं (step by step)
- NAT बनवा.
EIP=$(aws ec2 allocate-address --query AllocationId --output text)
NAT=$(aws ec2 create-nat-gateway --subnet-id $PUB --allocation-id $EIP --query NatGateway.NatGatewayId --output text)
aws ec2 wait nat-gateway-available --nat-gateway-ids $NAT && echo nat-ready
अपेक्षित output:
nat-ready
- Private route.
PRT=$(aws ec2 create-route-table --vpc-id $VPC --query RouteTable.RouteTableId --output text)
aws ec2 create-route --route-table-id $PRT --destination-cidr-block 0.0.0.0/0 --nat-gateway-id $NAT
aws ec2 associate-route-table --route-table-id $PRT --subnet-id $PRI
अपेक्षित output:
{ "Return": true }
- Verify.
aws ec2 describe-nat-gateways --nat-gateway-ids $NAT --query "NatGateways[0].State" --output text
अपेक्षित output:
available
6. हीच action Python, Node.js, Java, Go, .NET आणि PHP मध्ये
हे का लागतं?
Scripts CLI मध्ये सुरू होतात. Apps तोच API SDK मधून call करतात. दोन्ही माहीत असले की test केलेली command थेट code मध्ये नेता येते.
हे काय आहे?
प्रत्येक CLI command म्हणजे एक API call. उदा. aws ec2 create-vpc --cidr-block 10.0.0.0/16 म्हणजे CreateVpc API.
कसं करायचं (step by step)
हीच action (CreateVpc) code मधून. प्रत्येक SDK CLI सारखेच profile, region आणि credentials वाचतो.
| Stack | Code |
|---|---|
| Python (boto3) | boto3.client("ec2").create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] |
| Node.js (v3) | await ec2.send(new CreateVpcCommand({CidrBlock:"10.0.0.0/16"})); |
| Java (v2) | ec2.createVpc(r -> r.cidrBlock("10.0.0.0/16")).vpc().vpcId(); |
| Go (v2) | c.CreateVpc(ctx, &ec2.CreateVpcInput{CidrBlock: aws.String("10.0.0.0/16")}) |
| .NET | await ec2.CreateVpcAsync(new CreateVpcRequest{CidrBlock="10.0.0.0/16"}); |
| PHP | $ec2->createVpc(["CidrBlock"=>"10.0.0.0/16"]); |
7. काहीही खर्च चालू राहू नये म्हणून cleanup
हे का लागतं?
चालू ठेवलेले lab resources पैसे खातात आणि security risk बनतात.
हे काय आहे?
उलट्या क्रमाने delete करा: आधी children, मग parents.
कसं करायचं (step by step)
- आधी NAT, मग EIP.
aws ec2 delete-nat-gateway --nat-gateway-id $NAT
aws ec2 wait nat-gateway-deleted --nat-gateway-ids $NAT
aws ec2 release-address --allocation-id $EIP
अपेक्षित output:
(no output means success)
- Security groups.
aws ec2 delete-security-group --group-id $DSG
aws ec2 delete-security-group --group-id $WSG
अपेक्षित output:
(no output means success)
- Route tables (आधी disassociate).
for A in $(aws ec2 describe-route-tables --route-table-ids $RT $PRT --query "RouteTables[].Associations[].RouteTableAssociationId" --output text); do aws ec2 disassociate-route-table --association-id $A; done
aws ec2 delete-route-table --route-table-id $RT
aws ec2 delete-route-table --route-table-id $PRT
अपेक्षित output:
(no output means success)
- IGW, subnets, VPC.
aws ec2 detach-internet-gateway --vpc-id $VPC --internet-gateway-id $IGW
aws ec2 delete-internet-gateway --internet-gateway-id $IGW
aws ec2 delete-subnet --subnet-id $PUB
aws ec2 delete-subnet --subnet-id $PRI
aws ec2 delete-vpc --vpc-id $VPC
अपेक्षित output:
(no output means success)
- Verify.
aws ec2 describe-vpcs --vpc-ids $VPC
अपेक्षित output:
An error occurred (InvalidVpcID.NotFound) ...
Ravindra Bagale's Tip
delete-vpc ला DependencyViolation आला तर VPC मधले network interfaces बघा. काहीतरी (NAT, endpoint, Lambda) अजून वापरतंय.
8. मुलाखत प्रश्न आणि उत्तरं
प्र. Subnet public कशाने?
Route table मध्ये 0.0.0.0/0 → IGW.
प्र. NAT gateway कुठे?
Public subnet मध्ये, Elastic IP सोबत.
प्र. SG vs NACL?
SG stateful instance वर. NACL stateless subnet वर.
प्र. DB traffic फक्त web कडून कसा?
--source-group web SG ID.
प्र. delete-vpc fail का?
Dependencies उरल्या.
घरी करून बघा
- VPC बनवा, public subnet मध्ये instance launch करून curl करा.
- Cleanup एक bash script म्हणून लिहून चालवा.
थोडक्यात सांगायचं तर
- create-vpc, create-subnet.
- IGW + route = public.
- SG instance, NACL subnet.
- Private egress साठी NAT.
- उलट्या क्रमाने delete.
सराव Tasks
Pune Fintech Labs हा पुणे मधला वित्त व्यवसाय आहे. Rohan Kulkarni त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 12
सोपं /16 मध्ये किती addresses?
का: VPC size ठरवायला ही संख्या लागते.
काय करायचं: Pune Fintech Labs चा VPC 10.42.0.0/16. एकूण किती IP addresses?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं VPC बनवा
का: VPC म्हणजे AWS मधलं तुमचं स्वतःचं private network.
काय करायचं: 10.8.0.0/16 CIDR block असलेला VPC बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Internet gateway बनवा
का: Internet gateway शिवाय VPC मधलं काहीही internet ला पोचत नाही.
काय करायचं: नवा internet gateway बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम एका AZ मध्ये subnet बनवा
का: Subnets VPC range वाटतात व प्रत्येक एकाच AZ मध्ये असतो.
काय करायचं: vpc-042045ff53deadbee मध्ये ap-south-1a मध्ये 10.8.1.0/24 subnet बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम VPC router address शोधा
का: AWS router साठी base+1 राखतो.
काय करायचं: 10.42.4.0/24 मध्ये VPC router साठी AWS कोणता address राखतो?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम AWS /24 subnet मधले usable IPs
का: AWS प्रत्येक subnet मध्ये 5 addresses राखून ठेवतो.
काय करायचं: AWS वर 10.42.1.0/24 subnet मध्ये Pune Fintech Labs servers साठी किती addresses वापरू शकतो?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Internet route जोडा
का: Route table 0.0.0.0/0 internet gateway ला पाठवत असेल तरच subnet "public".
काय करायचं: Route table rtb-00542045cc53bb22 मध्ये सगळं internet traffic (0.0.0.0/0) igw-0542045cc53aa11 कडे पाठवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Subnet route table शी जोडा
का: Associate करेपर्यंत subnet main route table वापरतो.
काय करायचं: Subnet subnet-00542045cc53bb1 ला route table rtb-00542045cc53bb22 शी associate करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Internet gateway attach करा
का: VPC ला attach केल्याशिवाय gateway काही करत नाही.
काय करायचं: igw-0542045cc53aa11 ला vpc-042045ff53deadbee शी attach करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Server साठी पहिला usable IP
का: पहिले 4 addresses AWS राखतो.
काय करायचं: AWS वर 10.42.20.0/24 मध्ये server ला मिळणारा पहिला IP?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड सर्वात लहान prefix निवडा
का: योग्य size मुळे address space वाचतो.
काय करायचं: AWS वर subnet मध्ये 100 servers हवेत. बसणारा सर्वात मोठा prefix number? उदा. /25.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड /24 चे दोन भाग
का: Public व private subnets एक block वाटून घेतात.
काय करायचं: 10.42.8.0/24 चे दोन समान subnets करा. दोन्ही CIDRs comma ने लिहा.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.




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