こんにちは。 21新卒エンジニアの ahu です。 今月の1日から3日にかけて、AWS Jumpstart for NewGrads という AWS のスペシャル研修が開催され、弊社からは11名の新卒エンジニアが参加しました。 今回は、その参加レポートをお届けします。
AWS Jumpstart for NewGrads とは?
AWS Jumpstart for NewGrads は、AWS のサービスを用いた Web アプリケーションの開発やシステムの設計が体験できる、新卒エンジニア向けのプログラムです。 アマゾンウェブサービスジャパン株式会社様により主催され、3日間の日程で参加者は60名以上にものぼりました。
研修プログラムの内容
AWS Jumpstart for NewGrads の内容は、以下のようなものでした。
- AWS の基礎的な概念やサービスが学べる事前学習用の動画コンテンツ
- AWS における設計のベストプラクティスについてのセッション
- Amazon ECS の入門ハンズオン
- AWS Amplify の入門ハンズオン
- ソリューションアーキテクト(以下 SA)の方による LT
- AWS のサービスを用いたアーキテクチャ設計の議論(チーム毎)
- AWS のサービスを用いたアーキテクチャ設計の発表会(チーム毎)
- 参加者同士の懇親会
全行程を通してオンラインで行われ、専用の Slack で質問をすると SA の方が相談に乗ってくださったりもしました。 ハンズオンについても、AWS Cloud9 をはじめとする AWS のサービス上で完結しており、参加者が環境を用意する必要がなくスムーズに進めることができました。
研修のメインである3日間を通して行われたアーキテクチャ設計では、架空のチャットサービスの仕様が提示され、AWS のサービスを用いたインフラの設計をチーム毎に一から行いました。 弊社のエンジニアは、チーム N とチーム O の2チームに分かれてこれに取り組みました。
アーキテクチャ設計の振り返り
ここからは、アーキテクチャ設計についてそれぞれのチームの進め方を振り返ってみます。
チーム N でやったこと
チーム N ではまず、サービスの内容と要件に対する共通認識を築くため、サービスの具体的な構成要素を洗い出すことから始めました。 ここでは、Web サーバーに存在しているべき API や、必要なストレージの種類について議論し、これらに関する AWS のサービスにはどのようなものがあるのか調べました。
2日目は、アーキテクチャの図を書きながら設計について考えました。 ここでは、DB のスキーマの具体的な定義や、どの API で WebSocket の通信を扱うのかなどについても議論しました。 特に設計については、AWS Lambda によるスケーラビリティの確保と、投稿された画像に対するアクセス権限の制限と CDN による高速な画像配信の両立に力を入れました。 また、マルチリージョン対応についても議論しました。
3日目は、全体の処理の流れの整理や、実際の運用コストの見積りなどを行いました。 最後に、現在のアーキテクチャの課題について議論し、ここまでの経験をもとによりスケーラブルな別のアーキテクチャの構想を練ったりもしました。
チーム O でやったこと
チーム O ではまず、チャットサービスの特色を決め、要件を絞り込むことから始めました。
次に、使用する具体的なサービスの選定を行いました。 短期間での開発という前提条件があったため、開発コストや管理コスト、スケーラビリティを考慮し、AWS Lambda を基本とした構成にしました。 またデータベースについては、データの特性に応じて3種類のものを使い分け、パフォーマンスが向上するよう工夫しました。 特に RDS を使った部分については、SA の方に「AWS Lambda がスケールした際に RDS へのコネクション負荷が高くなりパフォーマンスが下がる」とのご指摘をいただき、最終的には Amazon RDS Proxy を挟むなどの対策をとりました。
またチーム O では、アーキテクチャの設計だけでなくデモの作成も行いました。 デモではチャット機能の他に、互いにユニコーン1を操作して交流する機能も実装しました。 今回の研修でデモを作成したのはチーム O だけで、SA の方からはお褒めの言葉をいただくなど、とても好評でした。
デモの作成においては、Amazon API Gateway の WebSocket API では バイナリフレームが扱えず、画像の投稿機能の実装を断念するという場面がありました。 これについても、SA の方からは「いざ実装してみるとできないことが分かる場合もあるので、実際に手を動かすことは非常に重要である」と評価していただけました。
参加者の感想
最後に、参加者それぞれの感想でこの参加レポートを締めたいと思います。 AWS Jumpstart for NewGrads の開催に関わられたスタッフや講師の方々、他のチームのエンジニアの方々には、この場をお借りして改めて感謝申し上げます。 本当にありがとうございました。
チーム N・yto
AWS は何度か EC2 や S3 を触ったことがあった程度でしたが、今回の研修を通して、AWS のサービスについて広く体系的に学ぶことができました。 ハンズオンやグループでのアーキテクティング課題など、実際に自分たちで手を動かすことが多く、中身の濃い3日間でした。 また、期間中は AWS のリソースが(良識の範囲内で)自由に使えたこともありがたかったです。 自分はハンズオンの延長で気になったサービスを触ったりしていましたが、チーム O がデモの作成までしていたことを知って、自分ももっと使いこなせたら良かったなと悔しい思いもしました。 新卒エンジニア全員が配属に関係なくこのような研修を受けることができて、すごく良かったと感じています。 ありがとうございました!
チーム N・uzimaru
普段はフロントエンドをメインでやっているので、AWS などのクラウドサービスを使う機会がほとんどなかったのですが、ハンズオンを通して使ってみることができてよかったです。 アーキテクチャの検討では、グループでの議論を通して自分だけでは気が付かなかった部分も気づけたのがよかったです。 とても充実した3日間の研修でした。
チーム O・shigechan
今回自分はデモの実装を行ったのですが、研修内においては AWS のサービスを(常識の範囲内では)利用し放題だったため、様々な角度から実装を試すことができたのがかなりありがたかったです。 おかげさまで AWS と連携するアプリケーションを作成する体験ができ、とても嬉しかったです。
チーム O・karaage
大規模なシステムが可用性を担保する仕組みを、サービス単位で細やかに理解できました。 事前学習動画や講義パートで得た知識を元に、アーキテクチャの検討をチームで議論したことで、知識の定着度や理解度が向上したため、大変実りのある研修となりました。 さらに SA の方の LT や懇親会での会話を通して、エンジニアとして成長するためのマインドや、先輩エンジニアがどのような心意気で仕事をしてきたかを伺うことができ、大きな学びが得られました。
お知らせ
2022・2023卒予定の高専・短大・大学・大学院・専門学校の学生を対象とした技術職向けのインターンシップ「PIXIV SUMMER BOOT CAMP 2021」の募集を行っています。
2021/06/25(金)締め切りですので、迷ってる方はまずお気軽にご応募ください。
2022新卒採用やアルバイト採用も募集中です。一緒に働きましょう!
-
アーキテクチャ設計は、ユニコーンリレーション合同会社という架空の会社の社員としてサービスを作るという設定で行われたため↩