Ravindra BagaleCourses & study guides English

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)

Disk चं life cyclecreate-volume (gp3)instance ला attachmodify-volume ने मोठाcreate-snapshot backupcreate-image (AMI)
Volume आणि instance एकाच AZ मध्ये हवेत.

2. EBS volume बनवा आणि attach करा

हे का लागतं?

Server ला root disk शिवाय data साठी जास्त disk हवी.

हे काय आहे?

EBS volume म्हणजे एका AZ मधली network disk. gp3 हा default general purpose type.

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

  1. 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
  1. Instance ला attach करा.
aws ec2 attach-volume --volume-id $VOL --instance-id $IID --device /dev/sdf --query State --output text

अपेक्षित output:

attaching
  1. Verify.
aws ec2 describe-volumes --volume-ids $VOL --query "Volumes[0].[State,Attachments[0].State,Size]" --output text

अपेक्षित output:

in-use  attached  10
  1. 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)

  1. 20 GiB करा.
aws ec2 modify-volume --volume-id $VOL --size 20 --query VolumeModification.ModificationState --output text

अपेक्षित output:

modifying
  1. Progress बघा.
aws ec2 describe-volumes-modifications --volume-ids $VOL --query "VolumesModifications[0].[ModificationState,Progress]" --output text

अपेक्षित output:

optimizing  45
  1. 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)

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

  1. 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
  1. दुसऱ्या account ला share.
aws ec2 modify-image-attribute --image-id $AMI --launch-permission "Add=[{UserId=111122223333}]"

अपेक्षित output:

(no output means success)
  1. तुमच्या 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 वाचतो.

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

  1. 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)
  1. 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)
  1. Backup snapshot delete.
aws ec2 delete-snapshot --snapshot-id $SNAP

अपेक्षित output:

(no output means success)
  1. काही उरलं नाही ते 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.

घरी करून बघा

  1. 5 GiB volume attach करा, file लिहा, snapshot घ्या, नवीन volume ला restore करून file वाचा.
  2. AMI बनवून त्यातून दुसरा instance launch करा.

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

  1. create-volume, attach-volume.
  2. modify-volume live वाढवतो.
  3. Snapshots incremental.
  4. create-image ने AMI.
  5. AMI deregister, मग snapshots delete.

सराव Tasks

या scenario बद्दल

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 करा.

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

सोपं EBS volume चा snapshot घ्या

का: Snapshot म्हणजे एका disk चा त्या क्षणीचा backup.

काय करायचं: Volume vol-01225c01510cfdeed चा snapshot "nightly texassolar" description सह बनवा.

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

सोपं मोकळी disk जागा तपासा

का: Disk 100% भरल्यास apps व databases बंद पडतात.

काय करायचं: सगळ्या mounted disks ची मोकळी व वापरलेली जागा human-readable units मध्ये दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Disks ची list पाहा

का: EBS volume attach केल्यावर lsblk त्याचं device नाव दाखवतो.

काय करायचं: Server वरचे सगळे block devices (disks व partitions) दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम जुनी AMI delete करा

का: जुन्या AMIs व snapshots चा दर महिन्याला खर्च येतो.

काय करायचं: Image ami-0111aad201d10abcd deregister करा.

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

मध्यम तुमच्या AMIs ची list

का: जुन्या AMIs साफ करताना फक्त तुमच्या images महत्त्वाच्या.

काय करायचं: फक्त तुमच्या account च्या AMIs दाखवा.

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

मध्यम Volume instance ला attach करा

का: Server ला volume दिसण्याआधी तो attach (त्याच AZ मध्ये) करावा लागतो.

काय करायचं: Volume vol-01225c01510cfdeed ला instance i-001510d5221111a2b ला /dev/sdf device म्हणून attach करा.

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

मध्यम नवा EBS volume बनवा

का: Extra data disks मुळे app data root disk पासून वेगळा राहतो.

काय करायचं: us-east-2a Availability Zone मध्ये 20 GiB gp3 volume बनवा.

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

मध्यम Server पासून AMI बनवा

का: AMI म्हणजे पूर्ण server image. त्यापासून कधीही सारख्या copies launch करता येतात.

काय करायचं: Instance i-001510d5221111a2b पासून texassolar-web-v1 नावाची AMI बनवा.

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

मध्यम नवी disk format करा

का: नवा EBS volume रिकामा असतो. Files ठेवायला file system लागते.

काय करायचं: /dev/xvdf ला xfs file system ने format करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. 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 मध्ये चालवा).

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

अवघड Downtime शिवाय volume मोठा करा

का: EBS volumes वापरात असताना मोठे होतात. नंतर file system पण वाढवतात.

काय करायचं: Volume vol-01225c01510cfdeed 50 GiB करा.

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

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

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

EBS बनवा, attach. Server ला data साठी extra disk हवी. Pen drive लावल्यासारखं. EBS volume = एका AZ मधली network disk. create-volume, wait, मग attach-volume. Verify: in-use, मग आत mkfs, mount.
उजळणी card: EBS बनवा, attach · PNG download करा · Card page उघडा
Snapshots आणि AMI. Disks बिघडतात. Perfect server च्या दहा copies पण हव्यात. Snapshot = incremental backup. AMI = disks चं launch template. create-image --no-reboot, मग wait. Cleanup: AMI deregister, मग snapshots delete.
उजळणी card: Snapshots आणि AMI · PNG download करा · Card page उघडा
EBS snapshot vs AMI. एका volume चा backup. / Snapshots + launch settings.
तुलना: EBS snapshot vs AMI · PNG download करा · Card page उघडा
EBS दुसऱ्या AZ ला attach?. नाही. एकाच AZ मध्ये हवेत. हलवायला snapshot, मग नवीन AZ मध्ये create-volume. Snapshots regional; इतर region ला copy-snapshot.
मुलाखत card: EBS दुसऱ्या AZ ला attach? · PNG download करा · Card page उघडा

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