複数の EC2 インスタンス間でストレージを共有する際に問題に直面しています。負荷の高いジョブを実行する必要があるため、実行するには多くのインスタンスが必要です。一方では、1 つのサーバー インスタンスに接続された EBS ボリュームがあります。反対側には、ワーカー インスタンスがあります。このワーカー インスタンスの AMI を作成してから、この AMI の複数のインスタンス コピーを作成しました。すべて同じ VPC 上で実行されています。基本的に、サーバー インスタンスはジョブを送信し、ワーカーはジョブを実行しています。ワーカーがジョブを実行しているときに、次のような共有ストレージにいくつかのログ ファイルを保存したいと思います。
worker_1/logfile.log
worker_2/logfile.log
それを行うための最良の解決策は何ですか?
- 同じEBS ボリュームを複数のインスタンスにアタッチすることはできないと読みました。
- 私はGlusterFSを見ましたが、ここに私が見つけたものがあります:
「異なるアベイラビリティーゾーンにある 2 つのサーバーで概念実証を実現する前に、ext4 ファイルシステムを使用して EBS ボリュームをレプリケートします。GlusterFS を使用すべきでないケースをリストします。ログなど、複数のサーバーから同時に書き込まれるシーケンシャル ファイル。ロックログを GlusterFS 内に保存すると、システムが深刻な問題を引き起こす可能性があります。理想的な解決策は、ログをローカルに保存し、S3 を使用してアーカイブすることです。必要に応じて、S3 に保存する前または後に複数のサーバー ログを統合できます。」
- 最後に、s3fsでマウントされたS3 バケットも確認しましたが、これも適切なオプションではないことがわかりました。
「s3fs でファイルを部分的に更新することはできないため、1 バイトを変更するとファイル全体が再アップロードされます」 . 次に、小さな増分変更を行いたい場合は、明確にノーです。s3fs を使用することはできません - S3 はそのようには機能せず、ファイルを段階的に変更することはできません。」
では、私の問題を解決し、従業員がログ ファイルを共有ストレージに書き込めるようにするにはどうすればよいでしょうか?
ご協力いただきありがとうございます!
ロマンゾ