web-dev-qa-db-ja.com

AmazonEC2インスタンスの同期

CorosyncとPacemakerを使用して2つのサーバー間で同期したいのですが、サーバーは2つ(またはそれ以上)のEC2インスタンスであり、Ubuntu16.04がインストールされています。私はこれに続いてそれをしていました 記事 、しかし私はprivate_binding_IP_addressのステップで立ち往生しています私はインターネットで検索しますが運がありません、私が知りたいのは次のとおりです:

  • CorosyncとPacemakerはUbuntu16.04で動作しますか?
  • CorosyncとPacemakerはAmazonEC2(Ubuntu)インスタンスで動作しますか?
  • それを行う方法(2つ以上のAmazon EC2を一緒に同期する)?

ありがとう

[〜#〜] update [〜#〜]:EC2のHAクラスターを作成する主な目的は、2つ以上のNextCloudをインストールすることですストレージとデータベース用のEC2インスタンス上のサーバーでは、すべてのEC2インスタンスに対して、使用するNextCloud、プライマリストレージとしてのS3バケット、データベース用のRDSを構成できます。 NextCloudインスタンスはすでにインストールされ、S3バケットとRDSに構成されています。これで、2つのEC2を同期するために、 article に従いましたが、ステップでスタックします Corosyncクラスターを構成しますバインディングIPアドレスであるbindnetaddrを取得できません。両方のサーバーでコマンドifconfig-aを実行しましたが、記事で指定された2つのIPを実行しました同じではなかった

UPDATE2AWSを見ました 記事 この記事では、EC2間でHAを作成する方法について説明しています。つまり、1つのインスタンスはactive、もう1つはstandby、私がする必要があるのはすべてのインスタンスを正常な時間にアクティブにし、1つはアクティブではなく、他はスタンバイにします。アプリケーションレベルで同期すると言うことができます。3つのNextCloudサーバーがある場合、ユーザーは3つのNextCloudサーバーにリクエストを送信でき、リクエストは3つによって処理されますサーバー。 AWS ELB(Elastic Load Balancer)に疲れましたが、上記のAWSの記事で説明したシナリオと同じように動作していたため、CorosyncとPacemakerに移行しましたが、EC2でCorosyncを使用する方法がわかりませんでした。

2
ibr

CorosyncとPacemakerはUbuntu16.04で動作しますか?

はい。 UbuntuはCorosyncとPacemakerfor Xenial(16.04)をパッケージ化しており、次の簡単なコマンドでインストールできます。# apt install corosync pacemaker

CorosyncとPacemakerはAmazonEC2(Ubuntu)インスタンスで動作しますか?

技術的にはそうですが、注意すべきコーナーケースがたくさんあります。私が抱えている最大の懸念は、標準のEC2インスタンス間のネットワークのパフォーマンス/信頼性です。

Corosyncはノード間の通信を処理し、ノードがクラスターから失われるタイミング(ノード障害、ネットワーク障害など)を検出します。 AWSのネットワークは(管理者の観点から)一種のブラックボックスであるため、そのネットワークの信頼性を評価することは困難です。 「オンプレミス」クラスターでは、このネットワークは通常、ノード間の直接接続のペア、またはスタックスイッチであるため、信頼性とパフォーマンスが高くなります。 AWSのネットワークの信頼性やパフォーマンスが低いと言っているわけではありませんが、非常に共有されており、クロスケーブルのセットよりも確かに複雑です。 Corosyncのネットワークが中断されると、たとえ1000ミリ秒(1秒)であっても、ノードが停止していると宣言されます(2ノードクラスターでは、デフォルトのタイムアウトがあります)。私はこれが時々起こることを期待し、それから回復する方法を知っています。

そうは言っても、AWSで「クラスターインスタンス」を取得できるようです。これは、ノード間の低遅延/高性能ネットワークを宣伝しています。これは、私が抱えている主な懸念に対処しているように見えるので、おそらくあなたが使いたいものです。

選択するインスタンスに関係なく、Pacemakerは、STONITHを有効にして構成する必要があります。これにより、ノードがオフラインになったとき、またはノードのネットワークが中断されたときに、クラスターの他の部分からフェンスで保護されます。 STONITHは、クラスターノードを不明な状態にし、それを既知の状態(電源オフ)にするフェンシングの形式です。 STONITHは、環境/ハードウェア/ハイパーバイザーに大きく依存するため、オンラインで見つけるほとんどのチュートリアルでは無視されますが、適切に構成されたHAクラスターの最も重要な部分の1つです。

ClusterLabのgitにAWS用の新しいフェンスエージェントがあるようです: https://github.com/ClusterLabs/fence-agents/blob/master/fence/agents/aws/fence_aws.py

それを行う方法(2つ以上のAmazon EC2を一緒に同期する)?

その部分は少し曖昧すぎて正確に答えることができません。ディレクトリ、データベース、ボリュームの同期について話しているのですか、それとも何ですか?あなたがあなたの質問をより具体的に更新するならば、私は私の答えを更新します;)

3
Matt Kereczman