未経験からインフラエンジニアへ!

いんふらちゃん.com

ITコラム

2019年のクラウドエンジニア技術ロードマップ

Tクラウドエンジニアで何をこれから学習していけばいいの?という疑問に関して

Kamran Ahmed氏のdeveloper-roadmapが非常に参考になるので見ていきましょう。

参考していくのは対象リポジトリのDevOps Roadmapの部分です。

黄色に色分けされた部分はKamran Ahmed氏の「オススメ」部分です。

1~9 の項目ごとに、解説・著者なりの考えをまとめていきます。

 

※DevOpsとは開発チーム(Development)と運用チーム(Operations)の垣根を無くしていくことによって、サービスの価値を上げていこうぜ!という概念のことです。

※ そして、DevOpsの実装部分がSREという感じです。SREエンジニアが今最も熱いインフラエンジニア の名称な様な気もしますが、まだ浸透していないことと・部署の名前だけSREと変更している所も ぼちぼちある事を踏まえて、当方ではひとまずクラウドエンジニアで一纏めにしてしまいます。

 

 

DevOps Roadmap

 

しょーこ
しょーこ
なんだか目がチカチカしてきました
いんふらちゃん
いんふら
とんでもなくタメになるものばかり!しっかり見ていくぞ!

 

1. 言語選択

 

 

インフラエンジニアとしてもプログラミング言語についての知識や経験があることが大事です。

ロードマップ上のどれかしらかの言語を取り組んでおくと良いでしょう。

既に学ばれている方や、現場で使用されている方はその言語の深掘りや自分の興味のある言語を広げていく方向でいいと思います。

まだ、何も言語を学んでいない・これからどの言語を学んでいくのがおすすめ?という質問に関しては圧倒的にPythonです。Pythonをはじめに学習しましょう。

AWSをこれからやる!という方はLambdaを触っていくことになると思うのですが、このLambdaの記述がPythonになります。また、6の項目に出てくるAnsibleの記述もPythonなので迷ったらPythonを選択していきましょう。

また、著者のおすすめ順序としては、Python → Go の習得の順番です。

最初からGoを学ぶのはGoの特性上難しいですが、Pythonを一通り理解した後に取り掛かれば比較的スムーズに学習が進むと思われます。Goは今後ともシェアをとっていく言語になると思われるので今のうちに学習を進めていきたいところです。個人的にGoの公式キャラのGopher キモ可愛くて好きです。

※ 6の項目に出てくる Chef を使うことが決まっている場合はもちろん、Rubyを選択しましょう。ChefはRubyで記述されているからです。

 

2. OSのさまざまな概念を理解する

ロードマップ通りに「プロセス管理」「スレッドと並行性」「ソケット」「I/O管理」「仮想化」「メモリストレージ」「ファイルシステム」の理解です。

インフラエンジニア必須の項目ですね。どれが欠けていてもNGな項目なのでしっかり学んでいきましょう。

著者のおすすめは「絵で見てわかるITインフラの仕組み」です。まずはここから一通りのシステムの全貌を把握するといいと思います。

様々な入門書があると思いますがこの本がダントツにオススメです。インフラの全般の知識と構造・関わりを知りたい場合はこの一冊でだいたい掴めると思います。

注意したい点としては、AmazonのKindle版の誤植に関してです。Kindle版で収録されているものは1版 (2012/9/18)と古く誤字脱字が目立つそうです。書籍版か他書で6版発行以降のPDF版を購入しましょう。

とても良い本だと思うのですが、Kindle版のこの誤字脱字のせいでAmazonの評価がよろしくないんですよね...。

[追記]2019年6月19日に「絵で見てわかるITインフラの仕組み」の新装版が発売されました。これによって誤字脱字は解消されたといっていいでしょう。Kindle版を買う場合は迷わず新装版ですね。著者はpdf版で新たに購入して旧版と比較したのですが、中身自体に大きな差はありませんでした。既に購入されている方は新たに購入する必要はない感じですね(とほほ...)。しいて言えばおまけのコラムが少し増えたかな?くらいです。個人的には新装版よりも旧版の方が見やすいような。新装版はとっつきやすくするために書かれたキャラクターの絵と図に入る説明の文字の字体が逆に見辛いです。著者の感性がおっさんという事なのでしょうか?

 

3. サーバ管理について学ぶ

これに関しては黄色でオススメされている通りにLinuxです。

Linuxを使用する上でターミナルに置けるコマンドを使いこなすことは非常に重要です。

図の右側に伸びているように、BashのLinuxシェルをできるのはもちろんのこと、ターミナルでのコマンドについて適切に対処できる事が必要です。

awk や sed を扱えるようになると更に検索や絞り込みが便利になるので少しずつでも覚えていくといいでしょう。

学習に関しては、書籍だと「新しいLinuxの教科書」が無難でいいと思います。前半内容が被りますが、Bashであれば「新しいシェルプログラミングの教科書」あたりがオススメです。

しかしながら、書籍を見ながらコマンドを叩いても実際にどういう場面で使うの?と言った部分が見えにくいので、そこは現場で仕事をしながら吸収するのが結局のところ一番なのかなと思います。

サーバーでの異常発生の際に使用するコマンドなのですが、外道父さんの記事にある原因調査用コマンドがタメになるのでオススメです。

「まんがでわかるLinux シス管系女子」も息抜きに読んでいくと面白いです。みんとちゃんが可愛いですが、桜子さんのような美人で優しい先輩が教えてくれるなんて状況は現実には発生し得ないので注意しましょう。

 

4. ネットワークとセキュリティ

「DNS」「OSI参照モデル」「HTTP」「HTTPS」「FTP」「SSL/TLS」に関してもインフラエンジニア であれば必須項目です。

基本的なネットワークとセキュリティに関しては必ず押さえておきましょう。

ネットワークに関しては王道どころの「3分間ネットワーキング」がオススメです。めちゃくちゃわかりやすいです。

書籍版もありますが、そちらはWeb版の大事な所だけを濃縮したものとなります。惜しいことにKindleやPDFで販売されていないので書籍のみとなるので注意です。

Web版だと何処が重要な部分なのかが、わかりずらい点がありますので、書籍で重要点・概要をざっと掴む → サイト版でそれらを踏まえて取り組むという形を取るのがいいかもしれません。

著者は、書籍はpdf版(なければKindle)という宗教上の理由でWebのみで学習しました。Webでは動画での説明があり、そこが秀逸です。とんでもなくわかりやすいので「はえー、そうなってたんか」と目に鱗状態が続きます。オススメです。

また、TCP/IPの絵本もオススメです。全て分かりやすく図と共に説明されているので、まずはこちらからの方が取り組みやすいかもしれません。

上記である程度 基礎を押さえられたと感じたら、次に「ネットワークはなぜつながるのか 第2版」あたりを読んでおくといいかもしれません。

※よく「マスタリングTCP/IP 入門編」がオススメされる本として引き合いに出されますが、初学者には完全にオススメできません。読むにしても、上記で学習した後に取り掛かるのがいいでしょう。ちなみに著者は読んでいません。他に学びたいことと比べると重要度が落ちてしまうのと、内容が退屈なんですよね...。

 

5. 〜 をセットアップする方法について答えられるように

インフラエンジニア たるもの「リバースプロキシ」「キャッシュサーバ」「フォワードプロキシ」「ロードバランサ」「ファイアウォール」に関して説明できるようなりましょう。理解は当然といった項目です。

「Webサーバー」であれば、「Apatch」「Tomcat」等のセットアップ方法を把握しておくことはマストです。現在であれば「Nginx」が使用されることが非常に多いのでそちらも勿論のこと覚えていきましょう。Apacheに関してある程度知っていれば、Nginx を学習するコストは高くないです。

どの技術書・Qiita等の記事でもいいですが、Webサーバーに関しては必ず押さえておきましょう。

全ての技術に言えますが、技術の基礎を押さえておくと学習の転移が楽になりますですので後々に楽をするために、初学者は如何に基礎を叩き込んでおくかが鍵になってくると思います。

基礎的なインターネット関連の技術の大元は「RFC」に記載・定義されているのでそちらを息抜き程度に見てみるといいかもしれません。RFCの日本語訳リンク集という素晴らしいサイトもあるのでぜひ見て見てくだい。

 

6. インフラのコード化について学ぶ

この部分がこれからを左右する部分だと思います。本来の題名の「DevOps」の観点からみると最重要な項目です。

インフラエンジニアであっても、これからの時代コードを書けることが必須になってくると思われます。コードが書けなくと仕事自体はあるかもしれませんが、給与や働き方は選べず仕事自体も相対的に減少していくことでしょう。

コンテナ

コンテナの項目して重要なのは黄色である通り「Docker」ですね。

書籍に関しては「Docker 実践ガイド 第2版」から取り組むといいと思います。Qiitaや他サイトなどでも頻繁に取り上げられている項目なので、書籍を買わずともいいかもしれません。

英語となってしまいますが、udemyの「Docker and Kubernetes: The Complete Guide」もオススメです。イケてる兄ちゃんがゴリゴリ教えてくれます。

個人的にはロードマップにある「LXC(LXD)」もオススメしたいのですが、業務で触ることはまずないと思われるので、優先順位は低いです。色んな環境を作って遊ぶ、サーバーをガシガシ構築するのを試すのであれば便利ですので時間がある際に試してみて下さい。

 

構成管理ツール

構成管理ツールは業務で主に選定されているのは「Ansible」「Chef」です。

黄色で色分けされている通りに、オススメはAnsibleです。言語はPythonで、記述も非常に読みやすいです。

大規模・複雑な構成になってくるとRubyの言語で記述される「Chef」を利用されることが多くなるそうですが、著者は「Chef」を業務上で扱ったことがないので詳細はわかりません。

サーバーの設定内容をこれらの構成管理ツールを用いてコードを記述して管理していきます。今まで、一つ一つのサーバーに対して行なっていたものを纏めて管理することができ、コードとして管理しているので手作業における物理的なミスもありません。

インフラのコード化はこれから益々進んでいくと思われるので、現在これらの構成管理ツールを使用していない現場にいる方は危機感を持った方がいいかもしれません。

書籍では「Ansible実践ガイド 第2版」がオススメです。厳密には他に書籍が全然出ていないので、書籍で選ぶとしたらこの1択になりますね。

英語となってしまうのですが、udemyの「Ansible for the Absolute Beginner - Hands-On - DevOps」もオススメです。

※ 全般に言えることですが、基本的に英語ができる方・抵抗がない方はudemy等の動画サービスで学習を進めるのが一番効率が高いと思います。日本語は少ないのですが、英語の動画は非常に豊富にありその質も高いです。セール時は1200円〜1400円で購入できるのでコスパは最強です。

 

コンテナオーケストレーション

業務で扱ったことがないので、こちらはさらっと一般的な概要を。

4つロードマップに挙げられていますが、黄色の色分けの通り「Kubernetes」がオススメです。

実態としてコンテナオーケストレーションの覇権をとったとも言われているので学習するのは「Kubernetes」で良いと思われます。

実際に利用されているケースはまだまだ少ないとは思われますが、「Kubernetes」に関して強いとそれだけで今後の希少性も高くアドバンテージになってくるでしょう。

書籍は「Kurbernetes 完全ガイド」一択です。

 

プロビジョニングツール

プロビジョニングツールは「Terraform」「Cloud Formation」の2強です。

黄色で色分けされている通り「Terraform」がオススメです。著者も現場で使用しているのは「Terraform」となります。

記述はJSON互換のHCL(HashiCorp Configuration Language)という記法でコードを記述していきます。非常に読みやすく、書き方自体の学習コストは低いです。

AWS,Azure,GCPといった様々なクラウドサービスに対応しているので汎用性も高いです。

インフラの構成をコードで管理できることは勿論、構成情報を各種クラウドに保存(AWSであればS3)できるので、非常に安心できます。

これらのクラウドをコードで管理すると、どういった構成になっているかが一目でわかりますし、複数のサービスを構築する際にコードを使い回して構築できるので、サービスの展開等もしやすくなります。

書籍に関しては一般的に売りに出ているものがなかったのですが、Pragmatic Terraform on AWSという神本が技術同人誌として販売されました。

憂鬱な世界にネコパンチ!のtmknom氏が執筆しており、サイトにその概要があるのでぜひ確認してみてください。

BOOTH にてネット上から購入できるので、Terraformを学習したい方はまずこの本から始めるのが最もオススメです著者もこの本を読んでから業務でTerraformを扱いたかったところ...。

正直いって、技術同人誌というレベルを遥かに超えて商業誌といっていいものなので技術同人誌とは?となります。

触発されて ブチャラティ化した いんふらちゃん

 

7. CI/CDツールを学ぶ

 

Comming soon ... ?

 

8. ソフトウェアとインフラの監視手法を学ぶ

 

Comming soon ... ?

 

9. クラウドプロバイダーについて学ぶ

 

Comming soon ... ?

 

 

-ITコラム

Copyright© いんふらちゃん.com , 2019 All Rights Reserved.