AWS未経験の新卒エンジニアがAWS JumpStartに参加した感想

こんにちは、22卒エンジニアの 川本 です。

先日「AWS JumpStart 2023 設計編」という研修に参加してきました。

2日間と短い時間でしたが、とても内容が濃くて勉強になったので、本記事では研修の内容や参加した感想を綴っていきたいと思います。

AWS JumpStartとは?

AWS公式HPでは以下のように書かれております。

AWS JumpStart 2023 設計編」はAWS 初学者のエンジニアの方々を対象とした、実践的な研修プログラムです

将来的にAWS 活用をリードする人材になるための第一歩をスムーズに踏み出せるようなプログラムをご提供します

単なるAWS サービスの学習だけでなく、要件に合わせて適切なアーキテクチャを検討・設計する経験を積む部分にフォーカスした内容となっております

例えば、以下のような方々にもオススメです!

AWS の名前は知ってるが使ったことは無い

・ EC2 等の単体サービスは触ったことあるが、全体のアーキテクティングは経験がない

クラウドネイティブなアプリケーションを設計する上で重要な観点を知りたい

AWS初学者向けのクラウドアーキテクチャを検討・設計するイベントで、参加人数が600人以上いる大規模イベントでした。

プログラム内容

研修は以下の構成で行われました。

  1. 事前学習
  2. ハンズオン
  3. グループワーク

事前学習

研修参加前に事前学習として、AWS SAA向けの動画学習教材が送られてくるのでそちらでAWSの基本的なサービスについて学習します。

また、AWSのサービス説明だけでなく、アーキテクティングのコツみたいな内容も盛り込まれており、研修当日に非常に役に立ちました。

私は完全にAWS未経験だったため、こちらの教材で事前学習しておいてほんとによかったです。

ハンズオン

1日目にまずハンズオンがあり、AWS上にTodo管理アプリを構築するといった内容でした。

以下の図のように ALB + ECS on Fargate + Aurora MySQLアーキテクチャを構築しました。

ハンズオンの中で面白くて勉強になったのが、上記のアーキテクチャでECSタスクを片方停止させたときの挙動や、Aurora MySQLのフェールオーバーを実行したときの挙動を実際に手を動かして確認したことです。

ECSタスクが片方死んでも自動復旧している様子や、フェールオーバーしたことによりAurora MySQLのリーダーとライターが切り替わる様子を確認することができました。

このような実践的なハンズオンのおかげで、可用性やスーケラビリティを意識したアーキテクチャとはどういうことなのかというイメージがより具体的になりました。

また、ここまでのアーキテクチャを個人で作成するとお金がかかりますが、その辺りを意識せずにAWSサービスを触ることができるのもうれしいポイントですね!

グループワーク

2日目はグループで課題に沿ったアーキテクチャを構築するといった内容でした。

以下のような要件を満たすECサイトを構築してくださいという課題が与えられました。

  • 提供規模
    • 利用者数:数万人
    • ピーク時間帯:日本時間の朝夕
    • 提供エリア:日本
    • 提供プラットフォーム:web
  • システム要件
    • バックエンド:Java/Spring Boot(Dockerで開発中)
    • フロントエンド:TypeScript/ReactJS
    • データベース:MySQL
  • 必須機能
    • 商品一覧ページ
      • 商品情報
      • 商品画像
    • カート機能、購入機能
      • 決済、在庫管理、配送システムは外部のSaaS APIを利用するものとする
    • アカウント管理機能
  • 追加要件

普段からBUYMAの開発をしておりECサービスには馴染みがあったのでイメージしやすかったです。

しかしBUYMAは全ての箇所でAWS上のサービスを使っているわけではありません。

なので、BUYMAのこの部分はAWSだとこのサービスが使えるなというような観点でアーキテクチャを構築していきました。

このような観点でアーキテクチャを構築することでBUYMAへの理解も深まったので、私にとっては一石二鳥な課題内容でした。

最終的に構築したアーキテクチャは以下構成図です↓

工夫した点としては、

  • ECS on Fargateの構成によりコンテナのAutoScalingを実現してサーバーの可用性up
  • RDSはMulti-AZ構成として、障害発生時にフェールオーバーしてリーダー、ライターインスタンスが切り替わるようにして可用性up
  • ElastiCacheを使うことでデータベースクエリのレスポンスを高速化
  • Cloud Frontを使うことで静的コンテンツ配信の高速化

他にもCI/CDの整備やBIツールの導入、レコメンド機能への対応などを行いましたが、AWSにはそれぞれに適したサービスが用意されており、本当にサービスの種類が豊富だなと思いました。

研修を終えた感想

参加前はAWSについてはなんとなくサービス名を知っている程度でしたが、研修で実際にハンズオンで手を動かしたり、チームでアーキテクチャ議論をすることでAWSの全体感を掴むことができました。

また、Webアプリケーションのアーキテクチャを設計する上で意識すべき可用性やスケーラビリティについて学べたことが大きな収穫だったかなと思います。

AWSのサービス名について知っていても、アーキテクチャを設計する上で重要なことがわかっていないと適切なサービスを選択することもできませんし、設計することもできないと感じました。

最後に

今回の研修を機にインフラのことについても少し興味が湧きました。 AWS SAAの資格取得なども目指していきたいです。

最後に、このような素晴らしい研修を無償で開催してくださったアマゾン ウェブ サービス ジャパン合同会社の皆さま、ありがとうございました!

株式会社エニグモ すべての求人一覧

hrmos.co