
「AWS JumpStart 2023 for NewGrads 設計編」に参加した件について
-
2023年10月17日
こんにちは、今年入社した新卒エンジニアM.Dです。
今回は9月にあった新卒エンジニア向けの「AWS JumpStart 2023 for NewGrads 設計編」研修に参加した話を紹介したいと思います。
AWS研修には今年の新卒エンジニア4名が参加しました。
私と他の参加者の方々の意見も含めて研修で何を感じてどんな成果があったのかまとめてみたいと思います。
参加者
K.H / 基盤開発
M.D / クライアントエンジニア
M.M / クライアントエンジニア
C.J / サーバーエンジニア
AWS JumpStart 2023 for NewGrads 設計編
AWS JumpStart 2023 for NewGradsとは? :
AWSから開催される2023年卒の1年目エンジニアの方々を対象とした、実践的なアーキテクティング研修プログラム
『AWS JumpStart 2023 for NewGrads 設計編』について
M.M :
『AWS JumpStart 2023 for NewGrads 設計編』とは新卒 1 年目のエンジニアを対象とした実践的な研修プログラムで、AWS サービスの学習だけでなく、要件に合わせて適切なアーキテクチャを検討・設計する経験ができる2日間の研修になっています。参加者は300人ほどで、色んな分野の新卒エンジニアが参加されていました。グループワークでは、ココネの新卒エンジニアで1チームになって、同期たちと存分に意見を交わすことができました!
研修の内容について
C.J :
1日目には講義を通して、AWSのコアサービスである、
などに触れながら、ユーザの規模に応じて安定したサービスを提供するためのアーキテクティングについて学びました。 アーキテクチャ設計の際に意識すべきことは、信頼性・パフォーマンス・開発や運用の効率・コスト・セキュリティを考慮することでした。 特に、「EC2体験」と「ToDo管理アプリをクラウド上で構築」の2つのハンズオンを通して、手を動かしながら仮想サーバーやアーキテクチャ設計の全体像を把握することができました。
2日目の午前中は、クイズを通して学んだことをおさらいしました。 クイズは、ある要件が与えられ、それに適したアーキテクチャ設計を選択する問題で構成されていたので、問題を解くよりは実際に現場で設計をする感覚でした。 午後は、「ECサイトローンチのためのアーキテクチャ」をお題とするグループ課題に取り組みました。
K.H :
研修は2日間にわたって開催されました。大まかな内容は以下になります。
1日目
2日目
実習について
M.D :
初めて接する知識が多かったので、難しかったところもありました。しかし、事前学習として1時間、3時間の映像を見る課題がありましたので、実際の研修が始まる時は背景知識があったので理解の助けになりました。実習前に十分な講義を聞いてゆっくり実習を進めるので実習自体には大きな問題はありませんでした。また、グループ課題では、同じチーム同士でチャットルームで意見を交わしながら進行するため、皆の知識を合わせて実習することができました。初めて研修に参加する方に怖がる必要はないと言いたいです。
成果
研修の2日目は、要件に合ったアーキテクチャ設計をすることが実習内容として与えられました。 ここでは実習成果物について書きたいと思います。
個人成果について
C.J :
ドメイン名登録やDNS機能、リソースの正常性のためにRoute53を使いました。また、webサービスの負荷を分散する目的でALBを採用しました。商品の画像データなどをS3に保存し、CloudFrontによるデータのキャッシュ化でさらなる負荷軽減が期待できます。3つのAvaliability Zone(以降、AZ)を利用することによって、一部のAZが使えなくなっても継続してサービスの提供ができるように構成しています。Dockerを用いて開発中だったので、ECSとFargateでインフラ管理の負担を減らしました。データベースにはMySQLを利用していたため、Aurora MySQLを採用し、2つのAZにリードレプリカを置くことによってデータの読み込み負荷を軽減しました。最後に、CloudWatchを配置して、サービスのモニターリングができるようにしました。
M.M :
提示されたwebサイトを実現できることや、可用性やスケーラビリティを考慮して、これまでに学んだ構成をもとにアーキテクチャ図を作成しました。 また、運用の観点から できるだけ単純な構成を意識して、現段階ではキャッシュを使わない判断をするといった点を特にこだわりました。
K.H :
AZを2つ構成にすることによって可用性(システムが継続して稼働できる能力)を上げています。 静的なコンテンツ(画像、動画)などはs3に保存し、CloudFrontを用いることによって、アクセスを高速化させています。また、ElastiCacheを用いて、よくアクセスするデータをキャッシュして高速化させています。
M.D :
ルート53を通じてDNSを管理し、Cognitoを通じて悪性ボットからのアクセスを防止し、ユーザー認証を管理しています。また、ユーザーか悪性ボットかを区別するためにWAFを通じてセキュリティに気を使いました。アクセスを分散化するためLoad Balancingを通じて動的データを管理し、Cloud Front-S3を 通じて静的データを管理する方式で設計しました。サーバ側はコンテナ化し、 CloudWatchを通じてリソース使用率を監視してAuto Scalingをするように設計しました。故障した場合に備えて、データベー ス側はリードレプリカを用意し、ElastiCacheを通じてデータの キャッシュ化を設計しました。
グループ:
グループ実習としては、ココネの新卒エンジニアたちが同じチームになって課題に取り組みました。個々人で作ったアーキテクチャをもとに、意見を交わしながらグループでのアーキテクチャを作成しました。
アーキテクチャの特徴はシンプルでコストを無駄にしないために不要な機能を省いた構造ということです。可用性を気にして、コストを削減するため、AZを2つにしました。
また、 Cloud Watchを通じてリソース使用率を監視し、Auto Scalingを通じてCPUに負担がかからないようにしており、WAFを通じて悪性ボットなのかユーザーなのかを検査することでセキュリティにも気を配っています。
最後に
感想
ここでは『AWS JumpStart 2023 for NewGrads 設計編』に参加した私の感想を書きたいと思います。個人的にはやはり一人ではなくチームとして目標を達成するために最も重要なのはコミュニケーションだと思いました。短い研修だったので一人では理解できなかったところもありましたが、チームメンバーとの対話を通じて自分が足りない部分を埋めることができ、自分が十分に理解した部分は共有を通じてチームメンバーの理解を助けることができました。また、AWSについて今まではあまり勉強したこともなく関わったこともなかったので具体的にどんなものなのか知りませんでしたが、今回の研修を通じてAWSを利用すればインフラ構築する上で多くの時間節約ができ、どの部分でAWSを活用できるのかを学ぶことができたので有意義な研修だったと思います。今回の機会を通じて学んだAWSとインフラ関連知識をもっと勉強して知識を拡張させたいと思います。
これからココネでやっていきたいこと
私はクライアントエンジニアなのでAWSでインフラを直接構築をする機会はないと思いますが、今回のAWS研修を通じて、思ったよりAWSによる構築は難しくなかったし、短期間使用すれば費用も思ったより安いことが分かったので、開発するにあたってAWSを通じてサーバテスト環境を構築しサーバテストを行うのに利用できるのではないかと思いました。また、今関わっているプロジェクトでオートスケーリングやインメモリ化などサーバーやデータベースの負担を軽減できる手段を使っているかどうか点検などをしてみたいと思います。いつかAWSを通じたインフラ構築関連の仕事があれば挑戦してみたいと思います。