Ravindra BagaleCourses & study guides English

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)

बनवायचा क्रमcreate-vpc 10.0.0.0/16create-subnet public+ privatecreate-internet-gatewayattachroute table: 0.0.0.0/0 → igwprivate साठी NAT
उलट्या क्रमाने delete.

2. VPC आणि subnets बनवा

हे का लागतं?

VPC म्हणजे तुमचं private network. Subnets zone आणि public/private नुसार भाग.

हे काय आहे?

VPC ला 10.0.0.0/16 सारखा CIDR. प्रत्येक subnet एका AZ मध्ये छोटा CIDR.

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

  1. 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
  1. DNS hostnames on.
aws ec2 modify-vpc-attribute --vpc-id $VPC --enable-dns-hostnames

अपेक्षित output:

(no output means success)
  1. 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...
  1. 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)
  1. 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)

  1. 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...
  1. 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..." }
  1. 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)

  1. 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)
  1. फक्त 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)
  1. 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)

  1. 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
  1. 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 }
  1. 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 वाचतो.

StackCode
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")})
.NETawait 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)

  1. आधी 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)
  1. Security groups.
aws ec2 delete-security-group --group-id $DSG
aws ec2 delete-security-group --group-id $WSG

अपेक्षित output:

(no output means success)
  1. 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)
  1. 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)
  1. 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 उरल्या.

घरी करून बघा

  1. VPC बनवा, public subnet मध्ये instance launch करून curl करा.
  2. Cleanup एक bash script म्हणून लिहून चालवा.

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

  1. create-vpc, create-subnet.
  2. IGW + route = public.
  3. SG instance, NACL subnet.
  4. Private egress साठी NAT.
  5. उलट्या क्रमाने delete.

सराव Tasks

या scenario बद्दल

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?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं VPC बनवा

का: VPC म्हणजे AWS मधलं तुमचं स्वतःचं private network.

काय करायचं: 10.8.0.0/16 CIDR block असलेला VPC बनवा.

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

सोपं Internet gateway बनवा

का: Internet gateway शिवाय VPC मधलं काहीही internet ला पोचत नाही.

काय करायचं: नवा internet gateway बनवा.

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

मध्यम एका AZ मध्ये subnet बनवा

का: Subnets VPC range वाटतात व प्रत्येक एकाच AZ मध्ये असतो.

काय करायचं: vpc-042045ff53deadbee मध्ये ap-south-1a मध्ये 10.8.1.0/24 subnet बनवा.

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

मध्यम VPC router address शोधा

का: AWS router साठी base+1 राखतो.

काय करायचं: 10.42.4.0/24 मध्ये VPC router साठी AWS कोणता address राखतो?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम AWS /24 subnet मधले usable IPs

का: AWS प्रत्येक subnet मध्ये 5 addresses राखून ठेवतो.

काय करायचं: AWS वर 10.42.1.0/24 subnet मध्ये Pune Fintech Labs servers साठी किती addresses वापरू शकतो?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. 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 कडे पाठवा.

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

मध्यम Subnet route table शी जोडा

का: Associate करेपर्यंत subnet main route table वापरतो.

काय करायचं: Subnet subnet-00542045cc53bb1 ला route table rtb-00542045cc53bb22 शी associate करा.

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

मध्यम Internet gateway attach करा

का: VPC ला attach केल्याशिवाय gateway काही करत नाही.

काय करायचं: igw-0542045cc53aa11 ला vpc-042045ff53deadbee शी attach करा.

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

मध्यम Server साठी पहिला usable IP

का: पहिले 4 addresses AWS राखतो.

काय करायचं: AWS वर 10.42.20.0/24 मध्ये server ला मिळणारा पहिला IP?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड सर्वात लहान prefix निवडा

का: योग्य size मुळे address space वाचतो.

काय करायचं: AWS वर subnet मध्ये 100 servers हवेत. बसणारा सर्वात मोठा prefix number? उदा. /25.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड /24 चे दोन भाग

का: Public व private subnets एक block वाटून घेतात.

काय करायचं: 10.42.8.0/24 चे दोन समान subnets करा. दोन्ही CIDRs comma ने लिहा.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

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

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

Commands ने VPC. Click ने बनवलेलं network repeat कठीण. create-vpc, create-subnet, IGW, route table, route. Public = 0.0.0.0/0 → internet gateway. describe-route-tables ने routes verify.
उजळणी card: Commands ने VPC · PNG download करा · Card page उघडा
NAT आणि clean up. Private servers ना updates हवेत, inbound नको. Public subnet मध्ये Elastic IP सोबत NAT. Private route → NAT. wait available. उलटा delete: NAT, EIP, SG, routes, IGW, subnets, VPC.
उजळणी card: NAT आणि clean up · PNG download करा · Card page उघडा
Security group vs Network ACL. Instance level, stateful. / Subnet level, stateless.
तुलना: Security group vs Network ACL · PNG download करा · Card page उघडा
delete-vpc fail का?. अजून काहीतरी आत: ENI, NAT, IGW, subnet, SG. Error: DependencyViolation. आधी children, VPC शेवटी.
मुलाखत card: delete-vpc fail का? · PNG download करा · Card page उघडा

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