疎結合と単一障害点(Single Point Of Failure)について

疎結合と単一障害点点(Single Point Of Failure)について

AWSを運用していく中で、「疎結合」と「密結合」という言葉が頻繁に出てきます。
AWSでインフラを構築する際は、この「疎結合」を意識した構成にすることと、単一障害点(Single Point Of Failure)を作らないことがとても重要です。

疎結合とは何か

あまり普段の生活では使わないこの「疎結合」とは何でしょう。
疎結合」とは、システムの構成要素間の依存度が低い状態で結びついている状態です。

負荷が高い処理をさせるために、処理能力が高いEC2インスタンスを使う方法もあれば、ELBを使って負荷分散をする方法もあります。

この場合、前者が密結合の状態、後者が疎結合の状態であると言えます。

 

f:id:TOSHIOSHIMO:20191102233332p:plain

ELBを使わず処理能力が大きいEC2インスタンス1つで処理をさせようとすると、そのEC2自体のDNS名を使って外部のシステム構成要素からアクセスすることになります。例えば、EC2インスタンスを取り替えればDNS名が変わってしまい、アクセス元でも設定変更が必要になります。

AWSではEC2インスタンスを、ELBを使って簡単に疎結合化することができます。
アクセス元と個々のEC2インスタンスDNS名が紐付いていません。ELBのDNS名が紐付いています。仮にEC2インスタンスが1つに減ろうが、3つに増えようが、アクセス元には設定変更が必要ありません。アクセス元と、EC2インスタンスが直接的ではなく、間接的に結合されている状態とでもいいましょうか。

単一障害点(Single Point Of Failure)とは何か

単一障害点(Single Point Of Failure)とは、その単一箇所が動かないとシステム障害になるような点のことです。

左側の場合は、EC2インスタンスの停止がそのままシステム障害に直結しますが、右側の場合は、ELBで冗長化されていますので、単一障害点にはなりません。

ここで、ELBが単一障害点に見えますが、内部で冗長化されているので単一障害点になりません。

f:id:TOSHIOSHIMO:20191102234354p:plain

ELBは非常に有用

ELBを使う場面は非常に多いです。負荷分散以外にできることも多いですし、オンプレミス環境のロードバランサーとは別物くらいに思っておいた方が良いと思います。

 

Amazon Web Services ネットワーク入門 (impress top gear)

Amazon Web Services ネットワーク入門 (impress top gear)