orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

完全性の話 想定外との戦い

f:id:orangeitems:20200414121709j:plain

 

完全性の話

セキュリティーの三原則と言えば、「機密性」「可用性」「完全性」なのですが、その中の完全性の話です。

完全性と言えば、「いつでも完全な形でシステムやデータを使えるか」という話なのですが、結局のところシステムというのはこれに尽きるんじゃないかなあと常々思っています。

 

 

いろいろなケース

システムを構築するときに、いろいろと起こったら嫌なことを想像するのですが、どこまで想定するかというのがポイントとなります。想像力を広げたらどんどん想定が出てきますので、真面目に考えてみます。

 

物理サーバーが全損する

どんなシステムも物理サーバーの上で動いています。間違いありません。

その上にソフトウェアがおり、仮想化もかなり進んでいるので利用者は全く気付かないのですが絵的には物理サーバーは削除できません。

物理サーバーは物理的なものなので、モノなのですが、モノである限り壊れます。壊れたとき修理できればいいのですが、100%修理できるモノは残念ながらありません。保守サービスを受けて元に戻ればいいのですが戻らない場合があります。

物理サーバーが全損し、その中にあったデータなどが失われたとしても、どこかにデータがバックアップとして保管されているべきで、かつそのバックアップがちゃんとリストアでき、システムがアクセス可能になるところまで考える必要があります。

 

論理的にデータが全損する

電源がダーーンと落ちて、物理サーバーも電源が停止したとします。電源は冗長化すべきですがしていかないサーバーもザラなので、そこでその上で動いているソフトウェアは全て停止します。その後、電源が戻り起動するのですがソフトウェアが起動しない。調べてみるとデータ自体が壊れている。物理的には壊れていない。こういった論理的なデータ全損は物理サーバー全損と同じ意味を持ちます。

一番イヤなのが、「ミラーリングしている場合」です。論理的な破損情報までミラーリングするので、コピーしている方も一緒に壊れます。

ということで、物理的に壊れなくても論理的に壊れることがあるという話です。

 

バックアップが戻らない

バックアップ。システム稼働時はデータが少ないからテストも簡単に終わるのですが、数年運用するとデータが肥大化するのが常です。そして数年後に始めて本番リリース後にリストアしようとしたら、手順が見当たらない、というところがまずリスクです。運よく見当たったとしてもシステム構築しテストした人がその場にいるかはわからない。

そんな危うい状況の上で、この肥大化したデータをリストアしようとしたら、全然終わらない。見積もってみたら数日かかる。数日間システムを止めなければいけないのか。ということで現場はパニックになります。

本当はリストア訓練を定期的にやるべきでしょうし、リストアにかかる時間を想定してデータ設計をしていないといけないのですが、そこまで気の利いたシステムは多くは無い感覚です。

バックアップがあるから安全、は私はあんまり信じていません。二重三重で本来は考える必要があると思っています。

 

データセンターごとなくなる

これは、想定するかしないかと言う話です。

データセンターも単なる不動産ですから、いくら災害を想定しているとはいえ、想定を超える災害にはかないません。

データセンターが全部水浸しになったらどうするのか。

全部止まりますね。そして全部動かなくなると思います。

戦争のケースも含まれます。

未だかつて、データセンターはそういうことになったことは無いと思いますが、だから今後もないというのはウソです。

別のデータセンターにデータを複製しておくなど、何か対策が必要なのは現在の常識だと思います。

 

アクセス手段がなくなる

現在の新型コロナ戦争にて、インターネット通信が大活躍していますね。

無かったらもっとひどいことになっていたでしょう。

しかし、インターネット通信が今後もヘルシーかというとそうとは言い切れません。

いろんな理由でインターネット通信が不安定になってしまったらどうでしょう。データセンターはただのハコになってしまいます。そして、そのデータセンターに入るためには公共交通機関などを用意して人が向かわないといけないのですが、この状況です。

いくらデータセンターの中身がヘルシーでも、通信できるかは肝になります。気にするようなら土管の違う回線(NTTと電力系など)を二つ引いて、冗長化しておかないといけないでしょうね。

 

詳しい人が退職する

ヒトの話です。

新型コロナの件もそうですが、システムに明るい人がシステムを守っているから、まだこの世の中は正常に保たれています。

でも、人は有限です。限界があります。

人の健康に、システムは大きく依存しています。

放っておいても壊れないシステムなど、ありません。

 

 

完全性に100%はない

インフラ基盤からシステムに関わっているせいか、いろんな想定が思い浮かび、本番システムのことを考えると100%安心できていることなどありません。

いろいろと予防策を講じているものの、現実はしばしば想定を超えてきます。

想定を超えた時に、初めて運用エンジニアの真価が問われます。そこには手順はありませんし、かといって時間が経てば経つほど状況は悪化していきます。そしてビジネス関係者から説明を求められます。

運用のイロハは手順書と運用体制にて語られることは多いのですが、非常時はこれらが機能しなくなることがあります。その時に必要なのが、人間の想像力です。危機的状況を乗り越える人間力です。

現在の世界は、もはや完全と言っていいほど安定し発展し、そしてますます成長していくはずだったのが、大きく完全性が毀損する状況となってしまいました。もしウイルスの恐怖から逃れられても、経済的に追い詰められていく人々が続出しています。

この状況を克服するためには、手順書も運用体制も役に立たないかもしれません。障害対応と同じで、ここからは人間力となろうと思います。