したがって、単純な状況では、インスタンスが 1 つしかない場合、そのインスタンスにマウントされた EBS ボリュームにデータを保存できます。例 /mnt/db
ただし、スケーリングして複数のインスタンス (静的スケーリングまたは動的スケーリング) を使用する場合、どのように機能しますか?
1 つの EBS は 1 つのインスタンスにしかアタッチできないため、複数のインスタンスがある場合、インスタンスごとに EBS ボリュームをアタッチする必要があるということですか? その場合、各インスタンスの EBS ボリュームのデータは異なります。
すべてのインスタンスが 1 つのボリューム (データ ストレージとして) にアクセス (R & W) することは明らかです。ボリューム内のデータは常に増加し、ダウンタイムはありません。
解決策は何ですか?デバイス (EBS) をマウントせず、データにアクセスするために呼び出すだけの方法はありますか?
1) 各インスタンスに独自の EBS ボリュームがある場合、時間間隔 (たとえば 1 時間) ごとに、すべてのインスタンスが EBS ボリュームをアンマウントしてデタッチし、新しいボリュームをアタッチします。次に、デタッチされたばかりのすべての EBS ボリュームをマウントし、すべてのデータを集約する 1 つの強力なインスタンスがあります。2) または 1) と同様に、デタッチしてアタッチする代わりに、すべてのインスタンスのすべてのボリュームでスナップショットを作成します。次に、強力なインスタンスがスナップショットからのデータを集約します。結果を別の EBS または S3 に保存します。
これらの 2 つのアプローチは機能しているように見えますが、多くの作業が必要です。この問題にアプローチするよりスマートな方法はありますか? ありがとう。
- ところで、パフォーマンスの問題で、インスタンスが S3 にデータを書き込むことができません。:)
ああ、これはどうですか 3) まず、すべてのインスタンスが独自の EBS を持ち、EBS にデータを書き込みます。その後、1 時間ごとにデータが S3 に送信されます。その後、別のインスタンスがそれらを集約します。