IT企業管理職の現実とその頂きを目指す

IT企業をわかりやすく語りつつ、年収1,000万(相当)の生活。目指せ役員まで出世!!

IT業界の自己分析・業界研究〜クラウドは結局何がすごい?耐故障編(1/6)〜

これはIT業界の特徴なのか、DXやクラウドといったようにバズワードが生まれることが多いように感じます。就活/転職などではもちろんこれらの言葉がどんな意味であるかはもちろん、業界においてなぜバズっているのかを把握する必要があります。今回はクラウドです。

 

想定する読者

  • IT業界を新卒で考えている学生のみなさま
  • 今後インターンなどでIT業界を検討する学生のみなさま
  • 中途採用などでIT業界を志す方

 

 

f:id:nabetsuna:20210212135637j:plain

 

クラウド

クラウドコンピューティング - Wikipedia

ウィキペディアによれば、この言葉自体が出てきたのが2006~2008年ころであり、今でこそ有名なAmazon EC2もその頃に登場したと記載されています。15年 程度の歴史になります。日本のIT業界では2010年頃から割と早い企業が商用で利用を始めている傾向です。また、生活の中で利用するシーンとしては、おそらくicloudGoogleの各種サービスが一番なじみかと思います。gmailは上記の企業内利用よりも早く、当時はクラウドサービスというよりはWebメールというカテゴリでした。

 

クラウドを使えば、安く早くITを利用することが出来るといった印象が一般的なところかと思いますが、なぜクラウドがこういった特性を持っているのかをクラウドの対比にあるオンプレミスのIT環境と比較して特徴をご紹介します。

 

そもそもクラウドは雲の中にある? 

名前の通り、雲の中にクラウド環境があるのかというと、もちろんそんなことはありません。たくさんのサーバが置かれているデータセンターという物理的な拠点があり、そこにインターネットを使ってアクセスしていることになります。

実はクラウドが登場する前からも、データセンターを設置・運用している企業がテナント貸しのように企業に対してサーバを貸し出すことなどはありました。ホスティングサービスなどと呼ばれていたものです。

 

クラウドのベースにある技術

クラウドの一番の特徴は上記のような企業に対する利用サービスではなく、複数のサーバのリソースを束ねて自在に調整できることにあります。この仮想化技術がベースにあることが最大のポイントです。それまでのITシステムは、サーバという金属の塊の持っている処理量でしか動くことが出来ませんでした。厳密には分散処理や並列処理と言われる方法で統合することは出来ますが、都合よく分割することが出来ません。1台のサーバを2者で分割したり、2台のサーバを3者で分割する、さらには、たくさん使うときだけ多くのサーバを利用し、使わないときは少しのサーバだけでよいという伸縮が出来ませんでした。これを解決する技術として、仮想化という技術があります。仮想という言葉の通り物理とは別に仮想という領域でIT機器を管理するものです。近しいところではエミューレターのように、組み込み製品のテストツールとして利用されていたものにやや近いですが、もっと汎用性が高い形で技術が進歩し、汎用化されました。

 

 

 

クラウドは何が便利であるのか?

主なメリットは以下です。#デメリットは別途記載します。

  1. システムの安定稼働(耐障害性)
  2. 急なアクセス増への対応

    nabetunaghetti.com

  3. セキュリティ
  4. 開発のリードタイム短縮
  5. 外部システムとの連携が用意
  6. お試し/トライアルが安価に素早く実施可能

 

1.システムの安定稼働(耐障害性)

上述の通り、ITシステムはオンプレミスというクラウドでない環境で動作する場合には、物理的なサーバが安定的に動き続けることでシステムが動作しています。しかし、機械はいつか必ず壊れます。メーカーが規定した期間、安定運用するものもあれば、すぐに壊れるものもあります(歩留まり)。壊れればシステムは止まってしまうので、いかに壊れても止まらないようにするかを設計するのが重要です。サーバを2つ用意して冗長な構成にすることや場合によっては同じものを二つ用意して、もしものときは切り替えて、停止時間を極力小さくしようとすることもあります。

 

システムとの一言で表現しましても、大きくはアプリケーション、ディスク/ストレージ、ネットワークの3つから構成されています。それぞれの特性に応じて冗長化の考え方があります。

アプリケーションの耐障害の考え方

こちらはプログラム言語で作成されたもので、どういった計算をするか処理をするかという命令/ロジックが記載されています。つまり、インプットがあり、プログラムで記述された処理/命令を行い、アウトプットを行うというものですので、多くはどの環境でも常に同じ動作をする類のものです。そのため同じソースコードをコピーしていれば、どこでも同じ動作をするので、冗長化しておくことで予備の用意が可能です。

 

ディスク/ストレージの耐障害の考え方

これが一番厄介です。というのもデータを記録しておく装置であることから、過去に蓄積したものがあります。これが故障時にはなくなってしまうので、どうやって昔のデータを復元してくるかということが肝になります。肝であるだけに様々な技術が開発されており、自動的にバックアップを取ってくれるストレージや複数のストレージに分割&重複してデータを持つことで1つ壊れても残りの機器でカバーできるような仕組みもあります。ただ、こういった製品は値段も高くなります。。。写真や資料のような昔のものを保管しているだけでなく、データベースのようなものですと、昔にユーザ登録した利用者の情報や過去の取引記録なども蓄積されたデータに該当します。

 

ネットワークの耐障害の考え方

ネットワークはアプリケーションと同じでどこからの通信をどこへつなぐというルーティングというルールを持っているだけなので、その設定情報さえバックアップしていれば、機器が変わってもすぐに動作はします。厄介な点としてはネットワーク機器が壊れるとアクセスが出来ない箇所が多々出てくるので、遠隔での操作・確認が出来ず、データセンターなど物理機器がある場所に行って作業をしないといけないことがあります。なお、建物の裏口のようにもしもの時のためのネットワークを用意しておくことが多いので、影響を軽微にするノウハウは多くあります。

 

クラウドになると?

従来のこのわずらわしさをクラウドは解消してくれます。クラウドを利用することで、利用者から見ると故障しても自動的に切り替えてくれて、システムが止まることなく動作するようなサービスを受けることが出来ます。ただし、クラウド事業者ももちろん100%動作保証はしておらず、SLAというサービスを提供するときの利用条件の定義の中で、でサービス稼働時間を定義していることが多く、一定の時間停止することや、メンテナンスのための寸断など可能性が規定されています。クラウドの裏には、上述の通り、仮想技術が使われていますが、こういった難しい技術やノウハウを知らずに利用できる点はメリットです。

 

まとめ

今回はクラウドのメリットとして、耐障害性を中心にご紹介しました。まだまだクラウドのメリットはありますのでご紹介します。またもちろんデメリットのもあるのでそちらも順次お伝えします。