この記事では、2019年6月26日に開催したイベント「ゼロから学ぶクラウドの世界 クラウドの現在、未来はどうなるのか?そしてエンジニアは、どう学ぶのか」をレポートします。講師には、NRIネットコムのクラウド事業推進部の部長であり、数々のクラウドサービス解説書籍を執筆されている佐々木 拓郎さんをお迎えし、クラウドの基礎から、最新のクラウドの潮流、そしてクラウド関連の知識を養う際に効果的な勉強方法まで、幅広く教えていただきました。
・クラウドの潮流は2つ。「コンテナ化」と「サーバーレスアーキテクチャ」
・隣り合う分野を掛け合わせる「T型人材」という考え方
・クラウドの学び方で重要なのは「具体的な目標設定」
クラウドの潮流は2つ
講師である佐々木さんは、アマゾン ウェブ サービス ジャパン株式会社の「APN AWS Top Engineers 2019」と「APN Ambassadors 2019」にも選ばれている、いわばAWSのプロ中のプロ。今回のイベントでは、「クラウドの潮流を何となく把握してもらう」「技術の勉強の仕方のヒントを得てもらう」「家に帰ったら、クラウドのアカウントを作ってもらう」をゴールとし、クラウドについて詳しく佐々木さんに教えていただきました。
現在クラウドには大きく2つの潮流があり、「コンテナ化」と「サーバーレスアーキテクチャ化」という流れがあるそうです。
コンテナ化とは、仮想化の手法の1つで、1つのOS上に独立した仮想的なユーザー空間を作り出し、それをコンテナのようにプラットフォーム上に並べたり、置き換えたりして利用します。
現在、このコンテナ化を支えているのが、コンテナ型仮想化エンジン「Docker」と複数コンテナを管理するオーケストレーションソフト「Kubernetes」です。
一方、サーバーレスアーキテクチャとは、仮想サーバーを利用せずにアプリケーションを構築する設計のことだそうです。ただし、仮想サーバーを利用しないといっても、「ユーザーがメンテナンスすべきサーバーがない」というだけで、そのバックエンドにクラウドベンダーが用意したサーバーがあり、イベント駆動により、各アプリが必要に応じてコンピューターリソースが提供されるという仕組みのことを指します。
クラウドの進化に伴った「T型人材」という考え方
このようにクラウドサービスそのものが進化してくると、おのずと、その利用方法や求められるエンジニアのスキルも変わってきます。
これまでは、インフラエンジニアやアプリケーションエンジニアなど、担当する領域が明確にわかれていました。しかし、コンテナ化やサーバーレスアーキテクチャが普及すると、従来の区分ではわけることが出来なくなってきます。
そうなると、エンジニアの境界(領域)も、これまでと違って曖昧になっていきます。そこで登場するのが「T型人材」という考え方だそうです。
T型人材とは、フロントサイド/サーバーサイド開発、インフラ構築、クラウドの種類、ミドルウェアなど、幅広く浅い理解を持ちながら、いずれかの分野について、より深い知識を備えている人を指します。
佐々木さんは、クラウド時代が進めば、プロビジョニングやオーケストレーションで使われる「Infrastructure as Code」(コードによるインフラの構成管理)のように、コード化する範囲が広がるため、これまで以上にコードが書けるエンジニアが必要とされると予測しています。
もちろんコードが書けるだけでなく、業務知識や技術力など、専門分野あるいは得意分野を身につけていくことが大切だということです。ただし、専門分野/得意分野も、単一の分野で勝負するのは茨の道だといいます。なぜなら「単一分野においては、必ず上の人は、たくさんいるから」だそうです。そこで佐々木さんは、「隣り合う分野を掛け合わせること」をお勧めされました。
コツは「隣接する複数のスキルを身につけること」だそうです。なぜなら「隣接分野だとベクトルが合成されやすい」とのこと。例として、アプリとインフラや、アプリとデザインなどを示してくださいました。
そして、効率的な成長をするためのポイントとして「変化を楽しむ」「ちょっと背伸びをする」「チャンスが来やすい仕組みを作る」を挙げます。チャンスが来やすい仕組みとは「組織内の第一人者の分野を作る、あるいは、やりたい事をアピールしておくこと。そうすると仕事が集まりやすくなる」ということだそうです。
クラウドの学び方
では、自身のスキルセットにクラウドを追加するにあたり、何をどう勉強していけば良いのでしょうか。ここでも佐々木さんが効率的な学び方を示してくださいました。大切なのは「目標の具体化」「教材の選択」「実際に手を動かす」「アウトプットをする」ということ。
中でも重要なのは「目標設定」。たとえば失敗しやすい目標とは「AWSを使えるようになりたい」というもの。「使える」というのが一体どのレベルを指しているのか分かりません。成功しやすい目標は「負荷に応じて自動でサーバーが増減するシステムを作りたい」というような具体的なものだそうです。ただし「目標はあまり高くしない」ことがポイントだそうです。
学習教材については、AWS公式サイトや、いわゆるBlack Beltシリーズと呼ばれる書籍、各種オンラインセミナーなどが紹介されました。分からないことはGoogleで調べるという人もいますが「Googleはキーワードを知らないと調べられない。でも書籍はページをめくれば知らない情報が出てくる」のが利点だそうです。
手を動かして勉強していくときに気を付けなければいけないのは、セキュリティ。たとえばソースの中にAWSへのアクセスキーを直書きしてしまい、そのままGitHubの公開リポジトリにプッシュしてしまうという事故は、よくあるそうです。最近では、そもそもアクセスキーを利用せずに済ませる事ができるので原則使わないことが推奨されています。どうしてもアクセスキーを利用する必要がある場合は、ソースの中にアクセスキーを書き込まず、環境変数を利用する方法が望ましいそうです。
どうしても不安であれば「セルフペースラボ(Qwiklabs)」の利用がお勧めだそうです。このサービスは、ほぼ無料で、30分間だけAWSやGCPが使えるというサービスです。時間が過ぎると、作成した環境を勝手に消してくれるので、初心者にもお勧めだそうです。
ちなみに、アウトプットをすることは敷居が高いように感じますが、気になったキーワードをTweetするだけでも意味があるそうです。
今回のイベントの参加者からは、クラウドの勉強方法が具体的にわかったとの声を多くいただきました。また、「セルフペースラボ」を使って、実際に手を動かして学んでみる方も多いのではないでしょうか。株式会社リクルートスタッフィングが運営するITSTAFFINGでは、弊社に派遣登録いただいている皆さまのスキル向上を支援するこのようなイベントを、定期的に開催しています。皆さまのご参加をお待ちしております。