こんにちは。22卒Webエンジニアの佐藤です。
先日「AWS Jumpstart for NewGrads」という研修に、弊社の新卒社員として参加してきました。
とても学びが多く充実した時間でしたので、本記事ではそのイベントの詳細や様子を綴りたいと思います。
AWS Jumpstart for NewGradsとは?
新卒1年目のエンジニアの方々を対象とした、3日間の実践的な研修プログラムです。 将来的にAWS活用をリードする人材になるための第一歩をスムーズに踏み出せるようなコンテンツをというコンセプトで企画されているため、単なるAWSサービスの学習だけでなく、チームに分かれて要件に合った適切なアーキテクチャを検討・設計する経験を積む部分にフォーカスした内容となっています。
出典:「新卒エンジニア向け研修プログラム AWS JumpStart for NewGrads のご紹介」
端的に換言すると「各企業の新卒社員が一堂に会し、ハンズオンやグループワークでのアーキテクチャ検討を通してAWSについて学んでいく」研修です。
本研修の参加者数はなんと250名以上(!)。運営の方曰く、新卒エンジニア対象の研修としては国内最大級のイベントになったそうです。
プログラム内容
3日間に渡るプログラムですが、メインは以下の3点でした。
- アーキテクチャ検討(グループワーク)
- AWS EC2・ALB・RDSを用いたWordPress環境の構築(ハンズオン)
- AWS Lambda・API Gateway・DynamoDBを用いたサーバーレスなAPIの作成(ハンズオン)
どれも学びが多く濃厚な内容でしたが、今回はその中でも特に印象深かった「アーキテクチャ検討」について綴りたいと思います。
アーキテクチャ検討について
本プログラムの大まかな流れは、4〜5人のチームに分かれ、お題となるサービスを改善するアーキテクチャを検討し、最終的に発表する、というものです。
そして気になるお題は「大規模なチャットサービス」。
詳細な要件などは伏せますが、国内でよく使われている某チャットサービスのような機能を一通り備えていることが前提条件でした。
成果
私のチームの最終的な成果は以下の通りです。
- リリースまで余裕がないためLambdaを用いてサーバーレスに
- アカウント情報などはAuroraに、読み書きの激しいメッセージはDynamoDBに保存
- AppSyncのGraphQL Subscriptionで提供されるデータ同期機能を用いてリアルタイムでチャットを行えるように
という点は他のグループでも多く見受けられたものでした。
それに対し、私のグループがより差別化できた・評価された点は以下の通りです。
- 既読判定に必要なデータはメッセージ1つ1つに紐づけるのではなく、ElastiCache(Redis)に別途保存
- 直近3ヶ月のメッセージはDynamoDBに、それ以降のものはS3に保存
- Elemental MediaConvertを利用してアップロードした動画を変換し、UXの向上を図る
大規模なチャットサービスということで、メッセージの読み書きが多くなるため可用性の観点に関しても最初は不安がありましたが、今回前提条件として指定されていたデータ流量をDynamoDBのキャパシティユニットが上回っていたためその点もクリアできました。
しかしまだまだ粗は多く、SAの方からのフィードバックではセキュリティ面やコスト面などは改善の余地があるとご指摘をいただく結果に。
チームとしても発表時にそれは認識していたため、もう少し詰める必要があったな...と少し悔いが残る結果となりました。
研修を終えてみて
アーキテクチャの基礎について体系的に学べた
参加前は「AWSについてぼんやりとは知っているものの、実際に触ったことはない」というレベルであったため知識を持ち帰ることができるか少し不安でしたが、蓋を開けてみれば経験問わずとても取り組みやすいプログラムでした。
AWSの各サービスについて学べたのはもちろんのこと、パフォーマンス・可用性を意識したWebアプリケーション開発において、どのようなアーキテクチャを設計すべきなのかを(一端ではありますが)学ぶことが出来たと思います。
他社の新卒エンジニアと交流できた
同期のエンジニアがいない身としては、企業の垣根を超えて業務や技術のことなどをざっくばらんに話すことが出来たのは非常に楽しく、そして何より有意義な時間でした。
他社のエンジニアの方と交流する機会も中々に無いはずなので、そういった意味でも貴重だったのかなと思います。
最後に
今回のような外部のイベントへの参加を始め、オープンワークには個人の成長をサポートしてくれる制度が整っています。
もし興味のある方はぜひ弊社の採用サイトを覗いていただけると幸いです。