AWS CLI EBS आणि AMI Commands: Volumes, Snapshots आणि Images
Terminal मधून server disks सांभाळू: EBS volumes बनवा, attach करा, मोठे करा, snapshots घ्या आणि server चं AMI image बनवा.
या chapter मध्ये तुम्ही काय शिकाल
- EBS volume बनवा, attach, detach
- Downtime शिवाय volume resize
- Snapshots घ्या, copy, restore
- AMI बनवा, share, deregister
- Disks आणि images cleanup
1. मोठं चित्र: disks आणि disks चे फोटो
हे का लागतं?
Pen drive (EBS volume) एका laptop ला लागतो. त्याची photo copy (snapshot) locker मध्ये safe. तयार laptop image (AMI) ने नवीन laptops काही मिनिटांत तयार.
हे काय आहे?
हे सगळं aws ec2 मध्ये: create-volume, attach-volume, modify-volume, create-snapshot, create-image.
कसं करायचं (step by step)
2. EBS volume बनवा आणि attach करा
हे का लागतं?
Server ला root disk शिवाय data साठी जास्त disk हवी.
हे काय आहे?
EBS volume म्हणजे एका AZ मधली network disk. gp3 हा default general purpose type.
कसं करायचं (step by step)
- 10 GiB gp3 volume बनवा.
VOL=$(aws ec2 create-volume --availability-zone ap-south-1a --size 10 --volume-type gp3 --tag-specifications "ResourceType=volume,Tags=[{Key=Name,Value=cli-data}]" --query VolumeId --output text)
aws ec2 wait volume-available --volume-ids $VOL && echo $VOL
अपेक्षित output:
vol-0a1b2c3d4e5f60718
- Instance ला attach करा.
aws ec2 attach-volume --volume-id $VOL --instance-id $IID --device /dev/sdf --query State --output text
अपेक्षित output:
attaching
- Verify.
aws ec2 describe-volumes --volume-ids $VOL --query "Volumes[0].[State,Attachments[0].State,Size]" --output text
अपेक्षित output:
in-use attached 10
- Server वर format करून mount करा.
lsblk
sudo mkfs -t xfs /dev/nvme1n1
sudo mkdir /data && sudo mount /dev/nvme1n1 /data
df -h /data
अपेक्षित output:
/dev/nvme1n1 10G 104M 9.9G 2% /data
3. Volume resize करा
हे का लागतं?
Disk भरत आलीय. Server बंद करायचा नाही.
हे काय आहे?
modify-volume live size वाढवतो किंवा type/IOPS बदलतो. मग server आत file system वाढवा. Volume लहान करता येत नाही.
कसं करायचं (step by step)
- 20 GiB करा.
aws ec2 modify-volume --volume-id $VOL --size 20 --query VolumeModification.ModificationState --output text
अपेक्षित output:
modifying
- Progress बघा.
aws ec2 describe-volumes-modifications --volume-ids $VOL --query "VolumesModifications[0].[ModificationState,Progress]" --output text
अपेक्षित output:
optimizing 45
- File system वाढवा, verify.
sudo xfs_growfs /data
df -h /data
अपेक्षित output:
/dev/nvme1n1 20G 180M 20G 1% /data
4. Snapshots: backup, copy, restore
हे का लागतं?
Disks बिघडतात, लोक चुकून files delete करतात. एका वेळेची copy हवी.
हे काय आहे?
Snapshot = volume चा incremental backup, AWS S3 मध्ये ठेवतो. दुसऱ्या region ला copy करता येतो आणि त्यातून नवीन volume.
कसं करायचं (step by step)
- Snapshot घ्या.
SNAP=$(aws ec2 create-snapshot --volume-id $VOL --description "cli-data backup" --query SnapshotId --output text)
aws ec2 wait snapshot-completed --snapshot-ids $SNAP && echo $SNAP
अपेक्षित output:
snap-0abc1234def567890
- DR साठी दुसऱ्या region ला copy.
aws ec2 copy-snapshot --region ap-southeast-1 --source-region ap-south-1 --source-snapshot-id $SNAP --description dr-copy
अपेक्षित output:
{ "SnapshotId": "snap-0fed..." }
- नवीन volume म्हणून restore.
aws ec2 create-volume --availability-zone ap-south-1b --snapshot-id $SNAP --volume-type gp3 --query "[VolumeId,State]" --output text
अपेक्षित output:
vol-0new... creating
5. AMI बनवा आणि share करा
हे का लागतं?
एक server perfect setup केला. आता तसेच दहा हवेत.
हे काय आहे?
AMI = template: सगळ्या disks चे snapshots + launch settings. Auto Scaling आणि run-instances वापरतात.
कसं करायचं (step by step)
- Reboot शिवाय image.
AMI=$(aws ec2 create-image --instance-id $IID --name cli-web-v1 --no-reboot --query ImageId --output text)
aws ec2 wait image-available --image-ids $AMI && echo $AMI
अपेक्षित output:
ami-0abc1234def567890
- दुसऱ्या account ला share.
aws ec2 modify-image-attribute --image-id $AMI --launch-permission "Add=[{UserId=111122223333}]"
अपेक्षित output:
(no output means success)
- तुमच्या images verify.
aws ec2 describe-images --owners self --query "Images[].[ImageId,Name,State]" --output table
अपेक्षित output:
| ami-0abc... | cli-web-v1 | 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-snapshot --volume-id vol-123 म्हणजे CreateSnapshot API.
कसं करायचं (step by step)
हीच action (CreateSnapshot) code मधून. प्रत्येक SDK CLI सारखेच profile, region आणि credentials वाचतो.
| Stack | Code |
|---|---|
| Python (boto3) | boto3.client("ec2").create_snapshot(VolumeId="vol-123")["SnapshotId"] |
| Node.js (v3) | await ec2.send(new CreateSnapshotCommand({VolumeId:"vol-123"})); |
| Java (v2) | ec2.createSnapshot(r -> r.volumeId("vol-123")).snapshotId(); |
| Go (v2) | c.CreateSnapshot(ctx, &ec2.CreateSnapshotInput{VolumeId: aws.String("vol-123")}) |
| .NET | await ec2.CreateSnapshotAsync(new CreateSnapshotRequest{VolumeId="vol-123"}); |
| PHP | $ec2->createSnapshot(["VolumeId"=>"vol-123"]); |
7. काहीही खर्च चालू राहू नये म्हणून cleanup
हे का लागतं?
चालू ठेवलेले lab resources पैसे खातात आणि security risk बनतात.
हे काय आहे?
उलट्या क्रमाने delete करा: आधी children, मग parents.
कसं करायचं (step by step)
- AMI deregister, मग त्याचे snapshots delete.
SN=$(aws ec2 describe-images --image-ids $AMI --query "Images[0].BlockDeviceMappings[].Ebs.SnapshotId" --output text)
aws ec2 deregister-image --image-id $AMI
for s in $SN; do aws ec2 delete-snapshot --snapshot-id $s; done
अपेक्षित output:
(no output means success)
- Unmount, detach, volume delete.
sudo umount /data
aws ec2 detach-volume --volume-id $VOL
aws ec2 wait volume-available --volume-ids $VOL
aws ec2 delete-volume --volume-id $VOL
अपेक्षित output:
(no output means success)
- Backup snapshot delete.
aws ec2 delete-snapshot --snapshot-id $SNAP
अपेक्षित output:
(no output means success)
- काही उरलं नाही ते verify.
aws ec2 describe-volumes --filters Name=tag:Name,Values=cli-data --query "length(Volumes)"
अपेक्षित output:
0
Ravindra Bagale's Tip
Delete केलेल्या volumes चे snapshots पण पैसे खातात. दर महिन्याला describe-snapshots --owner-ids self चालवून जुने delete करा, किंवा Data Lifecycle Manager वापरा.
8. मुलाखत प्रश्न आणि उत्तरं
प्र. दुसऱ्या AZ मधल्या instance ला EBS attach होतो?
नाही. Snapshot ने हलवा.
प्र. Downtime शिवाय disk कशी वाढवाल?
modify-volume, मग xfs_growfs/resize2fs.
प्र. Snapshots full copies?
पहिला full, नंतरचे फक्त बदललेले blocks.
प्र. AMI मध्ये काय?
Disk snapshots, architecture, block device mapping.
प्र. --no-reboot धोकादायक का?
Memory मधला data flush नसेल, image inconsistent.
घरी करून बघा
- 5 GiB volume attach करा, file लिहा, snapshot घ्या, नवीन volume ला restore करून file वाचा.
- AMI बनवून त्यातून दुसरा instance launch करा.
थोडक्यात सांगायचं तर
- create-volume, attach-volume.
- modify-volume live वाढवतो.
- Snapshots incremental.
- create-image ने AMI.
- AMI deregister, मग snapshots delete.
सराव Tasks
Texas Solar Co हा ऑस्टिन मधला सौर ऊर्जा व्यवसाय आहे. Carlos Ramirez त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे USD मध्ये मोजले जातात आणि AWS resources us-east-2 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 12
सोपं Volume detach करा
का: Disk rescue server वर हलवायला आधी detach करा.
काय करायचं: Volume vol-01225c01510cfdeed detach करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं EBS volume चा snapshot घ्या
का: Snapshot म्हणजे एका disk चा त्या क्षणीचा backup.
काय करायचं: Volume vol-01225c01510cfdeed चा snapshot "nightly texassolar" description सह बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं मोकळी disk जागा तपासा
का: Disk 100% भरल्यास apps व databases बंद पडतात.
काय करायचं: सगळ्या mounted disks ची मोकळी व वापरलेली जागा human-readable units मध्ये दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Disks ची list पाहा
का: EBS volume attach केल्यावर lsblk त्याचं device नाव दाखवतो.
काय करायचं: Server वरचे सगळे block devices (disks व partitions) दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम जुनी AMI delete करा
का: जुन्या AMIs व snapshots चा दर महिन्याला खर्च येतो.
काय करायचं: Image ami-0111aad201d10abcd deregister करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम तुमच्या AMIs ची list
का: जुन्या AMIs साफ करताना फक्त तुमच्या images महत्त्वाच्या.
काय करायचं: फक्त तुमच्या account च्या AMIs दाखवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Volume instance ला attach करा
का: Server ला volume दिसण्याआधी तो attach (त्याच AZ मध्ये) करावा लागतो.
काय करायचं: Volume vol-01225c01510cfdeed ला instance i-001510d5221111a2b ला /dev/sdf device म्हणून attach करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम नवा EBS volume बनवा
का: Extra data disks मुळे app data root disk पासून वेगळा राहतो.
काय करायचं: us-east-2a Availability Zone मध्ये 20 GiB gp3 volume बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Server पासून AMI बनवा
का: AMI म्हणजे पूर्ण server image. त्यापासून कधीही सारख्या copies launch करता येतात.
काय करायचं: Instance i-001510d5221111a2b पासून texassolar-web-v1 नावाची AMI बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम नवी disk format करा
का: नवा EBS volume रिकामा असतो. Files ठेवायला file system लागते.
काय करायचं: /dev/xvdf ला xfs file system ने format करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Snapshot दुसऱ्या Region मध्ये copy करा
का: दुसऱ्या Region मधली copy पूर्ण Region अडचणीत आल्यास वाचवते.
काय करायचं: Snapshot snap-025f01510beef5 us-east-2 मधून us-west-2 मध्ये copy करा (command us-west-2 मध्ये चालवा).
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड Downtime शिवाय volume मोठा करा
का: EBS volumes वापरात असताना मोठे होतात. नंतर file system पण वाढवतात.
काय करायचं: Volume vol-01225c01510cfdeed 50 GiB करा.
- 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.