はじめに
みなさんこんにちは、21新卒エンジニアの oden と Hirata です。
6月末に終了した2021年新卒エンジニア研修において、私たちは AWS 研修を受講しました。
なぜ AWS 研修をやったのか?
AWS・GCP をはじめとするクラウド技術は、昨今急速に普及しています。 弊社でも、 3年間で社内のオンプレ環境をクラウド環境に全面移行する という壮大なプロジェクトが遂行されました。
AWS 研修の目的は これから学び続けるエンジニアとして、パブリッククラウドについて前提知識を得ることで、学習の加速度を上げること です。
21新卒のエンジニア研修では、これらの目的に沿って、1週間かけて「AWS 研修」を受講しました。 講義の流れとしては、まず座学により各機能の特徴を学び、その後に「ラボ」という形で演習を積みました。 これから、21新卒エンジニアが AWS 研修でどんなことを学び、それが配属後にどう活きているかについて、紹介したいと思います。
何をやったのか
講義の内容は以下の通りです。
- S3
- EC2
- DynamoDB
- VPC
- ELB
- IAM
- 伸縮性
- 高可用性
- 監視
- 自動化
- キャッシュ
- 疎結合アーキテクチャ
- マイクロサービス
- サーバーレスアーキテクチャ
またアーキテクティングを深めるために、以下のようなイベントも実施されました。
VPC お絵かき
ここまでに習った知識を活かして、実際にアプリケーションを運用することを想定して、アーキテクチャ図を書きました。 またお互いにアーキテクチャ図を見せ合い、フィードバックを通じて「もっとこうしたら良いんじゃないか?」ということを議論しました。 実際に VPC お絵かきで書いたアーキテクチャ図の一例がこちらです。
それまでは点の知識だったものが線としてつなげられて、それぞれの機能の理解力が一気に増しました。 やはり、知識の習得のためにはとりあえず手を動かすことが大切だと学びました。
サーバーレスモブプログラミング
実際に3~4人のチームに分かれて、モブプログラミング形式でサーバーレスアーキテクチャを採用した Web アプリを作ってみました。 研修はオンラインで行われていたため、Zoom の画面共有で AWS のコンソールを映しながら、みんなでワイワイ Lambda にコードを書いたり、Step Functions の設定を行ったりしました。 私 (oden) のチームでは画像をフォームからアップロードすると、API Gateway が Lambda を呼び出し、その Lambda が Amazon Rekognition という画像分析サービスへ画像を送信し、画像に写り込んでいるものが何なのかを返してくれるという簡単なアプリを作成しました。 コンソールをポチポチし、少しコードを書くだけで、ある程度動くアプリケーションがものの数時間で完成したのは感動モノでした。 ちょっとしたプロトタイプや API のモックサーバーなどを作る場合、有望な選択肢の一つになるのではないかと感じました。
配属後に研修がどう活きているか (oden 編)
私は システム本部 IT 統括部 IT 基盤部第一グループ という部署に配属となりました。 主にエンタメ領域のサービスのインフラの構築/運用を行っている部署です。 そして基本的に全てのサーバーが、オンプレからクラウドに移行しているため、毎日 AWS と触れ合うこととなります。
ちなみに私はこれまでインフラなど低レイヤに関する研究を行っていたわけでもなく、インターンなどでもずっとアプリケーション開発を行っていたため、まさにゼロからのスタートです。 この章では、そんな IT 基盤部での業務に、今回の AWS 研修がどう活きているかを紹介します。
とにかく概念や用語を「聞いたことがある」ということが業務への参画を加速してくれる
AWS に限りませんが、クラウドサービスには特有の概念や用語(サービス名など)が多く存在します。 私が所属している部署のミーティングや 1on1 などでも、こうした用語が飛び交っているのが日常です。 当初は「本当に付いていけるのだろうか?」「分からないことばかりで1人では何もできないのではないだろうか?」という不安しかありませんでした。 しかし蓋を開けてみると、「おや?この単語聞いたことあるぞ?」だったり、「これは AWS 研修で講師の方がお話ししてくださったヤツだな」ということが多かったです。
もちろん、インフラを運用/構築するにあたってこの程度の知識では一人前とは言えません。 しかし、「聞いたことがある」 というだけでも、業務への参画の初速 が違います。
これはインフラをやっていくエンジニアだけでなく、開発をメインに行うエンジニアにとっても、メリットだと思います。 というのも、インフラエンジニアのようなポジションの人と話す時に、こうした 「聞いたことがある概念や用語」が共通言語となる ので、スムーズに意思疎通ができるからです。
そういう意味では、多くのエンジニアにとって有意義な研修だったのではないかと思います。
研修で学んだサービスが「実際に現場でどう使われているか」という視点を持つことができる
AWS 研修では具体的なアーキテクチャやコードの内容に触れることはそこまで多くなく、どちらかというと抽象的・体系的な理解を促すような講義を行っていただきました。 研修を受けている間はなんとなく理解できたものの、「どういうサービスかは分かったけど、結局現場ではどう使っているんだろう?」というモヤモヤが少し残っていました。
そんな中実際に現場ですでに動いているサービス群を見て、「なるほど!こういう時に使うんだ!」と腹落ちした感覚がありました。 例えば Amazon Simple Notification Service (Amazon SNS) と Amazon Simple Queue Service (Amazon SQS) を一緒に使うとサービス間の通信を疎結合にできます、という話を研修でしていただいたのですが、実際に現場でまさにこの2つを使ってインスタンスの Service In / Service Out 時のサービス間通信を実現している箇所がありました。 また、色々な技術ブログなどで AWS の活用事例が出てくる時も「なるほど、このシステムではこういう事情があるからこういう使い方をしているのか」というような、これまでにない視点を持つことができるようになりました。
個人的にはサービスの体系的な理解をスキップしたまま現場での使われ方を見るだけでは、その場限りの理解に留まると思います。 一方で、まずは大まかな概念などマクロな要素をキャッチアップした後で、具体的な事例を観測していく、という流れを踏むことは長期的な理解の定着を確かなものにすると思います。
AWS 研修がどう活きているか (Hirata 編)
私もシステム本部 IT 統括部 IT 基盤部というインフラ部署に配属となり、oden 君と同じく、インフラ実務は未経験での配属となりました。
AWS 認定ソリューションアーキテクト アソシエイト試験に合格し、少し自信がついた
私は AWS 研修を受ける前から AWS の勉強を少しずつ進めていました。 無料枠の範囲内に収まるように AWS の各種サービスを触って勉強していましたが、サービスによっては課金せざるを得ないものもあり、気軽に色々なサービスを動かすということができませんでした。 やはり手をたくさん動かして理解することができない分、知識の定着率が低かったです。 しかし AWS 研修では、実際に手を動かしながら色々なサービスを動かすことができる環境が用意されており、「このサービス、こうやって使うことができるのか!」と思いながら学習を進めることができました。おかげで知識の定着率がかなり高くなりました。
その後、私はエンジニア研修中である6月に AWS 認定ソリューションアーキテクト アソシエイト試験を受験し、見事合格しました。 正直なところ、資格を取ることで仕事にものすごくプラスになるというわけではないです。 しかし、AWS 研修を経て試験に合格したという経験は、「インフラエンジニアとしてやっていけるのだろうか…」と思っていた自分に「頑張れば一人前のインフラエンジニアになれるかもしれない…!」という少しの自信を与えてくれました。
「ちょっと知っている」状態が、モチベーションの向上につながる
認定試験に合格して少し自信がついたとはいえ、インフラ実務は未経験であったため、配属直後はかなり不安でした。「話についていけるだろうか?」とか「覚えることが多すぎて挫折するのではないか?」など、ネガティブな感情が湧き上がる時期もありました。 もちろん、まだ配属されて1ヶ月しか立っていない (2021年8月時点) ので、分からないことの方が圧倒的に多いです。ミーティングや会話の中で出てくる分からない単語をメモし、後で調べるというのはザラです。
一方で、AWS 関連の話に関しては、全く話についていけないということはそこまで多くなかったです。「このサービス、AWS 研修で学んだな〜」という瞬間も結構経験しました。 「ちょっと知っている」ことが話の中に出てくると、内容の理解度が高まります。そしてこの「ちょっと知っている」状態は、自分自身に自信を与え、仕事のモチベーションを向上させてくれます。
「何も知らない状態」と「ちょっと知っている状態」ではかなりの差があると私は感じています。 私は AWS 研修を経て、AWS の基礎的な知識について「ちょっと知っている状態」で配属されたからこそ、今現在も高いモチベーションで仕事に取り組めているのだと思います。
関連知識のキャッチアップが比較的スムーズ
私は配属後に GCP (Google Cloud Platform) を扱う機会があったのですが、それまでほぼ GCP を触ったことがありませんでした。 ですが、GCP の基本的な仕組みは AWS と共通しているため、GCP 関連の知識のキャッチアップはスムーズに出来ました。「GCP のプリエンプティブル VM は、AWS でいうスポットインスタンス」というように、AWS と GCP で知識を関連付けながら理解することができるので、非常に効率的に知識を吸収できました。 AWS 研修で AWS の基礎知識についてしっかり学んだからこそ、配属後も関連知識のキャッチアップがしやすくなっていると実感しています。
AWS 研修がどう活きているか (事業部配属になった方 編)
ここまでは IT 基盤部というインフラ部署に配属になった oden と hirata の感想を述べましたが、事業部配属になった方からも、配属後に AWS 研修がどのように活きたか感想をいただきました。
- 配属後に Lambda をガッツリ触る機会があり、その時に AWS 研修で学んだサーバーレス周りの知識が活きた。
- 研修で学んだ ARN (Amazon リソースネーム) の話が、クロスアカウントアクセスを設定する際に助けになった。
- 配属後 IAM のセットアップをすることがあり、そのときに AWS 研修で学んだ IAM ユーザや IAM ロールの仕組みが役に立った。
このように、AWS 研修で学んだことが配属後数ヶ月で業務にしっかり活かされているケースがあることが分かりました。
おわりに
本記事では、今年度の新卒エンジニア研修の AWS 研修について私たちが学んだことをお伝えしました。
DeNA の新卒エンジニア研修ではどんなことを学ぶことができるのかをイメージする助けになれば幸いです。 今後も引き続き、新卒エンジニア研修の他の内容についてお伝えする記事を掲載予定です。
この記事を読んで「面白かった」「学びがあった」と思っていただけた方、よろしければ Twitter や facebook 、はてなブックマークにてコメントをお願いします!
また DeNA 公式 Twitter アカウント @DeNAxTech では、 Blog 記事だけでなく色々な勉強会での登壇資料も発信してます。ぜひフォローして下さい!
最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。