EC2 AMI कैसे हटाएं


43

मुझे पता है कि कमांड ec2-create-image instance-idec2 उदाहरण की एक छवि बना रहा होगा, स्नैपशॉट फ़ाइल बना रहा है और एक एएमआई के रूप में पंजीकरण कर रहा है। लेकिन उस छवि को हटाने के लिए समतुल्य कमांड क्या है जो संबद्ध स्नैपशॉट फ़ाइलों को हटा देगा और एएमआई को डी-रजिस्टर कर रहा है?


जवाबों:


55

Aws डॉक्स से अपडेट किया गया उत्तर:

  1. Https://console.aws.amazon.com/ec2/ पर Amazon EC2 कंसोल खोलें ।
  2. नेविगेशन बार में, अपने क्षेत्र को सत्यापित करें।
  3. नेविगेशन पैनल में, AMI पर क्लिक करें।
  4. AMI का चयन करें, क्रिया पर क्लिक करें और फिर Deregister पर क्लिक करें। पुष्टि के लिए संकेत दिए जाने पर, जारी रखें पर क्लिक करें।
  5. नेविगेशन फलक में, स्नैपशॉट क्लिक करें।
  6. स्नैपशॉट का चयन करें, क्रिया पर क्लिक करें और फिर हटाएँ पर क्लिक करें। पुष्टि के लिए संकेत दिए जाने पर, हां पर क्लिक करें, हटाएं।

आशा है कि यह मेरी तरह किसी की मदद करें! : डी


2
बस स्नैपशॉट को हटाने के लिए बेंजामिन स्मिथ मैक्स के जवाब में कुछ सेंट जोड़ने के लिए। स्नैपशॉट को हटाने से पहले आपको कंसोल में एएमआई को पहले निष्क्रिय करना होगा।
tarvinder91

3
यदि आपका AMI रिकॉर्ड अभी भी लटका हुआ है, तो केवल कैश को दरकिनार करके पुनः लोड करें: Windows: Ctrl + Shft + R या
macOS

नोट: कंसोल को सूची से AMI निकालने में कुछ मिनट लग सकते हैं। स्थिति को ताज़ा करने के लिए ताज़ा करें चुनें।
अनिकेत ठाकुर

7

कर रहे हैं आम तौर पर आप के लिए क्या देख रहे करने के लिए 4 कदम:

  1. एएमआई का उपयोग करने वाले मामलों को समाप्त करें (विशेष रूप से S3 समर्थित एएमआई के लिए अभ्यास की सिफारिश करें) [किसी भी प्रकार के एएमआई को हटाने से पहले आवश्यक नहीं]
  2. डेरेगिस्टर एएमआई का उपयोग करना ec2-deregister
  3. एएमआई ec2-delete-bundle(एस 3 के लिए) या ec2-delete-snapshot(ईबीएस के लिए ) का उपयोग करते हुए बंडल / स्नैपशॉट हटाएं ।
  4. ईबीएस वॉल्यूम हटाएं (जब तक कि उन्हें समाप्ति पर हटाने के लिए सेट नहीं किया जाता है, उस स्थिति में, उन्हें चरण # 1 में हटा दिया जाएगा)। यह S3 समर्थित उदाहरणों के लिए आवश्यक नहीं है। [फिर, यह आवश्यक नहीं है कि यदि आप एएमआई को हटाना चाहते हैं तो उदाहरणों को समाप्त कर दें या वॉल्यूम हटा दें।]

ध्यान रखें कि स्नैपशॉट और चित्र स्वतंत्र हैं। आप स्नैपशॉट से ईबीएस वॉल्यूम बना सकते हैं और इसे बूट ड्राइव के बजाय एक माध्यमिक ड्राइव के रूप में उपयोग कर सकते हैं। इसके अलावा (लिनक्स उदाहरणों के मामले में) एक मौजूदा स्नैपशॉट से एक नई छवि बनाना संभव है - जो इस विचार को कारण देता है कि हर कोई जो एक छवि को हटाना नहीं चाहता है वह भी संबंधित स्नैपशॉट को हटाना चाहता है। (यद्यपि आप एक विंडोज एएमआई बनाने के लिए स्नैपशॉट पंजीकृत कर सकते हैं, एएमआई प्रशंसनीय नहीं है।)

यह ध्यान देने योग्य है कि एडब्ल्यूएस आपको एएमआई से पहले एक स्नैपशॉट को एएमआई से संबंधित हटाने नहीं देगा।

उपरोक्त चरण 2 और 3 पर ध्यान केंद्रित करते हुए, आपको सबसे पहले AMI के साथ जुड़े स्नैपशॉट ID (s) को ढूंढना होगा। इसे ब्लॉक डिवाइस मैपिंग के भाग के रूप में सूचीबद्ध किया जाना चाहिए। आमतौर पर, रूट ईबीएस वॉल्यूम में आरोह बिंदु / देव / sda1 होता है। आप कमांड लाइन से एएमआई को निष्क्रिय कर सकते हैं (या एडब्ल्यूएस कंसोल का उपयोग कर सकते हैं) और फिर स्नैपशॉट (फिर, कमांड लाइन या एडब्ल्यूएस कंसोल से) को हटा सकते हैं।

यदि आपको इस कार्य को अधिक बार करने की आवश्यकता है, तो आप इस प्रक्रिया को स्क्रिप्ट करना चाहेंगे। कुछ पुस्तकालय जैसे कि पायथन बोटो में ऐसा करने के लिए एक फ़ंक्शन शामिल है:

deregister_image(image_id, delete_snapshot=False)
    Unregister an AMI.

    Parameters: 
        image_id (string) – the ID of the Image to unregister
        delete_snapshot (bool) – Set to True if we should delete the snapshot associated with an EBS volume mounted at /dev/sda1

उदाहरण के लिए एक नमूना स्क्रिप्ट (पूरी तरह से अप्रयुक्त, और बस एक साथ cobbled - अपने स्वयं के जोखिम पर उपयोग करें!) उपरोक्त के आधार पर देखें:

#!/usr/bin/env python

import os
import sys

def ec2delete(imageid=None):
    conn = boto.ec2.connect_to_region('your_region', aws_access_key_id='your_key', aws_secret_access_key='your_secret') 
    conn.deregister_image(imageid, delete_snapshot=True)

if __name__ == '__main__':
    from optparse import OptionParser
    parser = OptionParser()

    options, args = parser.parse_args()
    sys.stderr.write("Deleting %s and snapshots\n" %  str(args))
    ec2delete(args)

1
एएमआई को हटाने से पहले एएमआई के उदाहरणों को समाप्त करने की आवश्यकता नहीं है। एएमआई का उपयोग केवल उदाहरणों को शुरू करने के लिए किया जाता है और वे इसके बिना ठीक काम करना जारी रख सकते हैं। हालांकि, यदि आप एएमआई को हटाते हैं और इंस्टेंस विफल हो जाते हैं, तो एएमआई के बिना प्रतिस्थापन इंस्टेंसेस को शुरू करना मुश्किल हो सकता है, इसलिए सावधान रहें।
एरिक हैमंड

1
AWS एक 'पूर्ण सफाई' के लिए उदाहरणों को समाप्त करने की सिफारिश करता था , हालांकि, सिद्धांत रूप में इसे एएमआई हटाने के लिए आवश्यक नहीं होना चाहिए। मुझे आश्चर्य है कि कुछ एज मामलों में यह बात हो सकती है, क्योंकि ईबीएस वॉल्यूम 'आलसी' को लोड करता है, अगर एक उदाहरण के लॉन्च के तुरंत बाद एक स्नैपशॉट हटा दिया जाता है, लेकिन ईबीएस वॉल्यूम पूरी तरह से लोड होने से पहले, यह समस्याग्रस्त हो सकता है।
साइबरबरी86

@ cyberx86: यदि स्नैपशॉट विलोपन एक नई मात्रा निर्माण को प्रभावित करता है, तो यह केवल एएमआई को हटाने के लिए एक बड़ी समस्या होगी। यह देखते हुए कि किसी स्नैपशॉट से वॉल्यूम को पूरी तरह से पॉप्युलेट करने में कितना समय लगता है, डेटा से भरे स्नैपशॉट के साथ परीक्षण करना आसान होना चाहिए।
एरिक हैमंड

2
@ EricHammond: एक त्वरित खोज से पता चलता है कि AWS जाहिर तौर पर स्नैपशॉट को तब तक नहीं हटाएगा, जब तक कि डेटा लोड न हो जाए, लेकिन फिर भी आपको डिलीट करने की अनुमति देगा (संभवतः बस स्नैपशॉट को तब तक पकड़े रहना चाहिए जब तक कि उसकी आवश्यकता न हो)।
साइबरबरी86

@ cyberx86: जैसा कि मुझे संदेह था, लेकिन निश्चित रूप से जानकर अच्छा लगा। इसे देखने के लिए धन्यवाद।
एरिक हैमंड

1

Awscli भी ऐसा कर सकते हैं।

पहले शाफ़्ट आईडी का उपयोग कर प्राप्त करें describe-images:

aws ec2 describe-images --image-ids ami-0123456789

फिर छवि को डीरजिस्टर करें और स्नैपशॉट को हटा दें:

aws ec2 deregister-image --image-id ami-0123456789
aws ec2 delete-snapshot --snapshot-id snap-9876543210
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.