helloworlds

色々試してみたくなっちゃうエンジニア 基礎をコツコツ...

【インフラ】クラウドについて考えてみた

だいぶ日が空いてしまいました。。。

今回はインフラについてこちらの本を元に学んでいる最中なので、記事にしてみました。 インフラといっても、ほとんどクラウドについての内容になっています。

インフラCI実践ガイド Ansible/GitLabを使ったインフラ改善サイクルの実現

インフラCI実践ガイド Ansible/GitLabを使ったインフラ改善サイクルの実現

まずは、歴史から

インフラというと、なんだか堅い印象を私は持っています。

社会人出たてで、自社開発が叶わず面談行ったりしているときにも、 1社インフラよりの業務ということでお話を聞く機会がありました。

今の35歳から上の方でサーバサイドとかインフラエンジニアをやっていた方だと、 営業先の帰りに電気屋に行って、サーバーを購入した!とかお話を聞きました。

現在だと、もはや物理サーバー(オンプレサーバー)を使用している会社は、クラウド(Cloud)に移行しているのではないでしょうか?

クラウドサービスでいうと、AWSGCPなどが有名ですね! 私が業界に入ってからだと、クラウドが当たり前で、会社に入ってもオンプレからクラウドへの移行後だったり、 移行中やオンプレはわずかなんて会社が多かったです。

そんなこんなで、ビジネス面ではどういった動向がみられるのか調べてみました。

それぞれ、リソースの単価利用期間リードタイムをメモしました。 (引用:技術書インフラCI)

f:id:o21o21:20181010112044p:plain:w300

メインフレーム

この時代だと、主に銀行などのシステムで活用されていたようです。 きっと大企業のインフラくらいだったのでしょう。

オープンシステム

この頃から、今でも馴染みのあるWindowsUNIX系のOSのが登場しました。 一般な業務システムは、インターネットに接続されたサーバーとして活用されていきます。

クラウド

そして、現代のクラウドですね。 最近では、スマートスピーカーなど、Iotなんかは従来のITの領域を超えてきているといってもいいでしょう。

ここまでで、クラウドという単語を多々使用していますが、

そもそもクラウドとはなんなのか?ということです。

エンジニアの方なら説明できるでしょう。 ここでは詳しくは取り上げませんが、簡単に説明します。

クラウドとは?

クラウドとは、英語ではという意味を指してCloudと言います。 ただし、英語の場合、"Cloud ○○" と何か指すときには言うようですね。(例: Cloud Service, Cloud Computing...)

ちょっと断言できないのですが、日本でいうクラウドは、英語で(正式に)いうクラウド コンピューティングにあたるようです。 それは英語で単にCloudというと、空にある雲という意味にも英語圏の方はとれますよねw 日本語では、クラウド=CloudComputingという認識かな?

まあ、そんな細かいことは置いときます。

(言葉って難しい...)

クラウドとは、簡単に、

インターネットを通じて、ITリソースを必要なときに、必要な分だけ利用するという考え方」のことです。

うむ?どいうことや?

「ソフト(Excelとか)、ハードを購入しなくても使用できる」ということ。

これでなんとなくイメージしやすくなったのではないしょうか。

つまり、GmailEvernoteなどのサービスが該当します。

例えば、Gmailの場合、PCに特別アプリをインストールしたり、クレジットカードを登録して課金して使用するものではなく、オンラインでブラウザさえ使用できればメールのやり取りが可能ですね。

こうしたサービスを、クラウド SaaSとして提供されるものです。 他にも PaaS (Dockerなど)や、 IaaS (AWSなど)という種類を分割してクラウドサービスを分割できます。

そして今回は、この記事の文頭で言った通り、インフラについて学んでいるので、 IaaSの部分がメインになってきます。

さて、AWSが世界的にも有名サービスですが、 いったいどうして物理サーバーを購入しないでAWSの利用者はサーバー(EC2とかのインスタンス)を起動、ターミネイトしたりしているのでしょうか??

もちろんAWSの人たちが、サーバーを逐一起動させているわけではありませんwww (そんなことしてたらAWSの社員はいくらいても足りませんねww)

仮想化

こうした疑問のほとんどが、仮想化で賄われています。 例えば、1台の物理サーバーで複数台の仮想的なサーバーを運用します。

つまり、AWSでは利用者がインスタンスを作成するAPIを叩くと、AWSの世界各国にあるデータセンターの物理サーバーがクラウドサーバー(仮想サーバー)を起動させ、運用がすぐに可能になるということです。

この時のサーバーのスペックなどによって、きっと起動させるサーバーは異なるでしょうが、一気に複数台のサーバーを起動させることも容易になっています。

うん、アマゾンはすごいな〜。 なので、アマゾンの技術者は物理サーバーをメンテすることはありますが、AWSの利用者は物理サーバーをメンテナンスをすることはありません。 オンプレの場合、物理サーバーを設置する場所もセキュリティ上の都合で選ばなくてはなりませんが、クラウドならアマゾンの社員が物理サーバーの保守をしているので、その心配はないということです。世界各国にあるデータセンターの場所は公開されていないですが、日本国内にも存在してます。

そのうち、サーバーの仮想化についてもより詳しくみていきたいと思います!

話を戻します!w

スピード感!

こうした技術の発展で、QCD (Quality,Cost,Delivery)という考え方も変化しています。 なにかシステムを構築する際、QCDの評価軸に沿わないことが多々あります。

AWSのようなサーバーを利用うる場合、意識するのはFFFです。 これは「Fast Fast Fast」です!w

スピード感を持って試行錯誤し、結果的に効率的になり、品質の良い構築が可能になるというこです。 これは私も感じています。 AWSですが、インスタンスの起動はあっというまく間なので、 いろいろ試していた結果、「こっちの方法のほうがうまくいくな!」とか早い段階で気づくことができたりします。

まとめ

今回はほとんど紹介した本の内容には載ってないものになっていますが、 要は基本的なところを抑えた記事になります。

クラウドエンジニアやこれからのインフラエンジニアというのは、技術の移り変わりで 従来設定に時間が取られていたところを簡単に設定できるようになりました。

おかけで仕事が減ったように感じますが、エンジニアとしての価値を上げていかなければなりません。 それは、自動化であったり、従来はできなかったことに挑戦したり、研究したりする時間があるということです。

業務自体と手法も変動しますが、概念や考えた自体も見直し、(違う職種の方などに)共感してもらうことも大切だと思います。

次回は、具体的に自動化について書いていけたらと思います!!

以上.