LinuxでAmazon S3バケットをローカルディレクトリとしてマウントする場合、s3fsはどの程度安定していますか?需要の高い実稼働環境に推奨または安定していますか?
より良い/類似したソリューションはありますか?
更新: EBSを使用し、NFSを介して他のすべてのAMIにマウントする方が良いでしょうか?
s3fsには良い記事があります 、これを読んだ後、EBSシェアに頼りました。
S3fsを使用する際のいくつかの重要な考慮事項、すなわちS3の固有の制限に関連するものを強調しています。
したがって、s3fsが実行可能なオプションであるかどうかは、保存する内容によって異なります。たとえば、写真を保存している場合、ファイル全体を書き込むか、ファイル全体を読みたい場合は、ファイルをインクリメンタルに変更しないでください。 API直接?
アプリケーションデータ(データベースファイル、ログファイルなど)について少しだけインクリメンタルな変更を行う場合は、S3 Justが機能しないため、インクリメンタルに変更することはできません。
上記の記事では、S3上に仮想ファイルシステムを実装することでパフォーマンスの問題を回避する同様のアプリケーション- s3backer について説明しています。これはパフォーマンスの問題を回避しますが、それ自体にいくつかの問題があります。
EC2インスタンスから共有されたEBSマウントドライブに頼りました。ただし、最もパフォーマンスの高いオプションですが、1つの大きな問題があります。EBSマウントNFS共有には、独自の問題-単一障害点があります。 EBSボリュームを共有しているマシンがダウンすると、共有にアクセスするすべてのマシンでアクセスできなくなります。
これは私が一緒に暮らすことができたリスクであり、最終的に選択したオプションでした。これがお役に立てば幸いです。
これは古い質問なので、過去1年間の経験をS3FSで共有します。
最初は、多くのバグとメモリリークがありました(2時間ごとに再起動するcronジョブがありました)が、最新のリリース1.73では非常に安定しています。
S3FSの最大の利点は、心配する必要のないものが1つ減り、パフォーマンスのメリットが無料で得られることです。
S3リクエストのほとんどは、PUT(〜5%)およびGET(〜95%)になります。後処理が必要ない場合(サムネイルの生成など)。後処理が必要ない場合は、最初にWebサーバーにアクセスしてS3に直接アップロードしないでください(CORSを使用)。
サーバーにアクセスしていると仮定すると、おそらく画像に対して後処理を行う必要があることを意味します。 S3 APIを使用すると、サーバーにアップロードしてから、S3にアップロードします。ユーザーが切り取りを希望する場合は、S3から再度ダウンロードし、サーバーに再アップロードし、切り取り、S3にアップロードする必要があります。 S3FSとローカルキャッシュを有効にすると、このオーケストレーションが自動的に処理され、S3からのダウンロードファイルが保存されます。
キャッシュでは、EC2の一時ドライブにキャッシュする場合、パフォーマンスの利点が得られ、何も心配することなくキャッシュを消去できます。ディスク領域が不足しない限り、キャッシュを削除する必要はありません。これにより、検索やフィルタリングなどのトラバース操作がはるかに簡単になります。
私が望んでいることの1つは、S3(RSyncスタイル)との完全同期です。これにより、エンタープライズ版のDropBoxまたはGoogle Drive for S3になりますが、それに伴うクォータと料金を争う必要はありません。