単一障害点(SPOF)の作り方を書いていきます。
システムに脆弱な部分を作りたい時には、これらの構成を参考にしていただければと思います。
書き出したら思った以上にあったので、今回はサーバ構成編、物理編のみにしたいと思います。
#サーバ構成編
インフラエンジニア向けです。
AWSやGCP等のクラウドサーバでも構成可能なものを記載しています。
##Webサーバを1台構成にする
よくある1台サーバ構成というやつ。
このWebサーバが落ちると、その配下にあるアプリケーションサーバへのアクセスも出来なくなるので、代表的なSPOFとして取り上げられます。
##Web、 AP, DB, Batchを1台のサーバにまとめる
こちらもよくある代表的な構成。
社内の誰かが作った自作アプリとかが置いてあるサーバによくある構成です。
##メモリを必要最低限だけ積む
メモリ不足にさせoom-killerを発生させることで、サーバのアプリケーションを殺します。
サービスを提供しているプロセスが落ちることでサービスを提供できなくなり、サーバの可用性を下げます。
LB配下にいくつかのWebAPサーバがいる場合、同じスペックと考えることができるので、全サーバで同じような現象が発生し、サービスの提供が難しくなります。
##Kubernetesのクラスターノードを1台にする
何がしたいのかがわからない構成ですが、Twitterとかでつぶやいている人がいたので記載しました。
GKEとかだとデフォルトでクラスターノード(ホストサーバ)は3台になるので、SPOFにしたい人向けではありません。
##静的ウェブホスティングを使用しない
AWSのS3やGCPのCloudStorageを使いオブジェクトストレージで静的ウェブホスティングが構成可能です。
これらはクラウドベンダー側がマネージドサービスとして実施しているため、基本的に落ちることがありません。
そのためSPOFという点でいうと、一番遠い位置にいるので実施しないでください。
##CDNは絶対に挟まない
LBの前にCDNを挟むことにより、WebAPサーバへの負荷が大幅に軽減されるため、望ましくありません。
#物理編
インフラエンジニア向けです。
データセンターに出入りする方や、社内にサーバルームがある方は必見です。
##サーバの電力を1箇所から取る
基本的にサーバには電源ケーブルが2箇所あります。
安定した電源供給を目的としているのですが、その電源ケーブルを同じ主電源から取るのがSPOFとしてのポイントです。
サーバの機種によると思いますが、電源2本中、1本あればサーバは稼働し続けられます。(電源電圧が正常なことが前提)
そのためどちらか片方から取ることで電源冗長化の意味を失わせることができるのです。
##サーバと同じ主電源を利用する
いわゆる同じ主電源からタコ足で片方をサーバ、片方をあなたのノートPCやプリンターに繋ぐ、という構成です。
主電源が同じ場合、クライアントが使う電源量にサーバの供給電力が左右されます。
通常ある一定基準の電圧を下回ると精密機器に悪影響を及ぼすと言われています。サーバ等の機器は起動時に通常の3倍程度の電力を消費すると言われているため、サーバとクライアントの電源供給元が同じ場合、この症状が起きる可能性があり、隠れSPOFとして実装することができます。
多くの場合、これらは忘れた頃に発生するため、気づきにくいです。
##自家発電設備の無いデータセンターを選ぶ
いまから物理DCを選ぶ方向けですが、ほぼ全てのデータセンターは数時間〜数日DC自体の電力を賄う自家発電設備があります。
こちらの設備がないDCを選ぶことで、停電時DCのサーバ群を電源断に追い込むことが可能になります。
また急な電力消失によるシャットダウンはデータ消失に繋がる可能性が高いため、SPOFとしておすすめです。
##UPSを使用しない
上記の自家発電設備の無いデータセンターと同じような内容ですが、UPSによりサーバに供給する電力の整形と予備バッテリーとしての役割を果たします。上位のUPSについては電源断時、自動的に接続先サーバへシャットダウンコマンドを送り、サーバを正常シャットダウンさせるものも存在します。
電源断したらアウトという意味ではSPOFですが、UPSを挟まないことで停電による機器の破壊が可能になります。
##サーバとのネットワーク接続を100均のLANケーブルで行う
LANケーブルのクロスケーブルとストレートケーブルが間違っていない前提ですが、100均のLANケーブルは業務用に比べると質が悪いです。(CAT5eなど)
SPOFまでなることは少ないですが、低品質なネットワークを提供してくれます。
##サーバルームの温度管理をしない
最近AWSの東京リージョンであったインシデントですが、サーバルームの温度管理をしないとサーバの温度が上昇し、ある一定以上の温度に到達するとサーバの自己防衛機能により、自動的にシャットダウンされます。
通常はデータセンター内はちょっと肌寒いレベルの室温になっています。
##ストレージはそのまま使う(RAIDを組まない)
データセンターの運用を使用している方は知っていると思いますが、月1-2本の速度でサーバのストレージは故障します。サーバでは複数のハードディスクが壊れてもデータが消失しないような構成をすることが多いです。その代表的なものとしてRAIDがあります。
市販のNASでもデータ消失を避けたいものはRAIDが組まれていますが、それを組まないのはとても良質なSPOFになります。
3-4年持てば良い方だと思われます。
この記事を書いていると、次から次へと思いつくので、今回はここまでにします。