140

現在、1 つの mysql サーバーとファイル サーバーにアクセスする複数の Web サーバーを使用しています。クラウドへの移行を検討していますが、これと同じセットアップを使用して EBS を複数のマシン インスタンスに接続できますか、それとも別の解決策はありますか?

4

11 に答える 11

137

更新 (2015 年 4 月) : このユースケースでは、新しいAmazon Elastic File System (EFS)を検討する必要があります。これは、希望どおりに複数接続できるように設計されています。EFS と EBS の主な違いは、異なる抽象化を提供することです。EFS は NFSv4 プロトコルを公開しますが、EBS は raw ブロック IO アクセスを提供します。

以下に、raw ブロック デバイスを複数のマシンに安全にマウントすることができない理由についての私の最初の説明を示します。


元の投稿 (2011):

複数のインスタンスにアタッチされた EBS ボリュームを取得できたとしても、_REALLY_BAD_IDEA_ になります。Kekoa の言葉を引用すると、「これは、2 台のコンピューターでハード ドライブを同時に使用するようなものです」

なぜこれが悪い考えなのですか? ... ボリュームを複数のインスタンスにアタッチできない理由は、EBS が「ブロック ストレージ」の抽象化を提供し、その上で顧客が ext2/ext3/etc のようなファイル システムを実行するためです。これらのファイルシステム (ext2/3、FAT、NTFS など) のほとんどは、ブロック デバイスに排他的にアクセスできることを前提として書かれています。同じファイルシステムにアクセスする 2 つのインスタンスは、ほぼ確実に破損とデータの破損に終わります。

つまり、EBS ボリュームの二重マウントは、複数のマシン間でブロック デバイスを共有するように設計されたクラスター ファイルシステムを実行している場合にのみ機能します。さらに、これでも十分ではありません。このシナリオで EBS をテストし、他の共有ブロック デバイス ソリューションと同じ一貫性保証を提供することを確認する必要があります。つまり、Dom0 カーネル、Xen レイヤー、および DomU カーネル。そして、複数のクライアント間でブロックを同期する際のパフォーマンスに関する考慮事項があります。クラスター化されたファイルシステムのほとんどは、ベストエフォート型のコモディティ イーサネットではなく、高速の専用 SAN で動作するように設計されています。とても単純に聞こえますが、あなたが求めているのは非常に重要なことです。

または、データ共有シナリオが NFS、SMB/CIFS、SimpleDB、または S3 であるかどうかを確認してください。これらのソリューションはすべて、共有ブロック デバイス サブシステムを持たずにファイルを共有するための上位層プロトコルを使用します。多くの場合、そのようなソリューションは実際にはより効率的です。

あなたの場合、複数のWebフロントエンドからアクセスされる単一のMySqlインスタンス/ファイルサーバーを引き続き使用できます。そのファイルサーバーは、そのデータを EBS ボリュームに保存できるため、夜間のスナップショット バックアップを作成できます。ファイルサーバーを実行しているインスタンスが失われた場合、EBS ボリュームをデタッチして新しいファイルサーバー インスタンスに再アタッチすると、数分でバックアップして実行できます。

「ファイルシステムとしてS3のようなものはありますか?」- はいといいえ。はい、 「問題なく」動作するs3fsなどのサードパーティ ソリューションがありますが、内部では、読み取り/書き込みごとに比較的高価な Web サービス呼び出しを行う必要があります。共有ツール ディレクトリの場合、うまく機能します。HPC の世界で見られるようなクラスター化された FS の使用法については、チャンスではありません。これを改善するには、NFS などのバイナリ接続指向プロトコルを提供する新しいサービスが必要です。合理的なパフォーマンスと動作を備えたこのようなマルチマウント ファイルシステムを提供することは、EC2 の優れた機能アドオンになります。私は長い間、Amazon がそのようなものを構築することを支持してきました。

于 2010-10-13T00:04:59.637 に答える
85

アップデート(2020年) できるようになりました!

これは、同じアベイラビリティ ゾーン内の AWS Nitro で実行されている最新のインスタンス タイプで可能になりました。いくつかの注意点がありますが、これは、EBS の速度が必要で、EFS が実行できない特定のユース ケースに最適です。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html


元の投稿 (2009)

いいえ、これは 2 台のコンピューターでハード ドライブを使用するようなものです。

共有データが必要な場合は、すべてのインスタンスがアクセスできるサーバーをセットアップできます。すべてのインスタンスにシンプルなストレージ領域が必要な場合は、Amazon の S3 ストレージ サービスを使用して、分散型でスケーラブルなデータを格納できます。

クラウドに移行しても、まったく同じセットアップを使用できますが、ファイル サーバーを S3 に置き換えるか、すべてのインスタンスをファイル サーバーに接続することができます。

多くのオプションがありますが、インスタンス間でハード ドライブを共有することはおそらく最適なオプションではありません。

于 2009-05-08T19:13:30.973 に答える
14

いいえ、EBS ドキュメントによると、「ボリュームは一度に 1 つのインスタンスにのみアタッチできます」。

現在、共有ストレージをどのように使用していますか? ファイルサーバーからファイルを提供するだけの場合、Web サーバーがそれらのファイルを提供するのではなく、ファイルサーバー上のプロセスに特定の要求をプロキシできるようにシステムをセットアップすることを検討しましたか?

于 2009-05-26T20:40:54.087 に答える
5

複数の Web サーバーが MySQL サーバーとファイル サーバーにアクセスすることは、AWS では通常のことです。上記のアーキテクチャで従うべきベスト プラクティスの一部は次のとおりです。

ポイント 1) EC2 上の MySQL は、AWS で非同期/準同期モードのマスタースレーブとしてセットアップできます。高性能DBにはRAID 0のEBS-OPT+PIOPSを推奨

ポイント 2) または、Amazon RDS + マルチ AZ モードを使用することもできます。読み取りスケーリングの場合、複数の RDS リードレプリカを MySQL RDS にアタッチできます。

ポイント 3) 複数の EC2 に同時に EBS ボリュームをアタッチすることはできません。EBS を使用して、Amazon EC2 で GlusterFS に基づくファイル サーバーを作成できます。複数の Web サーバーが、AWS インフラで同時に 1 つの GlusterFS と通信できます。

ポイント 4) S3 をファイル ストアとして統合できるアプリケーションの場合、アーキテクチャに安定性をもたらすため優先されます。アプリケーションから S3fuse などのツールを使用して S3 にアクセスすることもできます。

于 2013-04-12T14:56:22.047 に答える
4

できないと確信していますが、EBSのクローンを作成して、別のインスタンスにアタッチすることはできます。

これは、固定データセット、または「実際の」データでのテストに役立ちますが、単一のブロックストアで複数のインスタンスを操作することはできません。

于 2009-05-08T18:52:08.450 に答える
2

IT の世界には、Clustered Filesystem、Redhat GFS、Oracle OCFS2、Veritas CFS などと呼ばれるものがあります。

于 2011-02-10T22:33:55.377 に答える
0

他のインスタンスでは、ボリュームとそのボリュームへのsshfsを使用して1つのインスタンスを作成しないのはなぜですか?

于 2012-10-19T18:34:35.387 に答える
-3

AWS の複数のサーバーで 1 つのドライブを完全に使用できます。sshfs を使用して外部ドライブをマウントし、EC2 の複数のサーバーと共有しています。

1 台のドライブを複数のサーバーに接続する必要があったのは、すべてのバックアップをローカルに格納する前に 1 か所に保管するためです。

于 2014-08-21T01:21:17.620 に答える