はじめに
この記事の目的
本記事では、私たちが5日間で実施しているAWS研修の具体的な内容と、内製で研修を設計・実施する際のポイントについて共有します。
特に以下の点について詳しく紹介していきます。
- 初学者が効率的に技術を習得するための工夫
- 実際の研修内容がどんなものだったか
- 内製で研修を行う利点や大変な点・得られた学び
私たちのチームについて
私が所属するデータサイエンスチームでは、顧客体験向上を目的として複数のサービス開発を行っています。これらのサービスは、AWSを中心としたクラウドサービスを活用して内製で開発されており、データ分析基盤からWebアプリ、機械学習モデルの学習や運用に至るまで、幅広い技術領域をカバーしています。
チームの特徴として、データサイエンティストでありながら、分析だけでなく実際のサービス開発・運用まで一貫して携わる点があります。そのため、メンバーにはクラウドインフラやソフトウェア開発のスキルも求められます。
AWS研修を始めた背景
毎年配属される新卒社員のほぼ全員が、クラウド技術の初学者です。その一方で、チームの開発業務では日常的にEC2を使い、LambdaやAPI Gatewayなどのサービスを組み合わせてシステムを構築しています。そのため、新卒社員にも可能な限り早く実開発に携わってもらいたいと考え、研修の企画・運営が始まりました。
なぜ内製でAWS研修を実施することを選んだか
内製での研修実施には、初学者の学習効率を引き上げるメリットだけでなく、組織運営やチームビルディングの観点からも多くの利点があると考え実施に至りました。以下で主な理由を4つの観点から説明していきます。
実務で使用する技術スタックに特化した学習
私たちのチームでは、サービス開発におけるAWS活用がメインになるので、LambdaやAPI Gatewayなどの組み合わせは基本的にどの案件でも使うことになります。また、コーディング作業などはEC2上で実施しているメンバーが多くいるので、この辺りのサービスの使い方は優先的に覚えてもらいたいと考えています。
また、内製研修では実際に運用している自社サービスの構成を例に挙げて説明ができるため、受講者の興味をひきやすいとともに、案件への理解も深めてもらうことができます。
チーム固有の開発ルールの共有
技術的なスキルだけでなく、以下のような、チーム特有の開発におけるルールや習慣も同時に学習してもらえる点も内製研修の大きなメリットだと考えました。
- AWSリソースの命名・タグ付け規則
- AWSに関する知識の調べ方
- EC2のセキュリティ設定
など
継続的に研修を改善していける
外部研修では決められたカリキュラムに沿った進行がされますが、内部研修では受講者の理解度に応じた調整が柔軟にできます。
また、研修の受講者が翌年は講師側に回るような体制を取ることで、受講者側の体験を翌年の研修に活かすような改善サイクルを作れる点も非常に良い点だと考えました。
新卒社員との関係性構築
内製研修を実施するもう一つの重要な利点として、先輩社員と新卒社員の間で自然な関係性を築ける点です。講師によるサポートの機会などを通して、新卒社員とのコミュニケーションを図ることができます。また、研修を通して新卒社員の特性や技術的なレベル感をある程度把握することができるので、案件へのアサインがスムーズになるという利点もあると考えています。
ただし、内製研修にもデメリットがあります。最も大きな課題は、講師陣の準備コストと時間的負担です。資料作成や研修実施など相当な工数が必要になります。しかし、一度体系的な枠組みと資料を作ってしまえば、翌年以降は内容をアップデートしながら継続的に活用できるため、長期的に見れば投資効果が期待できると考えています。
研修内容の詳細
研修は全5日間で実施しています。講義するAWSサービスは、私たちのチームでよく使われるものに絞って講義を行っています。
また、運営は2年目社員、講義はすべて同チームの先輩社員が担当しています。後ほど詳しく説明しますが、初学者の学習効率や自走力を引き上げつつ、自信をつけてもらうために、よりアウトプットに注力した内容を構成しています。
具体的な各日程の内容は以下の通りです。
1日目:ネットワーク基礎とインフラ構築
1日目はAWSの基礎的な説明から始まり、1日かけてネットワークの基礎から踏み台サーバー構築までを体験してもらいます。
この中で私たちのチームでの開発ルールも併せて共有します。
講義内容
- AWSの基礎とネットワーク知識(IP、サブネット、ルーティング)
- 開発チームのセキュリティルール(IAM管理、タグ付け)
- VPC、EC2の基礎講座
- 踏み台サーバー構築のハンズオン
講義資料の例
講義の様子
2日目:サーバーレスアーキテクチャ
2日目は私のチームがサービスを作るうえで非常によく使う構成であるAPI Gateway・Lambda・DBのサーバーレス構成の開発を体験してもらいます。サービス間のつなぎこみではIAMロールの概念が関わってくるため、AWS初学者にとってはなかなかハードな内容です。より深い理解をしてもらうために、わざと接続エラーを発生させながら、身をもって体験をしてもらえるような工夫も取り入れています。また、ここでは実際に案件でこれらのサービスをどう取り入れているかなどの説明も含め、興味を持ってもらえるような工夫もしています。
講義内容
- API Gateway・Lambda・DynamoDBの基礎講座
- API Gateway・Lambda・DynamoDBの構成を作るハンズオン
講義資料の例
3,4日目:自由開発とアウトプット作成
いよいよ1,2日目で習得した知識を使って実際に動くサービスを新卒社員のそれぞれに作ってもらいます。まずは各々でサービスコンセプトを決めてもらい、アーキテクチャー構成図の作成を経て、実際にサービスを作り始めます。あまりにも難易度が高いサービス構成にならないように講師陣と調整を挟みながら開発を始めてもらいました。
これは経験則ですが、1~2種類であれば、講義で扱っていないサービスでもアーキテクチャに取り入れることも可能だと感じています。
実践内容
- サービス構成を1つ自由に作ってもらう実践タスク
- 作ったサービスを第三者にデモするための資料作成
新卒社員が作りあげたサービスのコンセプトとアーキテクチャ図
5日目:作成したアウトプットの発表
最終日には、それぞれが作成したサービスをチーム全員の前で発表してもらいます。発表する内容としては大まかに以下の項目を取り入れてもらいました。
- 新卒社員自身の自己紹介
- 作成したサービスの概要と構成図
- デモの実施
- 開発で詰まったときの解消方法や工夫した点
- 今後改善するならこんな機能を付けたい
講師陣やチームメンバーはぜひ発表に対して質問や温かいコメントを投げてあげましょう。私たちのチームではそれぞれの発表に対して20件ものメッセージが飛んできており、新卒社員の自信に繋がったんじゃないかと思います。
内製研修で意識したポイント
前述した通り、内製研修は継続的な改善をしていける点が魅力的です。私たちのチームではそのためにいくつかの工夫を取り入れています。
また、初学者の学習効果を最大化するための工夫をいくつか取り入れていますので、その内容を紹介していきます。
研修目的の言語化と到達レベル目標の設定
とりあえずやってみようの精神で研修を実施してしまうと、その研修内容が適切だったかの判断ができず、継続的な改善をしていくことができません。
私たちのチームでは、研修後の新卒社員の理想像を定義したうえで、その理想像のより深い言語化と、現状の案件のサービス使用状況や、必要とされているスキルを調査・議論しながら、目標を具体化しました。
また、到達目標の具体化の過程では、言語化された細かい目標に対して、到達難易度のレベルを振り分けながら設定を行っています。これにより、研修前後で受講者がどのくらいレベルアップできたかを講師と振り返れるような研修設計にしています。
例としてLambdaについて説明します。Lambdaにおいては研修後にレベル3へ到達してもらうことを目標として定めました。
Lambda学習において設定したレベル
レベル1
- Lambdaの基本的な概念を理解している
- サーバーレスやマネージドサービスの概念を理解している
レベル2
- Lambda関数をマネコンで作成できる
- Lambdaのループが起きるリスクを知っている
レベル3
- 環境変数を設定できる
- 他のサービスと連携するためのIAMロールを設定・管理できる
- トリガーを設定できる(API GatewayやS3と連携できる)
- CloudWatchでログを確認できる
- GUIでLambdaのテストができる
- Pandasなどを使うためのLambda Layerを設定できる
- Docker Lambdaについて使用場面・メリットを知っている
レベル4
- Lambda関数のバージョン管理とエイリアスを設定できる
- VPCと連携したLambdaの設定ができる
- Docker Lambdaを自分で設定・デプロイできる
レベル5
- Lambda関数のパフォーマンスを最適化・チューニングできる
- LambdaのCI/CDパイプラインを構築できる
- Lambdaでのアンチパターンを理解している
これらを設定することで、講義資料を作成する際の作りこみ度合いを決めたり、重点的に説明する箇所の洗い出しも可能になりました。
継続的な改善をしていくための振り返りは、研修直後の受講者アンケートの結果を分析しながら実施します。後ほど詳しく記載しますが、この内容と講師陣の所感をもとに次年度の改善計画を立てていきます。
初学者が主体的に手を動してアウトプットを作成・発表できる場を作る
皆さんも経験あると思いますが、講義を受けて完全に理解したと思っても、実際に手を動かしてみると思わぬところでつまずいたり、そもそも手を動かさないままだとすぐに忘れてしまったりしますよね。私たちのチームは初学者の学習効果を最大化するために、ラーニングピラミッドの理論に基づき、アウトプットを重視した設計を取り入れています。
この理論に基づくと、本を読んだり動画を見るだけでなく、自ら体験することや、得た知識を他の人に教えることで、学習定着率を効果的に上げることができると言われています。私たちの研修では、3~5日目の研修内容にて新卒社員に主体的に手を動かしてもらい、その成果を発表する時間を取り入れることで、学習効果を高めています。
実際に新卒社員の方々からもこの点は好評で、手を動かしてみることにより各サービスに対する解像度が深まったとの意見をもらいました。
不明点の解決手順は、自己解決→同期に聞く→先輩に聞く
研修では新卒社員に自走力を鍛えてもらいたいという狙いがあります。そのため、3,4日目の自由開発では各々がぶつかった課題に対しては基本的に自己解決を目指してもらいました。
ただし、それでも解決できないものもあると思いますので、次に新卒社員同士での解決を目指します。先ほどラーニングピラミッドの理論の話を出しましたが、他人へ物事を教えるということは、その物事を説明できるくらい噛み砕いて理解する必要があるため、教える側にとっても非常に良い学習になると考えています。
それでも解決しないものに関しては先輩社員へ質問をします。不明点に関してこれらの3段階のステップを設けることで、初学者の自走力強化と効果的な学習を実現しています。
研修の振り返り
ここまで、内製で研修を実施する上で研修内容の全貌と、私たちが工夫した点をいくつか紹介させていただきました。以下では、今年度の研修実施後に取ったアンケートから得られた受講者からの意見や、講師陣での振り返りを通して得られた学び・課題をご紹介します。
受講者からの意見
今年度の研修に関して、受講者からはアンケートを通して以下のような意見(原文)をもらいました。
意見を見る限り、講義と実際に手を動かす実践を組み合わせる流れによって、理解を促進できたようです。また、研修中は基本的に講師が必ず新卒社員の隣にいる環境を整えていたため、新卒社員からは質問をしやすい環境だったと好評いただきました。
- 習ったことを使って自分で考えて作成しながら、質問できる環境だった
- 講義的な研修からハンズオンでサービスを作ってみるところまで実践したことで、サービスの範囲や連携の仕方などを実感として理解できた
- 特にIAMやLambdaなどのサービスは理解が曖昧だった部分をかなり解消できたと感じました
- 初学者でしたが、実際に手を動かしながら学ぶことができ、AWSの使い方等をイメージできた
- EC2やVPC、Lambda、APIGatewayなどの基本的なサービスを基礎から勉強した後にハンズオンで実践する流れがとても良いと思いました。AWSの知識がまったくないメンバーでもサービスを作るところまでできていたため、実践的で大変勉強になる
- AWSを利用したことがない方は、特におすすめだと感じました。 講義パート演習パートどちらも、質問等しやすい環境を作っていただき、とても感謝しています
得られた学び
実際に研修を実施した経験と、受講者の声・講師陣での振り返りを踏まえ、以下の学びが得られました。
アウトプット重視の設計が実際に学習率定着に寄与する
アンケートの結果、3,4日目の開発で扱っていなかったEC2などはレベル3に全員が到達することはできませんでしたが、全員が扱っていたLambdaやAPI Gatewayに関しては、目標であったレベル3に全員が到達できました。このことから、試行錯誤しながら実際に手を動かすことによって理解度を促進できたと考えられます。
またアンケートの意見でも書かれていた通り、受講者目線でも講義と実践をセットで施することによる効果は実感できていたようです。
研修は対面で実施する方が受講者に良い環境を提供できる
今回、5日目を除いて研修はすべて対面で実施しました。
対面で実施することで、受講者の理解度を確認しながら進めることができました。講義中に受講者の反応を見ながら進めることで、その場でより詳細な説明に切り替えたり、不明点について話し合う場面も作ることができました。
また、アンケート結果において、質問しやすい環境についても好評だったように、同期や先輩が物理的に隣にいることで、受講者にとって研修を受けやすい環境を作れていたのかなと思います。
内製で実施することは講師側にとっても良い経験になる
ここまでは、受講者側の学習効果に焦点を当てて話してきましたが、内製研修は講師陣のスキルアップにも繋がる施策だと考えています。
私(二年目社員)の感想ですが、今年度実際に内製研修の施策リーダーを務めてみて、自ら目的感や計画を考え、周囲のメンバーを巻き込んで施策を進めていくという経験は、若手社員にとって非常に良い経験になると感じました。準備など含め大変な部分もありましたが、その苦労の経験を含め、得られるものは非常に大きかったと感じています。なので、個人的には若手メンバーこそ研修の運営・企画や講師を担うべきだと感じました。
今後の課題
得られた学びも多いですが、改善が必要な点もありました。講師陣で今年度の研修を振り返る中で、以下の3つの課題が上げられました。
受講者の事前知識のばらつきへの対処
今年度受講した新卒社員の中には、研修前からAWSクラウドプラクティショナーの資格を取得していた社員や、そうでない社員もいました。事前知識が異なる中で、全員に同じ研修内容を実施したことで、最終的な理解度が前提知識のレベルによって左右される結果となってしまいました。
事前に受講者のレベルを把握しつつ、前提知識をそろえるための事前学習を行ってもらうなど、それぞれの前提知識のレベルに配慮した工夫を施す必要があると感じました。
1,2日目の講義が一方的な説明になってしまう
1,2日目の講義では基本的に資料内容を受講者に対して説明していきます。
対面で実施したことで、それぞれの理解度を見ながら進めることはできましたが、基本的には受講者から質問がない限りは一方的な説明にとどまることがほとんとでした。
これでは受講者側の理解を表層的なものにとどめてしまいます。講義の途中でクイズを用意しておくなど、双方向でのやり取りをもっと取り入れるべきだったと感じています。
3,4日目の開発時間の確保
3,4日目において、新卒社員にはサービスを設計し、開発してもらう時間を確保してもらう必要がありますが、それぞれが別の業務タスクも抱えています。業務タスク量が多い新卒社員はなかなか開発する時間が取れておらず、2日間の時間の中ではチャレンジングな内容に取り組んでもらうことはできませんでした。
このように、手を動かす時間を確保できないと、本人のやる気があったとしても限られた学習効果にとどまってしまうため、あらかじめ各々のAWS研修以外の業務量を想定・調査したうえで、開発時間を設ける必要があったと感じています。
終わりに
今回は私たちのデータサイエンスチームで実施している5日間のAWSハンズオン研修の取り組みについて、設計思想から具体的な内容、得られた内容と課題まで幅広く紹介させていただきました。
この記事が、新卒エンジニアの早期戦力化に悩んでいる組織や、内製での技術研修実施を検討している方々の参考になれば幸いです。
私たちも試行錯誤を経ながら現在の形に至っており、決して完璧ではありません。まだまだ課題も多く残っていますので、今後も継続的に研修内容をアップデートしていく予定です。







