マツシタのお勉強

AWSにおける可用性を向上するパターンをまとめる

クラウドにおける可用性とは

「可用性(Availability)」とはシステムが継続して稼働できる能力の事。システムを稼働しているサーバーや、データを保存しておくデータベースが1つで設計されている場合、その1つが落ちた場合にシステムが止まってしまう。これは可用性の低い設計である。設計者はサーバーやデータセンタが落ちることを想定して、可用性の高い設計をする必要がある。

参考

カテゴリ:CDP:可用性を向上するパターン - AWS-CloudDesignPattern

Multi-Serverパターン

Multi-Serverとは、仮想サーバー(EC2)を複数台ならべELB(ロードバランサー)によって適宜不可を振り分けることである。ELBにはヘルスチェック機能が備わっているので、1つのサーバーが止まった場合は、そのサーバーには処理を振り分けずに健康なサーバーのみに処理を振り分ける。これによって1つのサバーが落ちても、システムを仮想し続けることができる。

注意点

EBLと複数のEC2を使用するので、単一よりもコストがかかる

Multi-Datacenterパターン

AWSは複数のデータセンターを保持している。Multi-Datacenterパターンは複数のデータセンターにサーバーを構築しておくことで、1つのデータセンターが障害が起きた場合でも、システムを稼働し続ける事ができる。これもMulti-Serverパターンと同様にELBが処理を振り分けてくれる。

Deep Health Checkパターン

ロードバランサーDNSはヘルスチェック機能が備わってるが、基本的にはチェック出来る範囲は直接紐付いているサーバーのみである。 Deep Health Checkは直接紐付いているサーバーだけではなく、もっと奥深くのサーバーもチェックし、そのステータスをロードバランサーDNSに返してシステム全体のヘルスチェックを行うものである。

システムはDNS→Webサーバー→Proxyサーバー(代わりにアプリケーションリクエストを送るためのサーバー。直接リクエストを送らずにProxyサーバーをはさむのでセキュリティ面で恩恵がある)→アプリケーション・サーバー→データベースといくつものサーバをはさむ事がある。その全てのサーバーに対してヘルスチェックを行う事ができる。

Floating IPパターン

使用しているサーバーが止まった場合、マシンイメージを用いて仮想サーバーを新たに高速に作り、その仮想サーバーにEIPを付け替えることでシステムを稼働し続けることができる。EIPを付け替える操作もAPIが用意されているので自動化することができる。

Routing-Based HAパターン

続く。