2016-06-23 26 views
1

複数のWindows EC2インスタンス上の単一のディレクトリにS3バケットを同期したいと思います。ファイルがバケットからアップロードまたは削除されると、すぐにすべてのインスタンスからプッシュまたは削除されます。新しいインスタンスが頻繁に追加/削除されます(週に複数回)。ファイルは頻繁にアップロード/削除されます。ファイルサイズは最大2GBです。これを解決するAWSのサービスや機能は何ですか?AWS S3バケットをEC2インスタンスと同期

+1

S3を変更してイベントを発生させるためにSNSを使用して、インスタンスがオブジェクトをs3 - http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.htmlから同期させるようにすることができます。 SNSイベント/通知は変更については知っていますが、インスタンス上でファイルをプッシュ/伝播できませんが、それらのインスタンスに対して通知を送信して新しいオブジェクトをs3から取得することができます –

+0

ありがとうフレデリックSNS通知は、通知を送信するインスタンスのリストを維持する必要がありますか? – PrestonM

+0

アカウントから実行中のすべてのインスタンスにファイルを「送信」したい場合は、aws APIを使用してリストを取得できるので、リストを維持する必要はありません –

答えて

1

あなたが説明したことに基づいて、私はこの問題に対する以下の解決策を提案します。

S3変更通知については、SNSのトピックを作成する必要があります。次に、あなたのマシンからこのトピックを購読するスクリプトが必要です。このスクリプトは、S3からの変更に基づいてマシン上のファイルを更新します。基本的なCRUD操作をサポートする必要があります。

S3の内容を上記のaws-cliを使用して起動するときに、このスクリプトを実行してからS3の内容をマシンに同期させます。

0

はい、私はaws cli s3 "sync"コマンドを使用して、ローカルサーバーのコンテンツをS3の変更で更新した状態に保ちました。ローカルターゲットディレクトリのファイルをバケットまたはプレフィックスと同期させることができます。 http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

-1

編集:EC2 &先:バケツこれ以下の答えがS3バケット、ソースとEC2を同期することです。それが唯一の1つのインスタンスのだったら

は、その後のみaws cli sync--deleteオプション付き)は、両方のために働いされていたであろう:S3バケットにファイルを入れて削除します。

ただし、ここでは複数のインスタンスの場合、aws s3 sync--deleteオプションを使用すると問題が発生します。単にそれを説明するために

は、ファイルa.jpg & バケツに同期するb.jpgでインスタンスI1を検討してください。 今度はCRONジョブがファイルをS3バケットと同期しました。

は、今、私たちは、ファイルc.jpg & D.JPGを持っているインスタンスI2を持っています。 だから、このインスタンスのCRONジョブが実行されるとき、それはD.JPG & ファイルにc.jpgを置き、また、それらのファイルが存在しないため、ファイルにa.jpg & b.jpgを削除しますインスタンス内I2

  1. 同期のすべてのインスタンス間のすべてのファイル(コストがかかり、完全にS3の目的を削除):だから私たちは二つのアプローチを持っている問題を修正するために

  2. --deleteオプションのないファイルを同期し、別途削除を実装します(aws s3 rmを使用)。
+2

私はあなたの質問を逆に解釈したと思います。ファイルはバケット**から** ec2インスタンスに同期されます。 – PrestonM

+0

ああ、申し訳ありませんが、私の悪い。一般的に人々は別の方法が必要です。 –

関連する問題