AmazonEC2でフェイルオーバーを備えた2つのフォールトトレラント/冗長NFSサーバーを構築することに興味があります。私はDRBD、ハートビートなどのツール/テクノロジーに精通しています。Amazonは、プラットフォームを通じてこれを実現するための特定の方法を提供していますか?
適切な例としては、ファイルが別の冗長EBSに保持されている場合があります。障害が発生した場合、事前に構築されたAMIから新しいインスタンスが自動的に起動され、EBSボリュームがマウントされ、IPアドレスがシームレスに移行されます。
これは可能ですか?アマゾンよりも優れたプラットフォームはありますか?これを実現するために私たちが話している基盤となるアーキテクチャの概要を教えてください。
AWSでは、Elastic Load BalancerでGlusterFSを使用し、EC2インスタンスを自動スケーリングすることで目的を達成できるはずです。他のIaaSについてコメントすることはできません。
Amazonは、目的を達成するために必要なもののいくつかを提供し、残りを実装することを可能にします。
AmazonのEC2サーバーは基本的にVPSであり、Heartbeat/Corosync/Pacemakerなどをセットアップできます(前回チェックしたときは、ネットワークでブロードキャストを使用できませんが、ユニキャストを使用できます-udpu)。
あなたは、Amazonが(ある程度)別々に取り組む2つのアイデア、フォールトトレランスと冗長性について言及しています。
EC2には冗長性のための組み込みメカニズムはありませんが、探しているものに応じて、それを実現するいくつかの方法があります。
一方、フォールトトレランスは、Amazonプラットフォームによってより適切に提供されます。
上記に加えて、新しく起動したインスタンスにカスタムパラメータを渡したり、現在実行中のインスタンスに関する情報をかなり簡単に取得したりできます。これにより、セットアップの一部をスクリプト化できる場合があります(もちろん、AWSには次のAPIがあります。エラスティックIPアドレスの再マッピング、新しいインスタンスの起動、EBSボリュームのデタッチ/アタッチなど、提供されるすべてのアクションをスクリプト化できます。
「ファイルは別の冗長なEBSに保存されます... [その後]マウントされます」と説明しました。まず、EC2では、EBSボリュームは一度に1つのインスタンスにのみアタッチできます(したがって、データをインスタンスにコピーするには、EBSボリュームをアタッチする必要があります)。冗長性を維持するのはあなた次第です(EBSデバイスのRAIDアレイをセットアップするか、他のほとんどすべてを行うことができます)。ただし、問題は、インスタンスが実際にクラッシュしたときにEBSボリュームがデタッチされない場合があることです。ただし、EBSボリュームを強制的にデタッチでき(成功率は高くなりますが、完全ではありません)、使用中であってもEBSボリュームのスナップショットを作成できます(次に、から新しいEBSボリュームを作成し、を使用してAMIを起動できます。ただし、同じインスタンス上の複数のEBSボリューム間ではなく、複数のインスタンス間でデータのレプリカを維持することをお勧めします(リカバリ時間の短縮、柔軟性の向上など)。