ความแตกต่างของ AWS ระหว่างสแนปชอตและ AMI


108

ดังนั้นฉันจึงมีปัญหาในการหาว่าอะไรคือความแตกต่างระหว่างสองสิ่งนี้โดยเฉพาะ

ตามที่ฉันเข้าใจแล้วสแน็ปช็อตเป็นเพียงข้อมูลสำรองของดิสก์ไดรฟ์ในขณะที่ AMI เป็นการสำรองข้อมูลของระบบทั้งหมด (หรืออินสแตนซ์ที่ฉันควรพูด) แต่ระบบทั้งหมดไม่ได้อยู่ในทางเทคนิคทั้งหมดในดิสก์ไดรฟ์หรือไม่? และถ้าเป็นเช่นนั้นก็ไม่มีความแตกต่างที่ชัดเจนและฉันขาดอะไรไป?

คำตอบ:


70

AMI มีสองประเภท (และอินสแตนซ์ที่เกี่ยวข้อง):

  1. อินสแตนซ์สโตร์ (บางครั้งเรียกว่าใช้ S3) สิ่งเหล่านี้พบได้น้อยกว่าและฉันไม่แนะนำสำหรับผู้เริ่มต้น AMI ที่เก็บอินสแตนซ์คือสำเนาของไดรฟ์ข้อมูลที่เก็บอินสแตนซ์รูทบวกกับข้อมูลเมตาบางส่วนซึ่งทั้งหมดจะบันทึกไว้ในที่เก็บข้อมูล S3 ในรูปแบบพิเศษ

  2. บูต EBS นี่อาจเป็นสิ่งที่คุณใช้ EBS boot AMI คือสแนปช็อต EBS ของไดรฟ์ข้อมูลรูท EBS รวมทั้งข้อมูลเมตาบางอย่างเช่นสถาปัตยกรรมเคอร์เนลชื่อ AMI คำอธิบายการแมปอุปกรณ์บล็อกและอื่น ๆ

คุณสามารถถ่ายภาพรวมของไดรฟ์ข้อมูลสำหรับบูต EBS และเปลี่ยนเป็น EBS boot AMI ได้โดยการลงทะเบียนด้วยข้อมูลเมตาที่เหมาะสม ส่วนที่ยากที่สุดคือการระบุรหัส AKI (เคอร์เนล) ที่ถูกต้องเพื่อให้บูตได้อย่างถูกต้อง


ขอบคุณ eric ฉันสำรองข้อมูลภาพ AMI และฉันมีตัวเลือกในการเปิดใช้และลงทะเบียนหรือไม่ ฉันสับสนว่าความแตกต่างคืออะไรที่นี่ ...
Melbourne2991

ฉันไม่รู้ว่าคุณหมายถึงอะไร "สำรองข้อมูลภาพ AMI"
Eric Hammond

8
เมื่อคุณคลิก "สร้าง AMI" EC2 จะสร้างสแนปชอต EBS ของไดรฟ์ข้อมูล EBS ของอินสแตนซ์นั้นและลงทะเบียนเป็น AMI คุณสามารถเปิดอินสแตนซ์ใหม่โดยระบุว่า AMI เป็นจุดเริ่มต้น คุณยังสามารถสร้างไดรฟ์ข้อมูลใหม่ของ EBS snapshot ได้หากคุณแค่ต้องการดูไฟล์โดยไม่ต้องเรียกใช้อินสแตนซ์ใหม่
Eric Hammond

6
หรือคุณสามารถสร้างสแน็ปช็อต EBS ของไดรฟ์ข้อมูล EBS ด้วยตัวคุณเองจากนั้นจึงลงทะเบียนสแนปชอตนั้นเป็น AMI นี่เป็นวิธีที่ยากกว่าเล็กน้อยในการสร้าง AMI เนื่องจากคุณต้องรู้แอตทริบิวต์การลงทะเบียน AMI ที่เหมาะสมเพื่อตั้งค่า "สร้าง AMI" ทั้งหมดนี้เพื่อคุณ
Eric Hammond

1
@ cosbor11 คุณไม่สามารถลบสแนปชอตสำหรับ AMI
Eric Hammond

24

ความแตกต่างที่สำคัญคือระหว่างประเภทของบริการที่อ้างถึง สแนปชอตเป็นโวลุ่ม EBS ที่คุณสามารถบันทึกสถานะและรีบูตด้วยข้อมูลเดียวกัน ณ ช่วงเวลาหนึ่ง

AMI นั้นคล้ายกัน แต่สำหรับอินสแตนซ์ EC2 เอง คุณไม่สามารถถ่ายภาพรวมของอินสแตนซ์ที่ไม่ได้รับการสนับสนุน ebs แต่คุณสามารถสร้าง AMI (อิมเมจระบบ) ได้

โดยทั่วไปฉันใช้สแน็ปช็อต EBS เป็นโซลูชันสำรองสำหรับไดรฟ์ข้อมูลฐานข้อมูลและฉันใช้ AMI เพื่อบันทึกการกำหนดค่าอินสแตนซ์


1
จะเกิดอะไรขึ้นถ้าไดรฟ์ข้อมูลของฉันมีฐานข้อมูลและการกำหนดค่าอินสแตนซ์ของฉัน AMI บันทึกอะไรที่สแนปชอต EBS ไม่ได้ (และในทางกลับกัน) ขอบคุณ
Melbourne2991

1
AMI สามารถเปิดใช้งานไปยังอินสแตนซ์ใหม่ได้ทันที สามารถคัดลอก EBS snapshot ไปยังไดรฟ์ข้อมูลใหม่ (ดิสก์เสมือน) ดิสก์เสมือนนั้นสามารถใช้เป็นพื้นฐานสำหรับอินสแตนซ์ใหม่ได้ แต่ไม่ใช่อินสแตนซ์ด้วยตัวมันเอง
Dan Pritts

16

สามารถสร้าง AMI โดยใช้สแนปชอต ตัวอย่างเช่นการใช้ "สแนปชอต" เดียวคุณสามารถสร้าง AMI ได้หลายรายการเช่นหนึ่ง PV และหนึ่ง HVM AMI โดยใช้สแนปชอตเดียวกัน

ดังนั้น snapshot จึงมีข้อมูลระบบ / OS AMI คือ (ข้อมูลเมตาสแนปชอต + เครื่อง / ฮาร์ดแวร์)


1
ถ้าฉันมี AMI แสดงว่าอินสแตนซ์ถูกสร้างขึ้นจากมัน AMI รวมข้อมูลในอินสแตนซ์นั้นหรือไม่ ฉันหมายความว่าถ้าอินสแตนซ์มีไฟล์ tomcat WAR AMI ที่อินสแตนซ์นั้นสร้างขึ้นจะรวมถึงด้วย?
Dejell

1
หากคุณสร้าง AMI จากอินสแตนซ์ที่มี tomcat (หรือไฟล์ใด ๆ ) AMI ที่สร้างขึ้นใหม่จะมีไฟล์ / ข้อมูลเหล่านั้น อินสแตนซ์ใด ๆ ที่สร้างเพิ่มเติมจาก AMI นี้จะมีไฟล์เหล่านี้ อย่างไรก็ตาม AMI ต้นทางที่คุณสร้างอินสแตนซ์จะไม่มี (สมมติว่าคุณเพิ่มไฟล์ลงในอินสแตนซ์หลังจากสร้างอินสแตนซ์)
Anshu Prateek

15

ผมเองก็งงเหมือนกัน วิธีที่ง่ายที่สุดในการทำความเข้าใจมีดังนี้

  • EBS Snapshot บ่อยมากแสดงถึงการสำรองข้อมูลของไดรฟ์ข้อมูล EBS ที่เฉพาะเจาะจงซึ่งอาจเป็นไดรฟ์ข้อมูลใด ๆ (ไดรฟ์ข้อมูลรูทปริมาณข้อมูล ฯลฯ )

  • AMI(Amazon Machine Image) เป็นข้อมูลสำรองของอินสแตนซ์ EC2 ทั้งหมด ตัวอย่างเช่นด้วยการกำหนดค่าที่เหมาะสมคุณสามารถสร้าง AMI ซึ่งมีไดรฟ์ข้อมูล EBS หลายรายการ

ตอนนี้อาจฟังดูสับสน แต่ทั้งคู่จะถูกจัดเก็บเป็น "EBS Snapshots"

คิดแบบนั้น:

  • EBS Snapshot เป็นเพียงการสำรองข้อมูล
  • AMIเป็นการแสดงสถานะของระบบในช่วงเวลาหนึ่ง ๆ คุณยังสามารถบูตจากมันได้

ดังนั้นหากฉันสร้างสแนปชอตของไดรฟ์ข้อมูลรูทสามารถใช้สแน็ปช็อตนั้นเพื่อเปิดอินสแตนซ์ได้หรือไม่
gaurav parashar

1
คำตอบสั้น ๆ : ไม่สามารถทำได้โดยตรงโดยใช้เฉพาะระดับเสียงเนื่องจาก "ตัวเลือกการบูต" ที่มีอยู่สำหรับ EC2 คือ AMI อย่างไรก็ตามคุณสามารถสร้าง AMI จากโวลุ่มและเรียกใช้อินสแตนซ์จาก AMI ที่เพิ่งสร้างขึ้น (เช่นตัวเลือกทางอ้อม)
skryvets

7

EBS Volumeเป็นดิสก์ที่อยู่เบื้องหลัง EC2 Snapshotเป็นการสำรองข้อมูลเฉพาะจุดในvolumeขณะที่ AMI กำลังสำรองข้อมูลอินสแตนซ์ EC2 ทั้งหมดที่อาจมีไดรฟ์ข้อมูลที่แนบมาหลายชุดเหมือนกับเครื่องเสมือน

ด้วยPackerคุณสามารถสร้างอิมเมจเครื่องอัตโนมัติรวมถึงไฟล์ AMI สำหรับ EC2, VMDK / VMX สำหรับ VMware, OVF export สำหรับ VirtualBox เป็นต้น

EC2  <-- EBS Volume (Boot) + EBS Volume 
                        ^
                        |
                     Snapshot (only of specific volume)       
                        ^
                        |
                       AMI (Combined snapshots of all volumes, snapshot must have boot volume) 
                        ^
                        | 
                  Launch a new Instance (same installed softwares and configs, different specs) 

สแนปชอตสามารถใช้สเพื่อสำรองไดรฟ์ / ไดรฟ์ข้อมูล เป็นการดำเนินการสำรองข้อมูลเพิ่มเติมซึ่งหมายความว่าทุกครั้งที่คุณถ่ายภาพรวมของไดรฟ์ข้อมูลจะเพิ่มเฉพาะการเปลี่ยนแปลงใหม่ที่เพิ่ม / แนะนำให้กับไดรฟ์ข้อมูลตั้งแต่การสำรองข้อมูลครั้งล่าสุดของคุณ (ไม่ใช่การสำรองข้อมูลทั้งหมด) ซึ่งจะช่วยประหยัดเวลาในการสำรองข้อมูลพื้นที่และค่าใช้จ่ายในที่สุด .

สามารถใช้สแนปชอตใน:

  • ไดรฟ์สำรองเป็นประจำ

  • เปลี่ยนประเภทของโวลุ่มเช่นคุณมีปริมาณการใช้งานหรืออ่านและเขียนและจำเป็นต้องเพิ่มการดำเนินการ IO ดังนั้นคุณจึงเปลี่ยนจากgp2เป็นio1สูงกว่าIOPs

สามารถใช้ AMI ที่กำหนดเองได้ใน:

  • สำหรับการกู้คืนระบบในกรณีที่อินสแตนซ์ EC2 ที่รันอยู่ในปัจจุบันเกิดความเสียหายและไม่สามารถรันได้โดยไม่มีเหตุผล

  • AMI ของ บริษัท มาตรฐานที่ติดตั้งซอฟต์แวร์ที่จำเป็นต้องมีทั้งหมดซึ่งช่วยลดความยุ่งยากในขั้นตอนการปรับใช้ (เช่นกำหนดค่าให้เชื่อมต่อกับ `` Splunk มีการติดตั้งซอฟต์แวร์การตรวจสอบและการสังเกตบางอย่างติดตั้งนักเทียบท่าหรือมีการกำหนดค่าให้เชื่อมต่อ Puppet หรือ Chef ในการเริ่มต้น)

  • AMI สามารถใช้เพื่อปรับใช้แอปพลิเคชันของคุณในภูมิภาคต่างๆได้อย่างง่ายดาย

  • อัปเกรดเซิร์ฟเวอร์ของคุณให้สูงขึ้นหรือมีข้อกำหนดที่แตกต่างกันด้วยซอฟต์แวร์ที่ติดตั้งและการกำหนดค่าทั้งหมด

  • AMI สามารถแชร์แบบสาธารณะผ่านบัญชี AWS ได้


ย่อหน้าแรกของคุณเป็นคำจำกัดความที่ชัดเจนที่สุดเท่าที่ฉันเคยอ่านมา ขอบคุณ!
specialk1st

5

ความแตกต่างเพิ่มเติมระหว่าง AMI และ EBS Snapshots มีดังนี้

1) AMI สามารถเรียกใช้งานได้และมีลิงก์ไปยังอุปกรณ์รูทและอาจมีลิงก์ไปยังสแนปชอตของไดรฟ์ข้อมูลอื่น ๆ

2) อิมเมจข้อมูลที่อยู่ใน AMI ไม่ได้แสดงถึงจุดในเวลาที่กำหนดไว้อย่างดีเว้นแต่ว่าจะมีการรีบูตอินสแตนซ์ซึ่งโดยทั่วไปไม่สามารถยอมรับได้สำหรับสภาพแวดล้อมการผลิต สามารถถ่ายภาพสแนปชอตได้อย่างสม่ำเสมอเนื่องจากสามารถควบคุมจุดในเวลาที่แน่นอนได้ดังนั้นก่อนที่จะเริ่มสแนปชอตตรวจสอบให้แน่ใจว่าทุกอย่าง "พร้อมสำหรับการสำรองข้อมูล"

3) AMI สามารถสร้างได้จากสแนปชอตที่มีอยู่ของอุปกรณ์รูทสำหรับ Linux แต่ไม่ใช่สำหรับ Windows


2

ตามคำจำกัดความที่ AWS ให้ไว้

AMI คือเทมเพลตที่คุณสามารถเริ่มอินสแตนซ์ EC2 EBS Snapshot คือสำเนาระดับบล็อกของระดับเสียง EBS โวลุ่ม EBS อาจเป็นไดรฟ์ข้อมูลสำหรับบูต (เช่นมีระบบปฏิบัติการ) หรือโวลุ่มข้อมูลเท่านั้น (มีไฟล์ฐานข้อมูลเป็นต้น) คุณใช้ RegisterImage เพื่อสร้าง AMI (จากสแนปชอต)

นี่เป็นแนวคิดที่แตกต่างกันสองแบบซึ่งนำไปใช้ในระดับที่ต่างกัน (ปริมาณ EBS เทียบกับเทมเพลต EC2) อย่างไรก็ตามมีการอ้างอิงระหว่างสองแนวคิด

สำหรับอินสแตนซ์ EC2 ที่สำรองไว้ของ EBS (เช่นอินสแตนซ์ EC2 ที่บูตจากโวลุ่ม EBS) AMI จะถูกนำไปใช้เป็น EBS Snapshot ของไดรฟ์ข้อมูลสำหรับบูต + ข้อมูลเมตาสองสามรายการ (สถาปัตยกรรมของเครื่อง - 32 vs 64 บิต - ประเภท ของ virtualization - HVM vs PV - ฯลฯ ... )

ดังนั้นสำหรับอินสแตนซ์ EC2 ที่สำรองไว้ของ EBS AMI คือสแน็ปช็อต EBS + ไฟล์ XML คุณยังสามารถสร้าง AMI ของคุณเองตามสแนปชอตของไดรฟ์ข้อมูลสำหรับบูตที่คุณเป็นเจ้าของ


1

สแนปชอตมีราคาไม่แพงที่จะใช้เป็นกลยุทธ์การสำรองข้อมูลเนื่องจากเมื่อคุณมีหลายสแนปชอตคุณจะจ่ายเงินสำหรับการสำรองข้อมูลทั้งหมดเพียงครั้งเดียวและส่วนที่เหลือนั้นมีความแตกต่างเพียงเล็กน้อยและโดยปกติจะมีขนาดเล็กกว่ามาก


6
สิ่งนี้ไม่เป็นความจริงสำหรับ EBS boot AMI เนื่องจากเป็นสแนปช็อต EBS บวกข้อมูลเมตาเล็กน้อย ค่าใช้จ่ายจะเท่ากัน
Eric Hammond

1

คุณสามารถคิดว่า AMI เป็นเทมเพลตทั่วไปสำหรับเครื่องที่มีระบบปฏิบัติการและส่วนประกอบที่ติดตั้งไว้จะถูกเก็บรักษาไว้

Snapshot สามารถรวมทุกอย่างที่ AMI ทำ แต่ยังบันทึกข้อมูลดิสก์ของไดรฟ์ข้อมูล EBS

โดยทั่วไปสิ่งที่คุณตัดสินใจจะใช้จะกำหนดว่าอินสแตนซ์ของคุณได้รับการสนับสนุนจาก EBS หรือไม่และหากคุณต้องการสร้างเครื่องขึ้นมาใหม่โดยมีข้อมูลทั้งหมดเหมือนเดิมหรือเพียงแค่ต้องการเทมเพลตเครื่องทั่วไป


ดังนั้น AMI จึงไม่บันทึกระดับเสียง EBS?
Melbourne2991

1
AMI สามารถตั้งค่าให้รวมไดรฟ์ข้อมูล EBS ตั้งแต่หนึ่งไดรฟ์ข้อมูลขึ้นไป แต่ไดรฟ์ข้อมูลเหล่านั้นจะว่างเปล่าเมื่อบูตจะไม่มีข้อมูลที่มีอยู่ในเครื่องต้นทาง
CIGuy

ดังนั้น AMI จึงเป็นเพียงข้อมูลเมตาจริงๆ (ไม่แน่ใจว่าเป็นคำที่ถูกต้องหรือไม่)? เช่นเดียวกับระบบปฏิบัติการที่คุณใช้ขนาดของอินสแตนซ์เป็นต้น? ในทางเทคนิคควรมีขนาดเพียงไม่กี่กิโลไบต์ที่ฉันใช้?
Melbourne2991

1
AMI ยังเก็บโปรแกรมใด ๆ ที่คุณติดตั้งไว้ในเครื่องตัวเลือกการกำหนดค่าระดับระบบปฏิบัติการ ฯลฯ ... ดังนั้นจึงไม่ได้เป็นเพียงแค่ข้อมูลเมตาเท่านั้น แต่โดยปกติแล้วจะมีขนาดเล็กกว่าสแนปชอตมาก
CIGuy

1
คำตอบนี้ผิด AMI มีสแนปช็อตอย่างน้อยหนึ่งภาพ นั่นคือมันอ้างอิงสแนปช็อตอย่างน้อยหนึ่งภาพ (ไม่มีการคัดลอกข้อมูล) และยังมีข้อมูลเมตาเพิ่มเติมบางอย่าง นี่คือเหตุผลที่คุณไม่สามารถลบสแนปชอตได้หาก AMI ใช้อยู่ในปัจจุบัน docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.htmlดูการมีส่วนร่วมของ Eric Hammond ในชุดข้อความนี้
Max Barraclough

0

จากคำจำกัดความที่ AWS ให้ไว้จะอธิบายความแตกต่าง - Amazon Machine Image (AMI) เป็นเทมเพลตที่มีการกำหนดค่าซอฟต์แวร์ (เช่นระบบปฏิบัติการเซิร์ฟเวอร์แอปพลิเคชันและแอปพลิเคชัน) จาก AMI คุณเปิดอินสแตนซ์ซึ่งเป็นสำเนาของ AMI ที่ทำงานเป็นเซิร์ฟเวอร์เสมือนในระบบคลาวด์ ในขณะที่สแนปชอตคุณสามารถสำรองข้อมูลในไดรฟ์ข้อมูล EBS ของคุณไปยัง Amazon S3 โดยการถ่ายภาพแบบตรงเวลา สแนปชอตคือการสำรองข้อมูลแบบเพิ่มหน่วยซึ่งหมายความว่าจะมีการบันทึกเฉพาะบล็อกในอุปกรณ์ที่มีการเปลี่ยนแปลงหลังจากบันทึกสแนปชอตล่าสุดของคุณแล้ว เมื่อคุณลบสแนปชอตเฉพาะข้อมูลที่เป็นเอกสิทธิ์ของสแนปชอตนั้นเท่านั้นที่จะถูกลบออก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.