🕌

AWS JumpStart 2023 for NewGradsに参加してきました!

2023/07/07に公開

株式会社ココナラのプロダクト開発部フロントエンド開発グループでエンジニアをしているのんちゃんと申します!

今回は、5月31日から6月2日にかけて開催されたAWS主催の「AWS JumpStart 2023 for NewGrads」という研修に、同部署フロントエンド開発グループのひびき、バックエンド開発グループのもっちーの新卒3名で参加してきました。

私のこれまでの技術スタックとして約1年間のバックエンド実装経験がありますが、インフラ系の知識にはほぼ触れたことがありませんでした。AWSについては、サービス名を聞いたことがあるのみで、一つひとつの具体的なサービスの役割までは知りませんでした。

そのため、今回のような研修の機会を頂けたことは、今後、自分がエンジニアを続けていく上で、非常に貴重な経験になると感じていました。

このブログでは、私たちが今回の研修を通して、どのような体験をし、どのようなことを学んだのか、その様子をレポートしていきます!

AWS JumpStart 2023 for NewGradsとは?

「AWS JumpStart 2023 for NewGrads」は、2023年卒の新卒エンジニアを対象とし、AWSの講義だけでなく、ハンズオンやアーキテクチャ設計&発表を通した双方向型の実践的プログラムになっています。

参加者は約400名以上で、想像をはるかに超える大規模なイベントでした!

私たちは、初日の講義でAWSの基礎を学び、残りの2日間で個人ワークとグループワークを交互に行いながら、アーキテクチャ設計について議論しました。そして、最終日にはAWS初学者でも、要件に合わせた最適なアーキテクチャが組めるようになっている状態が本イベントのゴールになります。

では、その3日間で私たちがどのような体験をしてきたのか、次節から具体的に紹介していきます。

研修内容

以下が3日間の主な研修内容になります。

  • 1日目: 講義、ハンズオン
  • 2日目: ハンズオン、アーキテクチャ設計(個人+グループワーク)
  • 3日目: ハンズオン、アーキテクチャ設計(個人+グループワーク)

3日目のアーキテクチャ設計は、2日目のアーキテクチャ設計のお題に要件が追加されるため、この2つのアーキテクチャは異なるものになります。

次節からは、この研修内容の中でも特に興味深かった「ハンズオン」と「アーキテクチャ設計」の2つを紹介していきます!

ハンズオン

ここでは、最初に研修用のアカウントで作成したAmazon VPCでネットワークを構築し、ロードバランサやDBを作成するためのセキュリティグループを作成しました。

様々なハンズオンを体験しましたが、その中でもAWS Lambda, Amazon API Gateway, Amazon DynamoDBを用いたサーバーレスハンズオンが最も興味深かったです!

ハンズオン図
AWS Lambda, Amazon API Gateway, Amazon DynamoDBのアーキテクチャ図

サーバーレスハンズオンでは、APIに対してリクエストとして投げた日本語の文字列を、APIコールの返り値として英語に翻訳するAPIを作成しました。

そして、Amazon API Gatewayを通して、Amazon DynamoDBに翻訳履歴が追加されていることを確認したことで、サーバーレスに動かしたものがDBに保存できることを学びました。

このように、APIにリクエストを投げ、サーバー側からDBに保存されるまでの一連の動作の解像度を高められたことは非常に楽しく、「一つひとつのサービスをより深くまで知りたい!」という他のAWSサービスへの関心にも繋がりました。

アーキテクチャ設計

続いて、アーキテクティング課題について紹介していきます!

このワークでは、与えられたシステム要件を満たす設計を個人で1時間ほど検討した後、4~5人のチームで議論しながらアーキテクチャ図を実際に設計しました。グループワーク後の成果発表会では、選ばれたチームが各々の完成図や苦労した点を発表し、AWS運営サイドからフィードバックをもらっていました。

お題や要件などの詳細は控えますが、どのようなアーキテクチャ図を完成させたのか紹介していきたいと思います!

個人ワーク

まず、要件に合うアーキテクチャ図を構成していく中で、個人的に最も重要視した点は、1つ1つのサービスの明確なメリットを把握し、Autoscalingや料金を踏まえた上で、最も適切なサービスを選択することです。

AWSから検討してほしい項目は以下3つでした。

  • 機能要件
    • 検討した構成で、各要件を実現できるか?
  • 可用性
    • あるコンポーネントに障害が起こってもシステムが継続できるか?
  • スケーラビリティとパフォーマンス
    • 今後ユーザーが10倍になった時に同じような構成でユーザーからのリクエストを捌くことができるか?

一例を挙げると、個人ワークの中でAWS FargateとAmazon EC2のどちらかを選ぶ際、私は将来的にカスタマイズや高度な制御が必要になると考え、Amazon EC2を選んでいました。しかし、その後のグループワークで、

「今回の要件であれば、Autoscaling設定を含めた運用コストや、AWS側でのセキュリティ管理といった観点でメリットが大きいサーバーレスのAWS Fargateの方が適しているのではないか?」

という意見をチームメンバーからもらい、非常に納得したのを覚えています。

このように、個人ワークの中で、自分が「このサービスのメリットが今回の要件に一番ハマっている」と思っていても、メンバーからまた別の視点の考えをもらえたため、とても学びが深かったです。

グループワーク

メンバー同士の考えが飛び交った後、最終的にチームで仕上げたアーキテクチャ図は以下になります。

アーキテクチャ図
最終的なアーキテクチャ図

私たちは、特に、レコメンド機能として有能なAmazon Personalizeをどこに配置するか、という点について長く議論しました。

新しくコンテナを作成する必要があるのか?Amazon Personalizeの使用事例をみてみたけど、DBがないよね?このサービスを導入するとDBがいらなくなるのかな?🤔

このように、1つのサービスを取り入れるだけでも、30分は議論を重ねました。

また、AWS CodePipelineについては、同じチームメンバーだったもっちーの「AWS CodePipelineのフローが気になる」と言う発言によって深掘ることができました。

個人ワークでは、ただ単にVPC外にAWS CodePipelineだけを配置していました。しかし、詳しく調べてみると、このAWS CodePipelineの中には「AWS CodeCommit, AWS CodeBuild, AWS CodeDeploy」があることを知り、それぞれのサービスの役割と具体的なAWS CodePipelineの構造の理解を深めることができました。

このようにグループワークでは、メンバーからの新しい情報の取得や、議論を重ねていく中で生まれる新たな疑問をチームで紐解いていく過程を通じて、結果的に、知識の幅を想像以上に広げることができ、非常に有意義な時間を過ごすことができました!

研修を終えて

この研修の数日前に配布される事前学習の動画を視聴した時、その内容の難しさに「講義についていけなかったらどうしよう」という焦りを感じました。

しかし、いざ研修が始まると、Slackのquestionチャンネルに投稿された質問(1日約170投稿以上!)には多少の時間を過ぎても必ず答えるAWS運営側の姿勢や、その投稿に対して参加者同士で疑問を払拭していくやり取りを見て、わからないのは自分だけでないから、焦らず丁寧に理解を深めていこう、といった気持ちになれました!

また、グループワークを通して、他社の新卒の方とも交流を深めることができたことは、ハンズオンやアーキテクチャ設計の経験にプラスして、とても貴重な機会になりました。

チームメンバー
チームメンバー

私はフロントエンドエンジニアとして、直接的にインフラ系の業務に携わる機会は比較的少ないと思いますが、今後の業務の中で応用的に活用できる知識を今回の研修で身につけることができたと思います。

今後も、このようなイベントには積極的に参加をしていきたいと思いました🙌

さいごに

最後まで読んでいただきありがとうございました!

ココナラでは、今回の研修のように、私たち新卒が新しい学びを習得できる環境を数多く用意してくれています!

新卒採用も積極的に行なっているので、もし興味がありましたら下記のリンクからご確認ください!
一緒に働けることを楽しみにお待ちしております。

https://coconala.co.jp/recruit/newgraduates/

Discussion