簡體   English   中英

是否在EC2實例中將S3存儲桶作為驅動器進行復制粘貼或直接將文件保存在存儲桶中?

[英]Does mounting an S3 bucket as a drive in an EC2 instance copy-pastes or directly saves files in the bucket?

我已經構建了一個腳本,可以刪除幾千個pdf文件。 我想構建一個連續運行腳本至少2周的t2實例,並將下載的文件保存在S3存儲桶中。 我讀了這個教程,但我有一個疑問:

如果我將下載文件夾設置為已安裝的驅動器位置,則此處的安裝意味着數據將存儲在EBS和S3中,或者文件將直接保存在S3存儲桶中。

我需要這個澄清,因為在構建實例時,我將保持較低的存儲空間(約75 GB)並租用一個S3存儲桶,因為已刪除文件的總大小將超過300 GB。

謝謝!

是的,掛載的驅動器不會占用本地存儲,因此您只需啟動一個只有8GB的實例。 對於安裝工具,我建議https://github.com/kahing/goofys (非常積極開發)而不是s3fs,這似乎很慢,如果你有大文件,會加劇CPU使用率。 我使用微型實例加上300GB安裝驅動器多年來一直使用高飛,沒有任何緩慢和問題。

另一個更好的解決方案是使用aws cli將文件直接傳輸到S3,而無需任何安裝技術。 您可以簡單地使用boto3編寫一個python腳本,首先下載pdf然后復制到S3然后在本地刪除該pdf(即使對於大文件也只需幾秒鍾)。

https://cloudkul.com/blog/mounting-s3-bucket-linux-ec2-instance/

S3存儲桶可以作為稱為S3fs的文件系統安裝在AWS實例中。 S3fs是一個FUSE文件系統,允許您將Amazon S3存儲桶安裝為本地文件系統。 它的行為類似於網絡連接驅動器,因為它不會在Amazon EC2上存儲任何內容,但用戶可以從EC2實例訪問S3上的數據。

除此之外的關鍵點是“網絡連接驅動器”,這意味着除了您需要安裝的依賴項之外,它不會使用EC2實例上的任何磁盤內存。

如果您使用的腳本是直接將文件復制到s3fs mount上的目錄,則它不會占用EBS上的任何空間。

如果腳本首先在本地復制sffs之外的任何地方,然后將其移動到s3fs,它仍然沒問題。 它只占用s3桶的空間。

如果腳本首先將本地pdf 復制到s3fs之外的任何位置,然后將其復制到s3fs。 它仍將在EBS上留下副本並占用那里的空間。 所以你需要檢查 - 你是在復制還是轉移到S3fs。 如果您要復制,請在成功復制后將其替換為移動或刪除。

因此,即使8 GB空間也應該足夠用於實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM