企業の業務システムは、これまで自社内にハードウェア本体とシステム本体を持つ「オンプレミス型」が続いてきました。
しかし、それは費用がかかりシステム専用の要員も必要であり、企業にとって大きな負担となっていました。
そこへ近年、「クラウド型」というシステムが登場し注目を集めています。
クラウド型はインターネットを通じて提供会社のシステムを使う形ですので自社内にハードウェア本体、システム本体を持つ必要が無く、大きなコストダウンになるからです。
しかし、システム本体が他社内のハードウェアの中にあるということは、様々なデータも他社内のハードウェアの中にある、ということになります。
それは「自社のデータを他人に見られてしまう」危険性があることを意味します。
ですので、クラウド型システムはインフラがしっかりガードされている必要がありますが、そのインフラを設計し構築するのがクラウドエンジニアの仕事です。
クラウド型システムに移行する企業は年々、増え続けておりクラウドエンジニアの仕事も年々、増え続けているのですが、現状では決して十分な人数のクラウドエンジニアがいるとは言えず人手不足の状態です。
そこでクラウドエンジニアの仕事内容、年収、必要なスキルをご紹介致しましょう。
クラウドエンジニアとは
クラウドエンジニアはクラウド型システムのインフラ環境を設計し構築するのが仕事です。
設計したインフラの構築をクラウド上で行います。
ソフトウェアの導入、データベースの導入、ストレージの設定、仮想サーバーの作成を行い動作テストも実施します。
また構築後はOS、ミドルウェアのバージョンアップ、システムの監視を行い、サービスが安定稼働できるように運用及び保守作業も担当します。
また運用コストの削減も役割の1つです。
インフラを構築する、と言う点では「インフラエンジニア」と同じですが、クラウドエンジニアはクラウド型システム専門の環境構築係です。
それに対しインフラエンジニアはオンプロミス型のシステム環境構築を行う、と言う点が違います。
また類似した職種にネットワークエンジニアがありますが、ネットワークエンジニアはあくまでネットワークしか扱いません。
またクラウドエンジニアはシステムに使うプログラムの設計や製作、テストは行いません。それはシステムエンジニアの仕事です。
クラウドエンジニアは、あくまでクラウド型システムの環境構築と運用保守が主たる仕事なのです。
クラウドエンジニアの仕事内容
インフラの設計
クラウドエンジニアの最も重要な仕事がインフラの設計です。
システムの乗るサーバーとネットークをどう接続させるか、セキュリティはどうするか、と言う点を考えながら全体像を設計します。
また現状はオンプロミス型というユーザーの場合、部分的にクラウド化する、と言うケースもありますので、オンプロミス型との接続はどうやるか、将来的には全てクラウド型にする場合には拡張しやすいように設計しておく必要もあります。
クラウド型システムは、複数社がシステムを共有する形のパブリッククラウドと、一社だけが使う専用システムであるプライベートクラウドがありますが、どちらにすべきかも考慮します。
そしてパブリッククラウドであればグーグル、マイクロソフト、アマゾンから基本となるソフトを市販していますので、どれにするかも決める必要があります。
プライベートクラウドはデータの機密保持性能は高くなりますがコストは高くなります。
一方、パブリッククラウドはデータの機密保持性は若干、低くなりますがコストは非常に安く済みます。一般的にはパブリッククラウドを希望する企業が多いのですが、顧客要件がパブリッククラウドでも実現可能かどうかを検討します。
オンプロミス型も残しながら徐々にクラウド型にしていこう、という場合にはパブリッククラウドとプライベートクラウドの両方を併用するケースもあります。
これをハイブリット型クラウドと言いますが、いずれの方法がベストかを選択し提案するのもクラウドエンジニアの仕事です。
クラウドの構築作業
インフラ設計が終わり、顧客の承認が出たら、設計書に従ってクラウド環境の構築作業を行います。
サーバーの仮想化、データベースの導入、ストレージの設定、システム本体の導入と設定などの作業です。
パブリッククラウドの場合は1つのシステムを複数社が使用しますのでサーバーの仮想化とストレージ設定には使用する企業の数、使用時間帯などを考慮し十分なレスポンスを確保できるよう設定をしなければなりません。
また他社のデータが見えないようセキュリティ面にも万全を期さねばなりません。
限られたサーバー資源を出来るだけ有効活用でき、かつ安全、安定的に稼働できるよう、細心の配慮が必要です。
保守・運用
本番稼働が開始したら保守・運用を担当します。
主たる業務はOS、ミドルウェアのバージョンアップですが、トラブルが起きていないかの監視、また運用にかかるコストを軽減する度努力もする必要があります。
保守・運用は設計、構築に比較すると長年月になります。それだけクラウドエンジニアは1つの設計、構築作業を行うと、そのクラウドシステムとずっと付き合うことが多いのです。
ある程度、稼働が安定してきたら監視作業などはオペレーターなどの代替要員に交代することもできますが、何かあった時にはクラウドエンジニアが対応しなければならないので縁が切れるということは、あまりありません。
つまりクラウドエンジニアは「仕事が途切れる」ということが無いのです。
その点は開発時にだけ必要なシステムエンジニアと大きく異なる点です。
OS、ミドルウェアのバージョンアップは必ずと言っていいくらいに発生します。その場合、インフラレベルの対応が必要であれば変更作業をしなければならなくなるケースもあります。
そうなると、あらためて全体の再テストが必要となります。クラウドエンジニアは「そのシステムと長いお付き合い」になることが多いのです。
それは逆に考えると「需要の安定性」という利点となります。また一方、慢性的な人手不足を招く一因ともなっています。
クラウドエンジニアのニーズ・将来性
現在、多くの企業がオンプロミス型からクラウド型へ移行しようとしています。
現在は、その過渡期とも言える状況です。
それだけにクラウドエンジニアの需要は非常に高く、クラウド型に移行してからも運用・保守作業がある限り、仕事が途絶えるということはありません。
特に親会社がクラウド化した場合、子会社も追随せねばならなくなることも多いのです。
また通常、最初から全てをクラウドに移行する、と言う企業は少なく「徐々に移行する」という形を取る企業がほとんどです。
その場合、クラウドエンジニアは「徐々に移行する期間」はずっと、お付き合いする必要が出てきます。
そして、その期間は相当な長期間になることが多く、クラウドエンジニアの仕事は途絶えるということがないのです。
この点でもクラウドエンジニアの将来性は非常に高いと言えるでしょう。
クラウドエンジニアの年収
2020年12月28日時点での情報によるとクラウドエンジニアの平均年収は594万円となっています。
この金額は日本の平均収入である440万円を大きく上回っており、クラウドエンジニアが高収入であることが分かります。
平均年収 | |
---|---|
クラウドエンジニア | 594万円 |
日本 | 440万円 |
主にオンプロミス型のシステムのインフラを設計、構築するインフラエンジニアの平均年収は524万円となっており、クラウドエンジニアはインフラエンジニアよりも高収入となっています。
なぜならクラウド型への移行が進んでいるのでインフラエンジニアの需要が若干、下がってきていることと、クラウドエンジニアはインフラエンジニアよりもインターネット関連のスキルを要する分、必要なスキルがインフラエンジニアよりも高く、それだけ人数が少ないことが理由です。
現在、クラウドエンジニアをしている方はインフラエンジニア出身者が大多数です。
つまりクラウドエンジニアの方がインフラエンジニアよりもスキルが高いのです。
クラウドエンジニアに求められる知識・スキル
具体的に、どんなスキルが必要とされるのか列挙してみましょう。
クラウドに関するスキル
クラウドコンピューティングは独自のスキルが求められます。
例えばネットワークの仮想化の知識、パブリッククラウドに関する知識などです。
特にパブリッククラウドの知識は必須でAWS、GCP、Microsoft Azureについての知識と3種類の提供方式「IaaS」「PaaS」「SaaS」の違いについて知っておくことは基本知識となります。
もちろん知識だけでなく実装するのですから、経験も必要とされてきます。
サーバーに関する知識
クラウド型システムはサーバーを使いますので、サーバーの知識も必須となります。
構築・運用・保守方法の知識が必要ですが、クラウド型システムで使用されるサーバーはLinuxをベースとしているものが大半ですのでLinuxについての知識は前提条件となります。
また仮想化技術の概念もしっかり理解し使用できるようになっておかないとクラウド型システムの構築は出来ません。
ネットワークに関する知識
オンプロミス型システムではネットワークについてはネットワークエンジニアがやってくれますが、クラウド型システムではクラウドエンジニアが自分で設定を行わなければなりません。
実務ではオンプロミス型から部分的にクラウド型に移行するケースも多々ありますが、そうなるとオンプロミス型とクラウド型が併用される時期が出てきます。
この期間はクラウドエンジニアが主導してネットワークを再構築しなければならないので
ネットワークエンジニアと同等レベル以上のスキルが必要となります。
ミドルウェアに関する知識
ミドルウェアとはデータベースの管理ソフト、システムの運用、管理、データのやり取りに使用するツール類を指します。
オンプロミス型の場合は、マシン本体に実装されている機能を使用していることがほとんどですが、クラウド型でも同じ機能が必要となるため該当する機能を用意しておかなければなりません。
そのためには、これらのミドルウェアに対する知識が必要となるのです。
オンプレミス型システムの知識
現在、クラウド化対象となっているシスム案件は、ほとんどがオンプレミス型からの移行です。
そしてオンプレミス型ではルーター、ロードバランサー、ファイアウォール、IPS/IDSなどの機器が使用されています。
これらの機器の役割を知っておかないとクラウド上で同等レベル以上のシステムは作ることはできません。
つまりオンプレミス型システムのインフラ構成も知っておく必要があるのです。
「クラウド化したら遅くなった」とか「以前は出来たことが出来なくなった」という事が発生してしまうと「クラウド化したことがむしろ改悪になってしまう」のです。
DevOpsの知識
近年はアジャイル開発方式が主流となりつつあります。
これは最初は単純な物を作り、それを段々と進化させていき仕上げていく開発手法ですが、現在ではDevOpsというツールで進化の段階を管理し、かつ進化の内容を標準化させることが行われるようになっています。
必ずしも全てのプロジェクトがアジャイル方式で開発される訳ではありませんが、担当案件がアジャイル方式となった場合、DevOpsの知識は必須となります。
システム開発におけるアジャイル化は、これから先、進むことはあっても無くなることはないでしょう。
つまり「今は必要なくても将来は必要になるかもしれない」のです。
ですので、早い段階で習得されておくことをお勧め致します。
コミュニケーションスキル
クラウドエンジニアは設計時には顧客との打ち合わせが必要であり、開発時には開発グループとの打ち合わせが必要です。
そしてインフラ、特にクラウドのインフラについては「事前知識が無いと理解できない」ものが多いので、そういった内容を相手に分かりやすく伝えることが出来るコミュケーションスキルが必要となります。
また口頭説明だけでは危ないので、資料を作成し配布する必要もありますが、その資料も「分かりやすいもの」でなければなりません。
インフラ関係の知識を心得ている顧客や開発グループは、ほぼ皆無です。
従って分かりやすくなければ理解してもらえません。
そして理解してもらわなければシステム開発はうまくいきません。
また運用・保守のフェーズではユーザーとやり取りをしなければならないので、ますますコミュニケーションは難しくなってきます。
コミュニケーションスキルは非常に重要なスキルで、担当クラウドエンジニアの評価に直結するものなので、是非とも備えておきたいスキルです。
クラウドエンジニアになるうえでおすすめの資格
クラウドエンジニアになるための資格というものは存在しません。
つまり実力次第ということになりますが、持っていれば「ある一定の知識と技術を持っている証明」となる資格はあります。
その中でも、特に重要な資格をいくつかご紹介します。
パブリッククラウドの技術認定資格
パブリッククラウドの技術認定資格はクラウドエンジニアにとって「取っておきたい資格」です。
なぜなら必ず必要な知識の中でも、最も重要な知識の資格だからです。
Google Cloud認定資格
Googleが行っている認定資格で通称GCPと呼ばれます。
内容は多岐に渡り、色々なコースがありますが日本語で受験できる資格は4つです。
勉強のために受けるのであれば最も適切な資格試験です。
というのもGCPではクラウドシステム構築のために必要な知識が全て学べるからです。
Gmail、YouTubeなどもGCPをベースにしていることでも分かるように高いインフラ性能を誇っています。
AWS認定ソリューションアーキテクト
これはアマゾンが提供しているAWSというクラウドサービスについての実力認定試験です。
AWSは非常によく知られているので持っていると「クラウド技術者」とみなされます。
AWSは実業務をいかにしてAWSに乗せてクラウド化させるか、に重点を置いているので「実践的な知識」が学べるのが特徴です。
Microsoft Azure認定試験
マイクロソフト社のAzureというクラウドサービスについての認定試験です。
基礎編から始まり4段階の認定資格がありますので勉強の目標とするのに、ちょうど良い資格です。
Linuxの技術認定試験
クラウド型システムはLinuxサーバー上で動くことが、ほとんどなのでLinuxの知識は不可欠です。
各種のクラウドサービスもLinuxの知識が無いと分からないものもあります。
ですので、Linuxの勉強が必要ですが、その勉強の目標として目指せる資格として以下があります。
LinuC
正式名称は「Linux技術者認定試験 LinuC(リナック)」と言い、日本だけで行われている資格試験です。
1から3までのレベルがありますので、1から順番に取得するように勉強していけばLinuxが覚えられます。
LPIC
Linuxの世界標準の資格認定試験です。
こちらも1から3までのレベルがありますので、1から順番に取得するように勉強していけばLinuxが覚えられます。
クラウドエンジニアになるには
以上、述べてきましたようにクラウドエンジニアは広範な知識とスキルが要求されるため募集も何等かの経験者に限定されることが多いです。
ですが、会社によっては「未経験可」というところも全く無い訳ではありません。
以下にクラウドエンジニアになるためのコースをいくつか挙げて見ます。
インフラエンジニア、ネットワークエンジニアから転身する
最も一般的なクラウドエンジニアへのコースです。
インフラエンジニアもネットワークエンジニアもクラウドエンジニアが必要とするスキルの一部を既に持っているのでクラウドサービスの知識を身に付ければ十分に転身が可能です。
まずはインフラ、ネットワークの勉強をして、それぞれのエンジニアとして実績を積めば「経験者」となり応募が可能となり採用される可能性も高くなります。
専門の学校に通う
クラウドエンジニアになるための専門科を設けている学校がありますので、そこに通って勉強する、と言う方法です。
通学する必要があるものとオンラインで受講できるものがあります。
通学型は実際に実践経験が積めるので有利ですがオンライン型は自分の都合に合わせられる点が有利です。
まだ全く実績がない、と言う方はこちらをお勧めします。
こういった専門の学校で学んだ知識と経験があれば「未経験者可」の募集でも「一から教える必要がない」ので採用してくれる可能性があります。
クラウドエンジニアは広範な知識と経験を要する職種で簡単になれるものではありません。
ですがIT業界には簡単になれる職種など無いのです。どんな職種であっても勉強と努力が必要です。
IT業界の入り口というとプログラマー、と考える方が多いですが、プログラムを作る作業というのは向き、不向きがあり必ず全員がなれるものではありません。
そしてプログラマーには向いていない、言う方は多くの場合ネットワークエンジニアなどのハードウェア関係の方が向いていることが多いものです。
そういった意味ではクラウドエンジニアというのはプログラム作りには向いていないハードウェア系の方にとって最高峰の職種であると言って良いでしょう。
プログラマーとしては「自分でも今一つ」と思っておられる方は、ネットワークエンジニアからクラウドエンジニアというハードウェアコースもある、ということを是非とも覚えておいて下さい。
同じ、勉強と努力をするなら「向いている方」で頑張る方が良い結果となることが多いのですから。