DBをEC2上で動かす要件がある。この場合に高可用性を実現する方法は?

→異なるAZにEC2をデプロイ ⇒ 両方にDBインストール ⇒ EC2インスタンスをクラスターとして構成

・同じAWSリージョン内の異なるアベイラビリティゾーンに、それぞれ2つのEC2インスタンスを起動します。両方のEC2インスタンスにデータベースをインストールします。EC2インスタンスをクラスターとして構成します。データベースのレプリケーションを設定します

この選択肢が正解の理由は以下の通りです。

まず、異なるアベイラビリティゾーン(AZ)にEC2インスタンスを起動することで、単一のAZがダウンしてもデータベースのアクセスが可能です。各AZは独立したインフラストラクチャを持つため、一つのAZが破壊的なイベントを経験しても、他のAZは影響を受けずに稼働し続けます。

さらに、EC2インスタンスにデータベースをインストールし、それらをクラスターとして構成することで、データベースの可用性を高める事ができます。データベースのレプリケーションを設定することで、データは両方のインスタンス間で同期されます。これにより、あるEC2インスタンスで障害が発生した場合でも、他のインスタンスが引き続きデータベースへのアクセスを維持し、自動的にフェールオーバーすることが可能になります。

選択肢:アベイラビリティゾーンでEC2インスタンスを起動します。EC2インスタンスにデータベースをインストールします。Amazon Machine Image(AMI)を使用してデータをバックアップします。EC2の自動リカバリを使用して、破壊的なイベントが発生した場合にインスタンスをリカバリします

この選択肢が正しくない理由は以下の通りです。

単一のアベイラビリティゾーンでEC2インスタンスを起動し、AMIでバックアップを取る方法では、AMI作成とリストアに時間がかかるためフェールオーバーが即時には行えません。

一方、正解の選択肢では、異なるアベイラビリティゾーンにEC2インスタンスを立ち上げ、クラスターリングとレプリケーションで高可用性を確保しているので、自動的にフェールオーバーできます。

コメント

タイトルとURLをコピーしました