2016-11-11 4 views
0

を使用してEC2 Linuxインスタンスにそれらを入れて、私は最善の方法であることを確認の考えることはできませんが、別の方法があります。はS3からファイルを取得し、ここでのJava

  1. GetObjectを使用してJavaでのコンソールアプリケーションを作成します。 AWS Java SDKで提供されます。
  2. s3 syncを使用してください。
  3. SNS>ラムダを使用してください。
  4. REST APIを使用してください。
  5. SNS> HTTPS (Java Servlet)を使用します。

多くのファイルをLinuxインスタンスにプルダウンする必要があるため、パフォーマンスは重要です。

オプション1の問題は、何らかのポーリング動作が必要であることです。

オプション2を使用すると、定期的にこのコマンドを実行する必要がない場合や、ファイルを永久に同期して実行し続ける場合(b)一度だけ実行する場合、Javaプログラムでどのようにラップするのですか?また、私はJavaとLinuxが初めてです。これが.NetとWindowsの場合は、Windowsサービスを作成しますが、Java/Linuxに相当するものはわかりません。

オプション3はラムダが除外されているため、テーブルにはありません(ロングストーリー)。

これはパフォーマンス、保守性、およびスケーラビリティに関してこれを行う良い方法ですか?監視する必要があるS3バケットの数は、ファイルの頻度/サイズと同じように(増加する)変化します。ただ好奇心

おかげ

+1

*私はオプション1と参照の問題は、私は場所にポーリング行動のいくつかの種類を持っている必要があるだろうということです* - なぜこれが問題ですか。? cron?またはJavaソリューションですか? –

+2

要件をより明確に記述できますか?たとえば、S3からEC2へのデータを直ちに複製する必要があると言っていますか、または通常のバッチが受け入れられていますか?ああ、そして 'aws s3 sync'は一回限りで連続的ではありません。あなたは新しいファイルをコピーするために定期的なスケジュールでそれを実行しなければなりません。 –

+0

@Scary Wombat:それは問題ではなく、私が扱わなければならないものです。私は処理されたファイルを追跡しなければならないと思っていましたが、linuxインスタンスにコピーした後に処理済みのバケツに移動することもできました。これがオプションの場合は、避けるべきことのヒントやポーリングを行うサンプルコードがありますか? JavaやLinuxに慣れていないので、どんな助けにも感謝しています。 – Pete

答えて

1

- あなたは、Javaおよび/またはLinuxに慣れていないと述べたが、あなたは問題を解決する必要があります。 javaの代わりにPythonを使用するのはオプションですか?私の経験では、外部パッケージの依存関係がJava用のものよりも地面から離れたPythonプロジェクトを入手する方が簡単で迅速です。

あなたと他の人が上記のソリューションのハイブリッド使用することができます:Pythonスクリプトに 2. Pythonスクリプトを呼び出す 1. cronジョブは 3.別のS3の呼び出しのどちらかに下りデータを同期する「S3の同期」を使用しますsync'dファイルを別のバケツ(またはフォルダ)に移動するか、それらのファイルの名前を「処理済み」とマークするようにその場でファイル名を変更してください。

これは良い方法です。私は上記(Pythonで)上記のようなものを試し、あなたのアイデアのプロトタイプにテストバケットまたは2を使用することをお勧めします。数分の速い「ポーリング」スケジュールに固執すれば、数時間以内に回答を得ることができます。 HTH

+0

ありがとう。私はちょうどhttp://stackoverflow.com/questions/24102666/local-access-to-amazon-s3-bucket-from-ec2-instance?rq=1を見ていたので、s3fs-fuseとbotoは次のようなオプションであることがわかりました。よく私たちは.netの開発者だから、Javaを使うように頼んだので、Pythonを知っている間は、チームの誰もそれをサポートすることができないため、実行可能なオプションになるとは思わない。 – Pete

1

ラムダ関数を使用して、S3 BucketからSSH経由でEC2にファイルをコピーします。 トリガー:S3オブジェクト作成

は、このリンクをチェックしてください:https://privatedock.wordpress.com/2017/08/21/s3-bucket-ec2-directory-sync-using-lambda/

+0

外部リソースへのリンクが推奨されていますが、リンクの周りにコンテキストを追加して、仲間のユーザーには何か、なぜそれがあるのか​​が分かります。ターゲットサイトに到達できない場合や、永続的にオフラインになる場合は、常に重要なリンクの最も関連性の高い部分を引用してください。 [回答方法​​](https://stackoverflow.com/help/how-to-answer)を参照してください。 – SilverNak

関連する問題