こんにちは、ATOM事業本部の古川です。 今回、5月21日と22日の二日間で行われたAWS主催のAWS JumpStart 2024 for NewGradsというイベントに、弊社から馬場、廣瀬とともに3名で参加して来ました。 本ブログではそのイベントで体験してきたことや学んだこと、その感想を共有しようと思います。
AWS JumpStart 2024 for NewGradsとは
AWS JumpStart 2024 for NewGradsは、新卒エンジニアを対象としたクラウドネイティブアプリケーションの設計を学習するための実践的な研修プログラムになります。
1日目はクラウドネイティブアプリケーションの設計やEC2などの基本的なAWSサービスについての座学を受けながら、適宜説明されたAWSサービスを用いて実際にWebアプリケーションを実行するハンズオンを行いました。 具体的にハンズオンで触ったAWSサービスは以下のようになります。
- AWS VPC
- Amazon EC2
- EC2 Instance Connectエンドポイント
- Application Load Balancer
- Amazon ECS
- Amazon RDS(Aurora)
- AWS Amplify
- Amazon CloudWatch
- AWS CloudFormation
2日目は機能要件に加えて、可用性やスケーラビリティなどの非機能要件も満たすアーキテクチャを、クラウドの特性をいかしてどのように設計すればよいかを個人とグループで検討するということを行いました。最初は前日の座学で学んだ内容を前提としながら自身でアーキテクチャを考え、中間解説でアーキテクチャを考えるヒントが与えられ、最後にグループで話し合って最終的なアーキテクチャを設計するという流れでした。
基本的に座学よりもハンズオンや実際のアーキテクチャの検討に多くの時間が割かれており、実際にAWSサービスをどのようにアプリケーションの開発や運用に使用すれば良いかのイメージを掴むことが出来ます。
ここからは具体的に学んだ内容を紹介していきます。
学び
アーキテクチャを考える前に要件を十分に検討する
2日目のアーキテクチャ検討は提供規模、システム要件、必須機能のみの情報を与えられて開始されました。 そこで私は非機能要件やサービスの実際の挙動を考え出す前に、この機能を満たすためにはこのAWSサービスを使えば良いかなと反射的に考えて使用するAWSサービスを決定し、アーキテクチャ図を描き始めてしまいました。 そのため、中間解説で非機能要件やAWSサービスのクォータについてヒントがあり、それらを考慮できていなかったため、その後に大きく修正を加えることになりました。
そのため、要件を十分に検討する前に大まかな機能から使用するAWSサービスを決定すると、後から明示されていない要件や挙動を満たそうとした際に満たせなくなるので、最初に要件を細かに確認しておくことの重要性を感じられました。 今回の場合は特に最初に与えられていた必須機能も少なかったので、一般的なその用途のアプリケーションはどんな機能があると嬉しいかをきちんと詰めれていたらよかったと思います。
アーキテクチャを設計する際の考え方
上記の学びに通ずる部分もあるのですが、実際にアーキテクチャを設計する際にどのような部分に気をつけなければいけないのかを学べました。 具体的には可用性やパフォーマンス、スケーラビリティを満たすシステムを設計するに当たって、どのような指標を使って、その指標を満たすにはどのような設計にすればよいかを学べました。
これまでアーキテクチャの設計を行うことがなかったので、RTOやRPOなどの指標について考えたことがなく、これらの指標を満たすようにAWSサービスの機能や組み合わせを調べて、設計するというのはとても楽しかったです。
また、2日目のアーキテクチャ検討において、他のチームが自分のチームとは異なるAWSサービスを使ってアーキテクチャ設計を行っており、どのように考えているのかをグループで検討したり、他のグループの説明を聞いたりすることは非常に学びになりました。Amazon API GatewayとAWS Lambdaを組み合わせてWeb APIを実装する方法は詳しく知らなかったので時間のある際に調べてみたいです。
触れたことのないAWSサービス
私が知っているAWSサービスは業務で触れているものがほとんどなので、業務で使用しないAWSサービスに知れるのがとても新鮮で学びになりました。 具体的にはAWS AmplifyやAmazon API Gateway、AWS GlueなどのAWSサービスを新しく知りました。業務で使用していないAWSサービスでも今の業務に活かせるかも知れないので自分でも調べてみようと思います。
また、ハンズオンで触った新しいAWSサービスの中ではAWS Amplifyが一番印象的でした。ソースコードをアップロードするだけでデプロイまでを自動で行ってくれ、何か個人ででもWebアプリケーションを作る際は利用してみたいです。
終わりに
今回、AWSに詳しくない状態での参加でしたが、ハンズオンが丁寧に進められたおかげで、多くのことを学べ、とても実りのある二日間でした。 私はバックエンドエンジニアであまりインフラに関わっていなかったのですが、今後はインフラにも関心をよせ、インフラの業務にも取り組んでみたいという気持ちも生まれました。
また、今回参加したイベントには400名近くの人が参加しており、他の人が積極的に質問を投げたり、メッセージを投稿しているのを見て、今後のAWS学習のモチベーション向上にも大きく繋がりました。
今回のイベントに参加して、得たものが多くあったので、今後もこのようなイベントには積極的に参加していきたいと思います。 最後まで読んでくださり、ありがとうございました。