AWS CLI EC2 Commands उदाहरणांसह
आता terminal मधून EC2 चालवू: key pair, security group, launch, tag, stop, start, resize, terminate. प्रत्येक command सोबत अपेक्षित output आणि verify.
या chapter मध्ये तुम्ही काय शिकाल
- Latest Amazon Linux AMI शोधा
- Key pair आणि security group
- Launch, tag, describe
- Stop, start, reboot, resize
- Terminate आणि verify
1. मोठं चित्र: CLI मधून EC2
हे का लागतं?
App वर cab book करणं = Console. एक SMS "BOOK PUNE-STN 6PM" = CLI. तीच cab, कमी taps, आणि परत करता येतं.
हे काय आहे?
EC2 commands aws ec2 खाली. मुख्य: run-instances, describe-instances, start/stop/reboot/terminate-instances, create-tags, modify-instance-attribute.
कसं करायचं (step by step)
2. Latest AMI शोधा
हे का लागतं?
AMI IDs दर महिन्याला बदलतात, region नुसार वेगळे. Hard-code केलं तर script तुटते.
हे काय आहे?
AWS latest Amazon Linux AMI ID public SSM parameter मध्ये ठेवतं.
कसं करायचं (step by step)
- Parameter variable मध्ये.
AMI=$(aws ssm get-parameter --name /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64 --query Parameter.Value --output text)
echo $AMI
अपेक्षित output:
ami-0abcdef1234567890
- AMI verify.
aws ec2 describe-images --image-ids $AMI --query "Images[0].[Name,State]" --output text
अपेक्षित output:
al2023-ami-2023.x.2026...-x86_64 available
3. Key pair आणि security group
हे का लागतं?
SSH साठी key आणि फक्त तुम्हाला आत येऊ देणारा firewall rule हवा.
हे काय आहे?
create-key-pair private key एकदाच देतो. create-security-group firewall. authorize-security-group-ingress port उघडतो.
कसं करायचं (step by step)
- Key बनवून save.
aws ec2 create-key-pair --key-name cli-lab --query KeyMaterial --output text > cli-lab.pem
chmod 400 cli-lab.pem
अपेक्षित output:
(file cli-lab.pem created)
- Default VPC मध्ये SG.
SG=$(aws ec2 create-security-group --group-name cli-lab-sg --description "CLI lab" --query GroupId --output text)
echo $SG
अपेक्षित output:
sg-0123456789abcdef0
- फक्त तुमच्या IP वरून SSH.
MYIP=$(curl -s https://checkip.amazonaws.com)
aws ec2 authorize-security-group-ingress --group-id $SG --protocol tcp --port 22 --cidr $MYIP/32
अपेक्षित output:
{ "Return": true, "SecurityGroupRules": [ { "FromPort": 22, "CidrIpv4": "49.x.x.x/32" } ] }
- Rule verify.
aws ec2 describe-security-groups --group-ids $SG --query "SecurityGroups[0].IpPermissions[].[FromPort,IpRanges[0].CidrIp]" --output text
अपेक्षित output:
22 49.x.x.x/32
4. Instance launch आणि tag
हे का लागतं?
मुख्य action: एका command मध्ये server, नंतर सापडावा म्हणून name tag.
हे काय आहे?
run-instances: AMI, type, key, SG, optional user data आणि tags.
कसं करायचं (step by step)
- एक t3.micro launch.
ID=$(aws ec2 run-instances --image-id $AMI --instance-type t3.micro --key-name cli-lab --security-group-ids $SG --count 1 --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=cli-web}]" --query "Instances[0].InstanceId" --output text)
echo $ID
अपेक्षित output:
i-0abc1234def567890
- Running ची wait.
aws ec2 wait instance-running --instance-ids $ID && echo running
अपेक्षित output:
running
- Public IP.
aws ec2 describe-instances --instance-ids $ID --query "Reservations[0].Instances[0].PublicIpAddress" --output text
अपेक्षित output:
13.233.10.20
- अजून एक tag.
aws ec2 create-tags --resources $ID --tags Key=Env,Value=dev
अपेक्षित output:
(no output means success)
- Status checks verify.
aws ec2 describe-instance-status --instance-ids $ID --query "InstanceStatuses[0].[InstanceState.Name,InstanceStatus.Status]" --output text
अपेक्षित output:
running ok
- SSH करा.
ssh -i cli-lab.pem ec2-user@13.233.10.20
अपेक्षित output:
[ec2-user@ip-172-31-5-10 ~]$
5. Stop, start, reboot, resize
हे का लागतं?
रात्री stop ने compute खर्च वाचतो. Resize ने नवीन server न करता जास्त CPU.
हे काय आहे?
Instance type फक्त stopped असताना बदलतो. Elastic IP नसेल तर stop/start नंतर public IP बदलतो.
कसं करायचं (step by step)
- Stop.
aws ec2 stop-instances --instance-ids $ID --query "StoppingInstances[0].CurrentState.Name" --output text
aws ec2 wait instance-stopped --instance-ids $ID
अपेक्षित output:
stopping
- Type t3.small.
aws ec2 modify-instance-attribute --instance-id $ID --instance-type Value=t3.small
अपेक्षित output:
(no output means success)
- परत start.
aws ec2 start-instances --instance-ids $ID --query "StartingInstances[0].CurrentState.Name" --output text
अपेक्षित output:
pending
- नवीन type verify.
aws ec2 describe-instances --instance-ids $ID --query "Reservations[0].Instances[0].InstanceType" --output text
अपेक्षित output:
t3.small
- Reboot (IP तोच).
aws ec2 reboot-instances --instance-ids $ID
अपेक्षित output:
(no output means success)
- SSH fail झाला तर console log.
aws ec2 get-console-output --instance-id $ID --latest --output text | tail -3
अपेक्षित output:
... Cloud-init finished ...
6. Elastic IP आणि termination protection
हे का लागतं?
DNS साठी fixed IP, आणि production चुकून delete होऊ नये म्हणून lock.
हे काय आहे?
allocate-address + associate-address = fixed IP. --disable-api-termination terminate थांबवतो.
कसं करायचं (step by step)
- EIP allocate आणि attach.
ALLOC=$(aws ec2 allocate-address --query AllocationId --output text)
aws ec2 associate-address --instance-id $ID --allocation-id $ALLOC
अपेक्षित output:
{ "AssociationId": "eipassoc-0abc..." }
- Protection on.
aws ec2 modify-instance-attribute --instance-id $ID --disable-api-termination
अपेक्षित output:
(no output means success)
- On आहे verify.
aws ec2 describe-instance-attribute --instance-id $ID --attribute disableApiTermination --query DisableApiTermination.Value
अपेक्षित output:
true
- Cleanup आधी off.
aws ec2 modify-instance-attribute --instance-id $ID --no-disable-api-termination
अपेक्षित output:
(no output means success)
7. हीच action Python, Node.js, Java, Go, .NET आणि PHP मध्ये
हे का लागतं?
Scripts CLI मध्ये सुरू होतात. Apps तोच API SDK मधून call करतात. दोन्ही माहीत असले की test केलेली command थेट code मध्ये नेता येते.
हे काय आहे?
प्रत्येक CLI command म्हणजे एक API call. उदा. aws ec2 run-instances म्हणजे RunInstances API.
कसं करायचं (step by step)
हीच action (RunInstances) code मधून. प्रत्येक SDK CLI सारखेच profile, region आणि credentials वाचतो.
| Stack | Code |
|---|---|
| Python (boto3) | boto3.client("ec2").run_instances(ImageId=ami, InstanceType="t3.micro", MinCount=1, MaxCount=1) |
| Node.js (v3) | await ec2.send(new RunInstancesCommand({ImageId: ami, InstanceType:"t3.micro", MinCount:1, MaxCount:1})); |
| Java (v2) | ec2.runInstances(r -> r.imageId(ami).instanceType(InstanceType.T3_MICRO).minCount(1).maxCount(1)); |
| Go (v2) | c.RunInstances(ctx, &ec2.RunInstancesInput{ImageId: &ami, InstanceType: types.InstanceTypeT3Micro, MinCount: aws.Int32(1), MaxCount: aws.Int32(1)}) |
| .NET | await ec2.RunInstancesAsync(new RunInstancesRequest{ImageId=ami, InstanceType=InstanceType.T3Micro, MinCount=1, MaxCount=1}); |
| PHP | $ec2->runInstances(["ImageId"=>$ami,"InstanceType"=>"t3.micro","MinCount"=>1,"MaxCount"=>1]); |
8. काहीही खर्च चालू राहू नये म्हणून cleanup
हे का लागतं?
चालू ठेवलेले lab resources पैसे खातात आणि security risk बनतात.
हे काय आहे?
उलट्या क्रमाने delete करा: आधी children, मग parents.
कसं करायचं (step by step)
- EIP release.
aws ec2 disassociate-address --association-id eipassoc-0abc...
aws ec2 release-address --allocation-id $ALLOC
अपेक्षित output:
(no output means success)
- Terminate आणि wait.
aws ec2 terminate-instances --instance-ids $ID --query "TerminatingInstances[0].CurrentState.Name" --output text
aws ec2 wait instance-terminated --instance-ids $ID
अपेक्षित output:
shutting-down
- SG आणि key delete.
aws ec2 delete-security-group --group-id $SG
aws ec2 delete-key-pair --key-name cli-lab
rm -f cli-lab.pem
अपेक्षित output:
(no output means success)
- काही उरलं नाही verify.
aws ec2 describe-instances --filters Name=tag:Name,Values=cli-web Name=instance-state-name,Values=running,stopped --query "length(Reservations)"
अपेक्षित output:
0
Ravindra Bagale's Tip
IDs नेहमी variables मध्ये (ID, SG, ALLOC). मग पुढच्या commands copy-paste safe आणि cleanup सोपं.
9. मुलाखत प्रश्न आणि उत्तरं
प्र. Script मध्ये latest AMI कसा?
Public SSM parameter /aws/service/ami-amazon-linux-latest/... वाचा.
प्र. Running असताना type बदलतो का?
नाही. Stop, modify, मग start.
प्र. stop/start नंतर IP का बदलतो?
Auto public IP stop ला release होतो. Fixed साठी Elastic IP.
प्र. Instance delete होऊ नये कसं?
--disable-api-termination.
प्र. Boot न होणारा server कसा debug?
get-console-output --latest.
घरी करून बघा
- nginx install करणारा user data देऊन launch करा, public IP curl करा.
- Env=dev tag असलेले सगळे instances stop करणारा one-liner लिहा.
थोडक्यात सांगायचं तर
- AMI SSM parameter मधून.
- Launch आधी key + SG.
- run-instances मग wait.
- Resize फक्त stopped.
- Terminate, EIP release, SG delete.
सराव Tasks
Solapur Chaddar House हा सोलापूर मधला गृह वस्त्र व्यवसाय आहे. Vikas Kamble त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 12
सोपं EC2 instances ची list पाहा
का: काही बदलण्याआधी काय चालू आहे व कोणत्या state मध्ये ते पाहा.
काय करायचं: Solapur Chaddar House च्या ap-south-1 मधल्या सगळ्या EC2 instances चे details दाखवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Instance reboot करा
का: Reboot मध्ये disks व IPs तेच राहतात, stop/start ने public IP बदलू शकतो.
काय करायचं: i-05a2a4a2b35111a2b instance reboot करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं EC2 server ला connect करा
का: Key file सह SSH हा Linux EC2 ला login करण्याचा standard मार्ग.
काय करायचं: solapurchaddar-key.pem key वापरून 13.76.20.5 server वर ec2-user म्हणून login करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Instance stop करा
का: Stop केलेल्या instance चा compute खर्च येत नाही, फक्त disks चा.
काय करायचं: i-05a2a4a2b35111a2b instance stop करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Instance start करा
का: सकाळी team ला लागेल तेव्हा परत start करा.
काय करायचं: i-05a2a4a2b35111a2b instance start करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Server पासून AMI बनवा
का: AMI म्हणजे पूर्ण server image. त्यापासून कधीही सारख्या copies launch करता येतात.
काय करायचं: Instance i-05a2a4a2b35111a2b पासून solapurchaddar-web-v1 नावाची AMI बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Elastic IP allocate करा
का: Elastic IP stop/start नंतरही तोच राहतो, म्हणून DNS चालू राहतो.
काय करायचं: VPC मध्ये वापरण्यासाठी नवा Elastic IP address allocate करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Elastic IP server ला जोडा
का: Associate केल्यावर server ला तो fixed public IP मिळतो ज्याकडे domain जातो.
काय करायचं: Allocation eipalloc-053b2a4a2a5dd44 ला instance i-05a2a4a2b35111a2b शी associate करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Key pair बनवा
का: नव्या Linux instances ला SSH करायला key pair लागते.
काय करायचं: solapurchaddar-key नावाची key pair बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम एक EC2 instance launch करा
का: CLI ने launch करणं repeatable व जलद असतं, scripts मध्येही तोच command चालतो.
काय करायचं: AMI ami-011dbfaeceaedabcd पासून 1 instance launch करा, type t3.micro, key pair solapurchaddar-key, security group sg-0153a26462654c3b2.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड फक्त running instances दाखवा
का: Filters मुळे AWS फक्त हवं तेच पाठवतं.
काय करायचं: फक्त state running असलेल्या instances describe करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड Name tag सह instance launch करा
का: Launch वेळी tags दिल्यास billing व search पहिल्या दिवसापासून सोपं होतं.
काय करायचं: ami-011dbfaeceaedabcd पासून 1 t3.small instance subnet subnet-0153b2a4a2a5bb1 मध्ये launch करा, व instance ला Name=solapurchaddar-web tag द्या.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.




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