簡體   English   中英

AWS將S3存儲桶與EC2實例同步

[英]AWS Synchronize S3 bucket with EC2 instance

我想在多個Windows EC2實例上將S3存儲桶與單個目錄同步。 從存儲桶上傳或刪除文件時,我希望它可以立即從所有實例中推送或刪除。 將頻繁添加/刪除新實例(每周多次)。 文件也會經常上傳/刪除。 文件大小最大可達2GB。 AWS服務或功能可以解決這個問題?

根據您所描述的內容,我將針對此問題提出以下解決方案。

您需要為S3更改通知創建SNS主題。 然后你需要一個腳本,它將從你的機器訂閱這個主題。 此腳本將根據來自S3更改更新計算機上的文件。 它應該支持基本的CRUD操作。

運行此腳本,然后在使用上面提到的aws-cli開始時將S3內容同步到您的計算機。

是的,我使用了aws cli s3“sync”命令來保持本地服務器的內容隨S3更改而更新。 它允許本地目標目錄的文件與存儲桶或前綴同步。 http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

編輯: 以下答案是將EC2與S3 Bucket同步,來源:EC2和目的地:Bucket。

如果它只用於一個實例,那么只有aws cli sync (帶--delete選項)才能同時工作:將文件放入S3存儲桶並刪除。

但這里的情況是針對多個實例的 ,所以如果我們使用帶有--delete選項的aws s3 sync ,那就會出現問題。

要簡單解釋一下,請考慮將文件a.jpgb.jpg同步到Bucket的Instance I1 現在, CRON作業已將文件與S3存儲桶同步。

現在我們有Instance I2 ,它有文件c.jpgd.jpg 因此,當此實例的CRON作業運行時,它會將文件放在c.jpgd.jpg中 ,並刪除文件a.jpgb.jpg ,因為這些文件在實例I2中不存在。

因此,為了糾正這個問題,我們有兩種方法:

  1. 跨所有實例同步所有文件(成本高昂並完全取消S3的目的)。
  2. 同步文件而不使用--delete選項,並單獨實現刪除(使用aws s3 rm )。

暫無
暫無

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

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