การสำรองข้อมูลที่เก็บไว้ใน Amazon S3


16

ฉันมีอินสแตนซ์ EC2 ที่เรียกใช้เว็บเซิร์ฟเวอร์ที่เก็บไฟล์ที่ผู้ใช้อัพโหลดไปยัง S3 ไฟล์จะถูกเขียนหนึ่งครั้งและไม่เคยเปลี่ยนแปลง แต่จะถูกเรียกใช้เป็นครั้งคราวโดยผู้ใช้ เราน่าจะสะสมข้อมูลประมาณ 200-500GB ต่อปี เราต้องการให้แน่ใจว่าข้อมูลนี้ปลอดภัยโดยเฉพาะอย่างยิ่งจากการลบโดยไม่ตั้งใจและต้องการให้สามารถกู้คืนไฟล์ที่ถูกลบโดยไม่คำนึงถึงเหตุผล

ฉันได้อ่านเกี่ยวกับฟีเจอร์การกำหนดรุ่นสำหรับที่เก็บ S3 แล้ว แต่ฉันไม่พบว่าการกู้คืนเป็นไปได้สำหรับไฟล์ที่ไม่มีประวัติการแก้ไขหรือไม่ ดูเอกสาร AWS ที่นี่เกี่ยวกับการกำหนดเวอร์ชัน:

http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html

ในตัวอย่างเหล่านั้นพวกเขาจะไม่แสดงสถานการณ์ที่ข้อมูลถูกอัปโหลด แต่ไม่เคยแก้ไขแล้วลบออก ไฟล์ถูกลบในสถานการณ์นี้กู้คืนได้หรือไม่?

จากนั้นเราคิดว่าเราสามารถสำรองไฟล์ S3 ไปยัง Glacier โดยใช้การจัดการวงจรชีวิตของวัตถุ:

http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html

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

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

สุดท้ายเราคิดว่าเราจะสร้างที่เก็บข้อมูลใหม่ทุกเดือนเพื่อทำหน้าที่สำรองข้อมูลเต็มรูปแบบทุกเดือนและคัดลอกข้อมูลของที่เก็บข้อมูลต้นฉบับไปที่ที่เก็บข้อมูลใหม่ในวันที่ 1 จากนั้นใช้สิ่งที่ซ้ำซ้อน ( http://duplicity.nongnu.org/) ) เราจะซิงโครไนซ์ถังสำรองทุกคืน ในตอนท้ายของเดือนเราจะใส่เนื้อหาของฝากข้อมูลสำรองลงในที่เก็บข้อมูลของ Glacier และสร้างที่เก็บข้อมูลสำรองใหม่โดยใช้สำเนาใหม่ปัจจุบันของที่เก็บข้อมูลต้นฉบับ ... และทำซ้ำขั้นตอนนี้ ดูเหมือนว่าจะใช้งานได้และลดค่าใช้จ่ายในการจัดเก็บ / ถ่ายโอนให้น้อยที่สุด แต่ฉันไม่แน่ใจว่าซ้ำซ้อนช่วยให้สามารถถ่ายโอนข้อมูลแบบถังต่อถังโดยตรงโดยไม่ต้องนำข้อมูลลงไปยังไคลเอนต์ควบคุมก่อน

ดังนั้นฉันเดาว่ามีคำถามสองสามข้อที่นี่ ก่อนอื่นการกำหนดรุ่น S3 อนุญาตการกู้คืนไฟล์ที่ไม่เคยแก้ไขหรือไม่ มีวิธี "คัดลอก" ไฟล์จาก S3 ไปยัง Glacier ที่ฉันพลาดหรือไม่? ความซ้ำซ้อนหรือไฟล์การถ่ายโอนเครื่องมืออื่น ๆ ระหว่าง S3 กลุ่มโดยตรงโดยตรงเพื่อหลีกเลี่ยงค่าใช้จ่ายในการถ่ายโอน? ในที่สุดฉันจะปิดเครื่องหมายในแนวทางของฉันในการสำรองข้อมูล S3 หรือไม่

ขอบคุณล่วงหน้าสำหรับข้อมูลเชิงลึกที่คุณสามารถให้ได้!

ปรับปรุง

Amazon เพิ่งประกาศว่าการกำหนดเวอร์ชันในขณะนี้ทำงานกับกฎวงจรชีวิต


aws.amazon.com/blogs/aws/archive-s3-to-glacier/ + + มีวิดีโอ youtube สั้น ๆ ที่ด้านล่างอธิบาย s3 ถึงธารน้ำแข็ง
เทียบเท่า 8

คำตอบ:


10

ฉันได้อ่านเกี่ยวกับฟีเจอร์การกำหนดรุ่นสำหรับที่เก็บ S3 แล้ว แต่ฉันไม่พบว่าการกู้คืน> เป็นไปได้สำหรับไฟล์ที่ไม่มีประวัติการแก้ไขหรือไม่ ดูเอกสาร AWS ได้ที่นี่ใน> การกำหนดเวอร์ชัน:

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

จากนั้นเราคิดว่าเราสามารถสำรองไฟล์ S3 ไปยังกลาเซียร์โดยใช้ object lifecycle> management:

แต่ดูเหมือนว่าสิ่งนี้จะไม่ได้ผลสำหรับเราเนื่องจากไม่ได้คัดลอกวัตถุไฟล์ไปยัง Glacier แต่> ย้ายไปที่ Glacier (แม่นยำยิ่งขึ้นดูเหมือนว่าเป็นคุณลักษณะของวัตถุที่เปลี่ยนแปลง แต่> ต่อไป ... )

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

ในที่สุดเราคิดว่าเราจะสร้างที่เก็บข้อมูลใหม่ทุกเดือนเพื่อทำหน้าที่สำรองข้อมูลรายเดือนแบบเต็มและคัดลอกข้อมูลของที่เก็บข้อมูลดั้งเดิมไปยังที่เก็บข้อมูลใหม่ในวันที่ 1 จากนั้นใช้สิ่งที่ต้องการซ้ำซ้อน ( http: //duplicity.nongnu org / ) เราจะซิงโครไนซ์ถังสำรองทุกคืน

อย่าทำอย่างนี้คุณสามารถมี 100 ถังต่อบัญชีดังนั้นใน 3 ปีคุณจะได้รับหนึ่งในสามของค่าเผื่อถังของคุณด้วยการสำรองข้อมูล

ดังนั้นฉันเดาว่ามีคำถามสองสามข้อที่นี่ ก่อนอื่นการกำหนดรุ่น S3 อนุญาตให้เรียกคืนไฟล์> ที่ไม่เคยแก้ไขหรือไม่

ใช่

มีวิธี "คัดลอก" ไฟล์จาก S3 ไปยัง Glacier ที่ฉันพลาดหรือไม่?

ไม่ว่าฉันรู้


ขอขอบคุณ Sirex หนึ่งคำชี้แจง: เราตั้งใจที่จะเก็บข้อมูลสำรองหนึ่งครั้งเท่านั้น (เดือนปัจจุบัน) และเก็บถาวรข้อมูลสำรองของเดือนที่แล้วไปยังธารน้ำแข็งแล้วลบสำเนาของธารน้ำแข็งในนโยบายการเก็บรักษาทั่วไปบางรายการ (แต่ละเดือนเป็นเวลา 3 เดือน รายไตรมาสเป็นเวลาหนึ่งปี) คุณคิดว่าเป็นไปได้หรือมีข้อ จำกัด AWS อื่น ๆ ที่ป้องกันกลยุทธ์นี้หรือไม่?
Fiver

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

3

ฉันไม่ชอบที่จะติดตั้ง s3 เพราะมันช้าและสามารถแขวนและดำเนินการเหมือนโรงเรียนเก่า ดีกว่าที่จะขึ้น / ลงได้ตามต้องการ

http://s3tools.org/s3cmd

มันง่ายในการเขียนสคริปต์ ... อย่าลืมไฟล์ ~ / .s3cfg ของคุณ


ว้าวนี่ดูเท่!
JakeGould

@nandoP +1 ฉันคิดว่าจะใช้ s3cmd แล้วกลิ้งเอง
Fiver

1

ดูเหมือนว่าคุณอาจต้องใช้ S3FS ซึ่งโดยทั่วไปจะติดตั้งที่เก็บ S3 ของคุณราวกับว่ามันเป็นระบบไฟล์ในเครื่อง:

http://code.google.com/p/s3fs/wiki/FuseOverAmazon

ฉันชอบที่จะใช้เวอร์ชันที่แยกออกมานี้เนื่องจากมันยังคงโครงสร้างของโฟลเดอร์เหมือนกับสิ่งที่สร้างขึ้นในแผงควบคุมเว็บสำหรับ Amazon S3:

https://github.com/tongwang/s3fs-c

จากนั้นฉันก็มีเชลล์สคริปต์บางตัวที่ใช้rsyncเพื่อซิงค์ข้อมูลกับการตั้งค่าในเครื่องของฉัน

โดยทั่วไปฉันพบว่า S3FS ทำงานได้ดีที่สุดสำหรับการอ่านเนื้อหาที่อยู่ในถัง Amazon S3 การเขียนไม่สอดคล้องกัน แต่สำหรับจุดประสงค์ในการสำรอง S3 ถังเก็บ Tony Wang ของ S3FS นั้นใช้งานได้ดี


1
ฟังดูมีประโยชน์ มันถ่ายโอนโดยตรงระหว่างถังโดยไม่ต้องดาวน์โหลดไปยังลูกค้าหรือไม่
Fiver

อาจเป็นไปได้ ฉันส่วนใหญ่ใช้มันเพื่อติดตั้งบนเซิร์ฟเวอร์ในท้องถิ่นและสำรองข้อมูลไปยังเครื่องท้องถิ่นของเรา แต่เนื่องจากมันมีความสามารถในการเขียนฉันจึงไม่ใช้มันในการ "สับเปลี่ยน" เพื่อสลับข้อมูลระหว่างที่เก็บข้อมูล โดยทั่วไปบนเครื่องตัวกลางให้ติดตั้งที่ฝากข้อมูลหนึ่งที่จุดเชื่อมต่อหนึ่งจุด จากนั้นติดตั้งที่ฝากข้อมูลอื่น ๆ เป็นจุดเชื่อมต่ออื่น จากนั้นทำ rsync แต่อย่างที่บอกไปแล้วว่าการปรับเปลี่ยนเวลา / วันที่สามารถแปลกกับ Amazon S3 เพราะมันไม่ใช่ระบบไฟล์ แต่การทดลอง
JakeGould
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.