Cách xóa EC2 AMI


43

Tôi biết rằng lệnh ec2-create-image instance-idsẽ tạo một hình ảnh của thể hiện ec2, tạo tệp ảnh chụp nhanh và đăng ký dưới dạng AMI. Nhưng lệnh tương đương để xóa hình ảnh sẽ xóa các tệp ảnh chụp nhanh liên quan và hủy đăng ký AMI là gì?


Câu trả lời:


56

Cập nhật câu trả lời từ các tài liệu aws:

  1. Mở bảng điều khiển Amazon EC2 tại https://console.aws.amazon.com/ec2/ .
  2. Trong thanh điều hướng, xác minh khu vực của bạn.
  3. Trong bảng điều hướng, nhấp vào AMIs.
  4. Chọn AMI, bấm Hành động, rồi bấm Deregister. Khi được nhắc xác nhận, bấm Tiếp tục.
  5. Trong ngăn dẫn hướng, bấm vào Ảnh chụp nhanh.
  6. Chọn ảnh chụp nhanh, bấm Hành động, rồi bấm Xóa. Khi được nhắc xác nhận, bấm Có, Xóa.

Hy vọng điều này sẽ giúp bất cứ ai như tôi! :CƯỜI MỞ MIỆNG


2
Chỉ cần thêm vài xu vào câu trả lời của Benjamin Smith Max để xóa ảnh chụp nhanh. Trước tiên, bạn cần hủy đăng ký AMI trong bảng điều khiển trước khi có thể xóa ảnh chụp nhanh.
tarvinder91

3
Nếu bản ghi AMI của bạn vẫn bị treo xung quanh, chỉ cần thực hiện tải lại với bỏ qua bộ đệm: Windows: Ctrl + Shft + R hoặc trên macOS: + + R.
André Hauptfleisch

LƯU Ý: Có thể mất vài phút trước khi bảng điều khiển loại bỏ AMI khỏi danh sách. Chọn Làm mới để làm mới trạng thái.
Aniket Thakur

7

thường 4 bước để những gì bạn đang tìm kiếm:

  1. Chấm dứt các trường hợp sử dụng AMI (khuyến nghị thực hành đặc biệt đối với AMI được hỗ trợ S3) [Không bắt buộc trước khi xóa AMI thuộc bất kỳ loại nào]
  2. Deregister AMIs sử dụng ec2-deregister
  3. Xóa các gói / ảnh chụp nhanh sao lưu AMI bằng cách sử dụng ec2-delete-bundle(cho S3) hoặc ec2-delete-snapshot(cho EBS).
  4. Xóa khối lượng EBS (trừ khi chúng được đặt để xóa khi chấm dứt, trong trường hợp đó, chúng sẽ bị xóa trong bước # 1). Điều này không cần thiết cho các trường hợp được hỗ trợ S3. [Một lần nữa, không cần thiết phải chấm dứt các trường hợp hoặc xóa khối lượng nếu bạn chỉ muốn xóa AMI.]

Hãy nhớ rằng ảnh chụp nhanh và hình ảnh là độc lập. Bạn có thể tạo âm lượng EBS từ ảnh chụp nhanh và sử dụng nó làm ổ đĩa thứ cấp thay vì ổ đĩa khởi động. Hơn nữa (trong trường hợp Linux), có thể tạo một hình ảnh mới từ một ảnh chụp nhanh hiện có - điều này cho thấy lý do rằng không phải ai muốn xóa hình ảnh cũng muốn xóa (các) ảnh chụp liên quan. (Mặc dù bạn có thể đăng ký ảnh chụp nhanh để tạo Windows AMI, nhưng AMI không thể khởi chạy được.)

Điều đáng chú ý là AWS sẽ không cho phép bạn xóa một ảnh chụp nhanh được liên kết với AMI trước khi bạn hủy đăng ký AMI.

Tập trung vào các bước 2 và 3 ở trên, trước tiên bạn cần tìm (các) ID ảnh chụp nhanh được liên kết với AMI. Điều này nên được liệt kê như là một phần của ánh xạ thiết bị khối. Thông thường, âm lượng EBS gốc có điểm gắn kết / dev / sda1. Bạn có thể hủy đăng ký AMI khỏi dòng lệnh (hoặc sử dụng bảng điều khiển AWS) và sau đó xóa ảnh chụp nhanh (một lần nữa, từ dòng lệnh hoặc bảng điều khiển AWS).

Nếu bạn cần thực hiện nhiệm vụ này thường xuyên hơn, bạn sẽ muốn kịch bản quy trình. Một số thư viện như Python Boto bao gồm một hàm để thực hiện chính xác điều này:

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

Ví dụ, một tập lệnh mẫu (hoàn toàn chưa được kiểm tra và chỉ được ghép lại với nhau - sử dụng rủi ro của riêng bạn!) Dựa trên những điều trên có thể giống như:

#!/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
Không cần phải chấm dứt các trường hợp của AMI trước khi xóa AMI. AMI chỉ được sử dụng để bắt đầu các thể hiện và chúng có thể tiếp tục hoạt động tốt mà không cần nó. Tuy nhiên, nếu bạn xóa AMI và các trường hợp không thành công, thì có thể khó bắt đầu các trường hợp thay thế mà không có AMI, vì vậy hãy cẩn thận.
Eric Hammond

1
AWS được sử dụng để đề xuất chấm dứt các trường hợp cho 'dọn dẹp hoàn toàn', tuy nhiên, về nguyên tắc, không cần thiết phải xóa AMI. Tôi tự hỏi liệu điều đó có thể quan trọng trong một số trường hợp cạnh hay không, vì khối lượng EBS tải 'một cách lười biếng', nếu một ảnh chụp nhanh bị xóa ngay sau khi một phiên bản được khởi chạy, nhưng trước khi khối lượng EBS được tải đầy đủ, nó có thể có vấn đề.
cyberx86

@ cyberx86: Nếu việc xóa ảnh chụp nhanh ảnh hưởng đến việc tạo âm lượng mới, đó sẽ là một vấn đề lớn hơn so với việc xóa AMI. Dựa vào thời gian cần thiết để tạo ra một âm lượng đầy đủ từ một ảnh chụp nhanh, có thể dễ dàng kiểm tra với một ảnh chụp nhanh chứa đầy dữ liệu.
Eric Hammond

2
@EricHammond: một tìm kiếm nhanh cho thấy AWS dường như sẽ không xóa ảnh chụp nhanh cho đến khi dữ liệu được tải, nhưng vẫn sẽ cho phép bạn thực hiện xóa (có lẽ chỉ cần giữ lại ảnh chụp nhanh cho đến khi không cần thiết).
cyberx86

@ cyberx86: Như tôi nghi ngờ, nhưng thật tuyệt khi biết chắc chắn. Cảm ơn đã tìm kiếm nó.
Eric Hammond

1

Các awscli cũng có thể làm điều này.

Đầu tiên lấy id shapshot bằng cách sử dụng describe-images:

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

Sau đó hủy đăng ký hình ảnh và xóa ảnh chụp nhanh:

aws ec2 deregister-image --image-id ami-0123456789
aws ec2 delete-snapshot --snapshot-id snap-9876543210
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.