GEEK JOBでは初心者からでもインフラ技術や仕事の進め方を学習でき、インフラエンジニアとして転職/就職できるまでサポートします。
・短期集中で初心者でも最短22日での転職/就職ができる
・IT業界の採用を熟知したメンターが就活サポート
・わからないことは現役エンジニアに質問できる
文系出身だから、パソコンが苦手だから、といった方も関係ありません。
少しでもご興味がありましたらぜひご覧ください。
インフラエンジニアについて調べていると、「クラウド」という言葉をよく目にしますよね。
色々調べていくと、「クラウドの技術を身に着けていないインフラエンジニアに将来はない」というような意見も見つかります。
Appleが運営するiCloudを始め、近年はクラウドの技術を利用したサービスが浸透してきているのは確かですが、そもそもなぜインフラエンジニアとクラウドが関係しているのでしょうか?
本記事では、そもそもインフラエンジニアが何をしているのかという話からクラウドの概念、そして、なぜインフラエンジニアにクラウドの知識が必要なのかというところまで解説していきます。
目次
クラウドの話をする前に、まずはインフラエンジニアがどんな人達なのかというのを簡単に説明させていただきます。
インフラエンジニアは、サーバーやネットワークといった、ITサービスを運営する上で欠かせない基盤を扱うエンジニアです。
システムやサービスを開発するのは、プログラマーやシステムエンジニアと呼ばれる技術者ですが、インフラエンジニアが扱うのはもっと前提の部分です。
システムが稼働するためには、情報のやり取りをするサーバーが必要不可欠です。
同時に、作ったシステムを世の中に公開するためにはネットワークの構築も必要です。
サーバーがなければ、どれだけ素晴らしいプログラムを書いても情報を処理することができません。
そして、インフラエンジニアがネットワークを構築しなければ、外部と情報をやり取りできない閉じたサービスになってしまいます。
このように、インフラエンジニアは、ITサービスがITサービスであるために必要な前提の部分を作り、維持しているのです。
インフラエンジニアの仕事は、設計・構築・運用の3段階に分かれています。
簡単に言えば、作りたいサービスのためにどのくらいのお金をかけ、どのレベルのインフラを用意するのかを決めていくのが設計。
設計書をもとに、実際にサーバーやネットワークの設定や組み立てを行うのが構築。
出来あがったインフラが、常に正常に動いているか監視し、以上があればすぐに対応するのが運用です。
インフラエンジニアの仕事内容に関しては、下記の記事で詳しく解説していますので、ぜひ御覧ください。
次に、クラウドについての説明をしていきます。
クラウドというのは非常に曖昧な概念ですので、具体的なイメージが出来ている人は少ないかと思います。
クラウドを簡単に言えば「インターネットを通じて、ユーザーにサービスを提供すること」となります。
例えばiCloudを利用すれば、iPhone上のデータをAppleのサーバー上に保管して、別のデバイスからデータを取り出すことができます。
Googleが提供するGmailでも、メールはユーザーの端末ではなくGoogleのメールサーバー に保管されているため、ログインさえすればどんなデバイスからでも利用することが可能です。
このように、ユーザー側のデバイスではなく、インターネットを通じた先から必要な機能をユーザーが利用できる形態をクラウド(クラウド・コンピューティング)と呼んでいます。
クラウドを利用したサービスは、持っている機能によって大きく3つに分類されます。
ここでは、それぞれがどんな機能を持っているのかを説明させていただきます。
「Software as a Service」の略で、ネットワークを通じてユーザーが直接サービスを利用する形態です。
みなさんが利用したことのあるクラウドサービスの殆どはこれに当たるでしょう。
代表的なものにGmail、Adobe Creative Cloud、Dropboxなどがあります。
近年SaaS型のサービスは爆発的に増えており、従来はソフトウェアを購入してパソコンにインストールしていたサービスも、次々にSaaS型に切り替わっています。
「Platform as a Service」の略で、インターネット上で開発環境を提供するサービスです。
主にプログラマーやSEが利用するもので、企業がインターネット上に大規模なプラットフォームを用意し、PC上に開発環境を構築しなくても開発が行えるサービスです。
代表的なものに、Googleが提供するGoogle App Engineなどがあります。
「Infrastructure as a Service」の略で、仮想サーバーやネットワークといったインフラをインターネット上で利用出来るサービスで、インフラエンジニアに求められるクラウドの知識は主にこれに関するものです。
既にネットワークに繋がった仮想サーバーが用意されているため、開発者は自分が提供したいサービスに合った規模のサーバーやネットワークを選択するだけで、ネットワーク越しにインフラを利用することができます。
代表的なものは、Amazonが提供するAWSに含まれるAmazon EC2(Amazon Elastic Compute Cloud)や、Googleが提供するGCP(Google Compute Engine)があります。
実は、インフラエンジニアにクラウドの知識が求められるようになったのは最近のことです。
では、従来はどんな方法でインフラを作っていたのでしょうか?
それが、オンプレミスという手法です。
オンプレミスは自社運用とも呼ばれ、サーバーやネットワーク機器を物理的に用意し、運用するスタイルを指します。
従来は、インフラといえばこのスタイルが当たり前でした。
具体的には、大きな箱であるサーバーや、スイッチ・ルーターと呼ばれるネットワーク機器を使い、インフラ環境を物理的に作りあげる方法です。
機器に対する知識はもちろん、大きな物体をどこに配置するのか、どうやって配線するのが最も効率がいいかといったことを考える必要がありました。
オンプレミスによるインフラ構築の仕事内容に関しては、下記の記事で詳しく記述していますので、参考にしてみてください。
冒頭で一度お話した「クラウドの技術を身に着けていないインフラエンジニアに将来はない」という意見について、クラウドサービスの普及によってオンプレミスでのインフラ構築が無くなるのかというと、そんな事はありません。
オンプレミスとクラウドにはそれぞれメリットとデメリットがあり、どの手法を採用するのかは開発やサービスの種類や規模によって様々です。
例えば、オンプレミスの場合は完全に1から自社で組み上げていくため、機能の細かいカスタマイズが可能ですが、クラウドの場合はサービス提供側がオプションとして用意している範囲でしかカスタマイズは出来ません。
反面、簡単なカスタマイズであれば、オプションやプランの内容を変更するだけで完了するクラウドの方に利点があります。
また、回線や情報処理の速度は、一般的にオンプレミスの方が高速であると言われています。
反面、障害が起こった時に対応の工数が多くなるのもオンプレミスの特徴。
このように、オンプレミスとクラウドにはそれそれ一長一短の部分があり、必ずしもどちらが良いとは言えないのです。
一般的な傾向として、大企業や大規模なサービスを運営する会社ではオンプレミスが採用されやすく、スタートアップや小規模なサービスを運営する会社ではクラウドが採用されやすい傾向があります。
クラウドは物理的な機器を用意する必要がなく、月額利用量だけを支払っていけばいいので、初期費用をかなりお安く抑えることが出来る点や、成長規模が予測しづらいサービスに適しているため、スタートアップで採用されやすくなっています。
逆に、どれだけの容量を使用したかによって価格が変動するクラウドは、大規模なサービスを運営する企業にとっては割高になりやすく、初期費用やメンテナンスの工数を踏まえても、オンプレミスの方がコストが低くなることが多いです。
クラウド、オンプレミスに関わらず、インフラエンジニアには、先読みできる能力が重要です。
サービスを正常に運用するためには、インフラを作って終わりではなく、運用開始後に障害が発生しないようにはどうすればいいか、障害が発生した時にどれだけ対応しやすくしておくかといったところまで考えておく必要があります。
先を見越して設計できることは、仕事のできるインフラエンジニアになるために欠かせない能力と言えます。
オンプレミスの場合、インフラの構築や運用は直接機器を触ることが多いため、プログラミングができる必要はありませんでした。
ただし、クラウドを扱っていくのであれば、クラウドを制御していくためにある程度プログラミングの知識は必要になってくるでしょう。
プログラマーのように1から全て書くことは出来なくとも、書いてあるコードを読んで、どんなことが書かれているのかは理解できるようにしましょう。
クラウドを扱えるインフラエンジニアを目指すのであれば、主要なIaaSは知っておくべきです。
ここでは、代表的なIaaSサービスを3つご紹介していきます。
クラウドサービスといえばAWS。
Amazonが提供するサービスです。
様々な製品が用意されており、インフラエンジニアが主にお世話になるのは仮想サーバーのAmazon EC2でしょう。
IaaSサービスとしては世界のシェアNo,1で、データの分析からサービスの提供まで幅広く対応出来るのが特徴です。
開発にあたってクラウドの利用を検討するのであれば、必ず比較対象に入ってきます。
クラウドを扱いたいと考えているのであれば、AWSに関しては必ず勉強しておくようにしましょう。
Google が提供するクラウドサービス。
Gmail やYouTubeといった、 Google が提供するサービスを支えるプラットフォームと同等の、高速かつ高性能。
そして強固なセキュリティを持つインフラを利用できる。
Googleが提供するPaaSであるGoogle App Engineや、Googleカレンダー 、スプレッドシートなどの連携にも最適で、社内でこれらのサービスを利用しているのであれば利用の優先度は上がるでしょう。
シェアも非常に大きいため、AWSの次に勉強しておくべきです。
Microsoftが提供するクラウドサービス。
Officeを始めとしたMicrosoft製品との相性がいいのが特長。
業務システムの構築など、Microsoft製品との連携が必要になる場合は優先度が上がる。
また、オンプレミスの環境から移行しやすいのも特徴。
こちらも、GCPと合わせて優先的に勉強しておきたい。
今回はインフラエンジニアとしてクラウドを扱っていく前提でお話をしましたが、クラウドの知識を深めていけば、クラウドを使うだけではなくクラウドを作る側に回ることも可能です。
クラウドサービスを運営する会社は大規模な企業が多く、求められるレベルも非常に高くなりますが、キャリアパスの一つとして選択肢に入れておくのも良いでしょう。