初めに
可用性の高いアーキテクチャとは何かをまとめてみました。
皆様のご意見頂けたら幸いです。
可用性とは?
システムが正常に継続して動作し続ける能力の事を言います。
障害が起きてしまった場合、システムダウンしてしまったら困りますよね
そちらを防ぐ為には、可用性の高いシステムを構築しないといけません!
一般的な対策としては...
①サーバーの冗長化
②別サーバーへのフェイルオーバー
が挙げられます。
AWS上での対策としては
①リリースを冗長化する
→単一障害点(SPOF)を作らない。(障害が発生するとシステム全体が使用不能になる)
②地理的に離れた場所で冗長化する
→例)2つのAZにそれぞれEC2インスタンスとRDSのデータベースインスタンスを構成
③システムを疎結合で構成する
→システムやコンポーネントを独立させる。
システムの一部が故障したり動作不良を起こした場合でも、その部分だけ切り離して復旧作業を行える
の3点が挙げられます。
最後に
必ず可用性の高いアーキテクチャを意識しないといけませんね。
システムダウンが発生しても、いかに早くリカバリーが出来るかがとても大切です。
利用者が困らないシステムを作るべきだと、改めて肝に命じたいと思いました!