複数のEC2ノード(Web /アプリサーバー)で単一のEBSストレージを使用したいと思います。スナップショット共有に関するいくつかの記事を読みましたが、それは私たちが必要としているものにはあまり適していません。
DBレコードの添付ファイルを保存するためにファイルシステムを使用しているため、そのような添付ファイルが1つ作成された場合、すべてのノードですぐに利用できるようにする必要があります(サービスを提供するため)。これまでのところ、NFSだけが実行可能であるように見えますが、構成と保守は面倒です。
別のオプションは、代わりにそれらの添付ファイルをS3に保存することですが、それではそのデータの分析を行う必要がなくなります。
これは、AWSでスケーリングするときに非常に一般的な問題である必要がありますが、どのような解決策がありますか?
インスタンス間でEBSを直接共有する方法はまだありません。だが!選択肢があります:
最もスケーラブルな方法:S3。最も複雑なもの:分散ファイルシステム(GlusterFSなど)。ソリューションの中間:lyncdノードとスレーブノードがインストールされた1つのマスターノード。 lsyncdは、すべてのファイル更新をほぼリアルタイムモードで管理します。このバリアントの欠点は、すべてのファイル更新操作をマスターノードで実行する必要があることです。
小さなプロジェクト(1〜5ノード)の場合はlsyncdソリューションについて考え、大きなプロジェクトの場合はS3に進みます。
直接ファイルシステムアクセスを使用せず、代わりに複数のEC2インスタンスからアクセス可能なサービスの背後にDBレコードの添付ファイルを保存するのはどうですか? MySQLデータベース、またはCassandraのような「NoSQL」オプションが適切な候補です。
添付ファイルをS3に保存すると、データの分析ができなくなる理由がわかりません。それについて詳しく教えていただけますか。