web-dev-qa-db-ja.com

S3をストレージとして使用するFTPサーバー

Amazon S3ストレージとしてストレージを持つftpサーバー(windows/linux/macを使用-心配ありません)を作成しようとしています。ここで、S3はFTPをネイティブにサポートしていないため、解決策として何らかのハックが必要になることに注意してください。

私はこのトピックについて調査し、さまざまな解決策を見つけましたが、それらのいずれかであるとは本当に確信していません。それらは:

  1. Amazon EC2 + TntDrive
  2. SMEの使用
  3. EC2インスタンスを作成し、FTPサーバーをインストールし、S3をローカルファイルシステムとしてマウントします。

私はセキュリティと柔軟性/滑らかさの観点から最良の解決策を見つけようとしています。どの解決策が最善だと思いますか、そしてどのように上記を達成するのですか?

編集1:

私は次の解決策に非常に興味があります。これが私が収集したものです:EBSボリュームをEC2インスタンスに接続し、そのインスタンスでFTPサーバーを実行できます。 FTPサーバーを接続されたEBSボリュームにポイントし、ファイルをFTPでアップします。ファイルはEBSボリュームに直接書き込まれます。中断された転送の再開をサポートできるFTPサーバーとクライアント(FileZillaなど)を使用することをお勧めします。上記のすべてを想定した場合、私は正しいですか?

また、誰でもこれを達成する方法について段階的な手順を与えることができますか?

9
Scooby

答えは本当に異なります。

まず、FTPはひどく安全でないプロトコルだと言わせてください。このルートを進む前に、正当な理由があることを確認してください。ユーザーフレンドリーなS3ツールがたくさんあります。

次に、これらのソリューションのnoneはS3のようにスケーリングすることに注意してください。各ソリューションには、サポートできるファイルの数、ファイルのサイズ、およびファイルが頻繁に更新された場合にどうなるか(つまり、間違ったバージョンが保存される可能性がある)に任意の制限があります。 S3ファイルシステムは最初はきれいに見えますが、問題が発生すると、トラブルシューティングが難しく(一般的なファイルシステムのエラーメッセージしか返さない)、修正が難しくなります。

いくつかのアイデア:

  • 本当にクラウドバックアップが必要な場合は、S3の代わりにEBSを使用することを検討してください。 EBSドライブをEC2ボックスに接続するか、ローカルボックスで Storage Gateway を実行します。

  • 読み取り/書き込みパターンと遅延、ファイルのサイズなどによっては、代わりにs3syncのようなものを使用する場合があります。すべてのファイルをダウンロードしてから、定期的にS3に双方向の再同期を実行して、新しいファイルを取得するか、S3で削除されたファイルを削除します。

  • アップロードのみをサポートする必要がある場合は、新しいファイルをS3に定期的にアップロードしてから削除するcronジョブを用意してください。

9

何を試すことができますか.. s3fs を使用して、AmazonEC2インスタンス内のディレクトリにs3バケットをマウントします-少し使用して:Sudo s3fs -o allow_other,uid=12345,gid=12345 my-bucket my-ftp-directory/

次に、vsftpdまたはその他のFTPプログラムをセットアップし、ユーザーを作成して、ホームディレクトリをmy-ftp-directoryのホームディレクトリに割り当てます。このユーザーをこのディレクトリにchrootしてから、ユーザーの資格情報とEC2インスタンスのIPを使用してFTPで試行します。まだ試していませんが、この手法を使用してバケットをDrupalのパブリックファイルディレクトリにマウントした後、うまくいきました!

5
williamsowen

次のものも使用できます: FTP 2 Cloud

FTP 2 Cloudがベータ版である間:

it's free.
there are no copy limits.
each account has 100MB storage space.
supports FTP to Amazon S3 copy.
supports FTP to Rackspace copy.
you use at your own risk.
it needs your love to get the Word out.
2
warmth