web-dev-qa-db-ja.com

複数のEC2インスタンスにわたるEBSボリュームのM-MまたはM-Sレプリケーション

複数のEC2インスタンス間で、最大20GBのEBSバックアップファイルシステムを200Kファイルで共有したいと思います。マスターマスターが理想的ですが、マスタースレーブソリューションにも満足しています。

一般的なLinuxソリューションは [〜#〜] drbd [〜#〜] を使用することになることは知っていますが、AWSに固有のツールはありますか?

ところで。 1年以上前に尋ねられた同様の質問を見つけました: AWSノード間でEBSを共有/複製する

2
vartec

コンピューティングモデルとしてのブロックデバイスは、複数のデバイスからのアクセス用に設計されていません。このハードウェアモデルのEBS抽象化では、上にあるコンピューティングインスタンスのファイルシステムドライバーが同じであるため、ゲームのルールを変更することはできません。 基礎となるレイヤーの読み取りアクセスは、システム上のソフトウェアがブロックデバイスで実行することを期待していることに干渉しないため、スナップショットのような魔法しか実行できません。 ボリュームが接続されている1つのEC2インスタンス以外のシステムがディスクのビットを直接変更しようとすると、ファイルシステムは自己破壊します。

EBSで特別にできることは、スナップショットを使用してドライブのクローンを作成し、各デバイスのクローンを個別のインスタンスにアタッチすることだけです。これは、定期的な更新のみの比較的静的なデータセットがあり、多くのインスタンスから食べるために高速なローカルアクセスが必要な場合に役立ちます。

共有アーキテクチャを1レベル上にファイルシステムに移動する必要があります。これを行うには、nfsなどの共有ファイルシステムを含む、多くのツールがあります。もちろん、パフォーマンスは、デバイスを接続してファイルサーバーとして使用するEC2インスタンスのパフォーマンスに制限されます。

これらの2つのアプローチよりも微妙なものが必要な場合は、さまざまな分散、複製、またはクラスターファイルシステムを調べる必要があります。また、DRDBのような低レベルの同期ツールがありますが、ブロックレベルの同期システムよりもファイルシステムレベルが必要になる可能性が高いことをお勧めします。

追加のクレジットについて:この記事のように、ブロックデバイスが使用するのに適切なモデルであるかどうかについて最近行われている話のいくつかをチェックしてください: 魔法のブロックストア:抽象化が失敗したとき

3
Caleb