7

Web アプリを EC2 にデプロイする予定です。いくつかの Web サーバー インスタンスがあります。1 つのプライマリ データベース インスタンスがあります。フェールオーバー データベース インスタンスが 1 つあります。プライマリ データベース インスタンスに障害が発生したときに、Web サーバーをフェイルオーバー データベース インスタンスの IP にリダイレクトする戦略が必要です。

接続文字列で Elastic IP を使用できることを望んでいました。ただし、Web サーバーは Elastic IP にアクセス/ping できません。問題を解決するためのいくつかのブルートフォースのアイデアがあります。ただし、可能な限り最もエレガントなソリューションを見つけようとしています。

私はすべての .Net と SQL Server を使用しています。接続文字列は暗号化されています。

何らかの形の自動化または DNS 構成を使用して、EC2 でデータベース インスタンスをフェイルオーバーするための戦略を持っている人はいますか?

私にお知らせください。

4

5 に答える 5

1

http://alestic.com/2009/06/ec2-elastic-ip-internal

ElasticIPパブリックDNSの使用方法を説明します。

于 2009-12-19T20:52:21.597 に答える
0

接続文字列にはこの可能性があるといつも思っていました

これは、 How to add Failover Partner to a connection string in VB.NETから取得したものです (ただし、まだテストされていません) 。

ADO.NET または SQL Native Client を使用してミラーリングされているデータベースに接続すると、データベース ミラーリングのフェールオーバーが発生したときに、アプリケーションでドライバーの機能を利用して接続を自動的にリダイレクトできます。接続文字列で最初のプリンシパル サーバーとデータベース、およびフェールオーバー パートナー サーバーを指定する必要があります。

Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;
Initial Catalog=myDataBase;Integrated Security=True;

もちろん、データベース ミラーリングを使用して接続文字列を書き込む方法は他にもたくさんあります。これはフェールオーバー機能を示す 1 つの例にすぎません。これを、利用可能な他の接続文字列オプションと組み合わせることができます。

于 2010-12-09T00:18:30.757 に答える
0

EC2 を使用したことはありませんが、次のいずれかを行う必要があります。

(a)IPを切り替える間、フロントエンドを定義したカスタムメンテナンスモードにします。また、フロントエンドに必要な手順を実行させて、以前のサーバーがダウンし、新しいサーバーがカスタム メンテナンス モードに移行したり終了したりするときに発生する可能性のあるデータの整合性とデータ損失の問題を管理します。

または、ゼロ ダウンタイム システムの場合:

(b) ダウンタイムゼロのフェイルオーバーをサポートするために、オブジェクト/リレーショナルおよびトランザクション レベルでシステムをゼロから設計します。どんなアプリケーションにもすぐに追加できるものではありません。

(c) 自動フェールオーバーのためにデータベース サポートを使用します。あなたのアプリケーションに適した SQL Server のフェールオーバー サポートが存在するかどうか、またはここで適切かどうかはわかりません。質問に「sql-server」タグを追加して、適切な対象者の検索を開始することをお勧めします。

Elastic IP が機能しない場合 (控えめに言っても奇妙に聞こえます。それについて EC2 に話すべきではありません)、使用する新しいデータベース IP をフロントエンドに指示すると同時に、使用する必要がある場合があります。メンテナンスモードから通常モードに移行します。

于 2009-12-19T15:37:20.870 に答える
0

ガレスの答えを広げるために、クラウド管理ソフトウェアは通常、この種の問題を解決します。RightScale はその 1 つですが、enStratus またはScalrを試すことができます(免責事項: 私は Scalr で働いています)。これらのツールは、次のようなフェイルオーバー ソリューションを提供します。

  • バックアップ: データを含む EBS ボリュームの自動スナップショットをスケジュールできます
  • フォールト トレラント データベース: 障害が発生した場合、スレーブがマスターに昇格し、障害が発生したマスターと新しいマスターが同じ AZ にある場合、またはボリュームのスナップショットが作成された場合、マウントされたストレージが切り替えられます。

独自のソリューションを構築する場合は、Scalr で使用されている以下に詳述するプロセスを複製できます。

  • 同じ AZ にスレーブはありますか? その場合は、昇格させ、EBS ボリューム (単一の AZ に制限されています) を切り替え、使用している可能性のある ElasticIP を切り替え、残りのスレーブのレプリケーションを再構成します。
  • そうでない場合、別の AZ に完全に複製されたスレーブはありますか? もしそうなら、それを宣伝してから、上記を実行してください。
  • 同じ AZ にスレーブがなく、別の AZ に完全に複製されたスレーブがない場合は、マスターのボリュームからスナップショットを作成し、このスナップショットを使用して、スレーブが実行されている AZ に新しいボリュームを作成します。次に、上記を実行します。
于 2012-03-26T23:35:18.113 に答える
0

少し余分なお金を払っても構わないと思っているなら、Rightscale のツールを見てみましょう。彼らはカスタム サーバー イメージとデータベース フェールオーバーを処理するサポート ツールを構築しました (他の多くのことの中でも)。 このリンクはMySQLでそれを行う方法を説明しているので、SQL Serverを使用していなくてもいくつかの原則を示してくれることを願っています.

于 2009-12-21T17:07:23.463 に答える