を使用してEC2 Linuxインスタンスにそれらを入れて、私は最善の方法であることを確認の考えることはできませんが、別の方法があります。はS3からファイルを取得し、ここでのJava
- はGetObjectを使用してJavaでのコンソールアプリケーションを作成します。 AWS Java SDKで提供されます。
- s3 syncを使用してください。
- SNS>ラムダを使用してください。
- REST APIを使用してください。
- SNS> HTTPS (Java Servlet)を使用します。
多くのファイルをLinuxインスタンスにプルダウンする必要があるため、パフォーマンスは重要です。
オプション1の問題は、何らかのポーリング動作が必要であることです。
オプション2を使用すると、定期的にこのコマンドを実行する必要がない場合や、ファイルを永久に同期して実行し続ける場合(b)一度だけ実行する場合、Javaプログラムでどのようにラップするのですか?また、私はJavaとLinuxが初めてです。これが.NetとWindowsの場合は、Windowsサービスを作成しますが、Java/Linuxに相当するものはわかりません。
オプション3はラムダが除外されているため、テーブルにはありません(ロングストーリー)。
これはパフォーマンス、保守性、およびスケーラビリティに関してこれを行う良い方法ですか?監視する必要があるS3バケットの数は、ファイルの頻度/サイズと同じように(増加する)変化します。ただ好奇心
おかげ
*私はオプション1と参照の問題は、私は場所にポーリング行動のいくつかの種類を持っている必要があるだろうということです* - なぜこれが問題ですか。? cron?またはJavaソリューションですか? –
要件をより明確に記述できますか?たとえば、S3からEC2へのデータを直ちに複製する必要があると言っていますか、または通常のバッチが受け入れられていますか?ああ、そして 'aws s3 sync'は一回限りで連続的ではありません。あなたは新しいファイルをコピーするために定期的なスケジュールでそれを実行しなければなりません。 –
@Scary Wombat:それは問題ではなく、私が扱わなければならないものです。私は処理されたファイルを追跡しなければならないと思っていましたが、linuxインスタンスにコピーした後に処理済みのバケツに移動することもできました。これがオプションの場合は、避けるべきことのヒントやポーリングを行うサンプルコードがありますか? JavaやLinuxに慣れていないので、どんな助けにも感謝しています。 – Pete