はじめに
はじめまして!今年アプリケーションチームに配属された、新入社員の園田・古山・白石です。
今回は、私たちが2024年5月21,22日に参加した、AWS JumpStart 2024 for NewGradsの体験記をお届けします。
これからイベントに参加する方、興味のある方の一助になればと思います。
AWS JumpStart とは
AWS JumpStart は、クラウドネイティブなテックリード人材を育成するための第一歩となる実践的な研修プログラムです。事前学習用動画と2日間の集中的なワークショップを通して、皆様が自走できる状態までシステムアーキテクチャ設計やAWSの理解度を一気に引き上げることを目的としています。
詳細な情報は公式サイトをご参照ください。
本イベントは、新卒社員を含めたAWS初学者を対象としており、私たちが参加した日程では、400人程度の方が参加していました。
Slack上で質問チャネルや雑談チャネルが用意されており、主催者・参加者共に活発にコミュニケーションをとっていました。
スケジュール
1日目: 講義 & ハンズオン
1日目は、講義とその内容についてのハンズオンが主な内容となりました。
初学者向けイベントであるため、簡単なサービスに関する解説とその立ち上げに関するハンズオンがメインとなりました。
午前と午後のそれぞれの内容を紹介します。
午前
講義はVPC,EC2,Amplifyの3つについて取り扱いました。講義を通じて、以下のようなことを学びました。
- VPC:仮想ネットワークの構築
- EC2:インスタンスとセキュリティグループの設定
- Amplify:Webアプリケーションのデプロイ
ハンズオンでは、VPCの構築・EC2インスタンスの作成・Amplifyを使ったアプリケーションのデプロイを実践しました。
Amplifyのハンズオンは、配布されたHTMLコードを使ってデプロイしました。
ソースコードをドラッグ&ドロップするだけで短時間のデプロイが可能な画期的なサービスであり、特に印象的でした。
午後
ALB,ECS,RDSについて学び、段階ごとのアーキテクチャを体験しました。
特に「障害を発生させない」ではなく、「障害が発生した時にいかに対応するか」という「Design for Failure」の考え方が重要で、障害発生時の対応方法やAutoScaling機能を用いた管理コストの軽減について学びました。
ハンズオンでは、TODO管理アプリを作成し、可用性を意識した構築を体験しました。
以下の3点を実装し、可用性を高めました。
- ECSによる、1つのコンテナが停止しても他のコンテナがその役割を引き継ぐことができる構造
- ALBによる負荷分散
- DBのフェイルオーバー機能
また、負荷テストを行うことで各サービスの性能や耐障害性を検証しました。
ハンズオンを通して、AWSサービスの柔軟性や、開発における計測・分析・改善のサイクルの重要性を実際に体感することができました。
2日目: クイズ & アーキテクティング課題
2日目は、要点整理とユースケースの理解を目的としたクイズが実施されました。
アーキテクティング課題は、お題となるサービスのアーキテクチャを考えるというものでした。
※課題内容に関しては、伏せさせていただきます。
この課題の狙いは2つありました。
- AWSサービスを用いてサービスを設計し、構成図に落とし込み、実践的な経験を積むこと
- アーキテクティングの際のトレードオフや各サービスの特徴をより深く理解すること
アーキテクチャはまず個人で検討・作成しました。
その後チームに分かれて個人で作成したアーキテクチャを用いて議論し、1つのアーキテクチャを作成しました。
以下の図が、私たちのチームで作成したAWS構成図です。
最後に成果発表会で81チームの中から3チームが、自分たちで作成したアーキテクチャを発表しました。
私たちのチームは選ばれませんでしたが、各チームはCI/CD環境や分析環境を追加しており、計測・分析・改善のサイクルを回すために必要な環境まで考えられている点が私たちと異なり面白かったです。
発表後にAWSソリューションアーキテクトの方からの解説があり、クロージングとなりました。
アーキテクチャ設計のポイント
イベントを通してAWSのコアサービスを利用したアーキテクチャ設計において、効率的なシステム構築を行うためには以下の点を意識することが重要だと学びました!
1. 「Design for Failure」を実現するための構成
フェイルオーバー構成やマルチAZデプロイ、Auto Scalingの活用をすることで、障害に備えた堅牢なアーキテクチャを設計できます。
2. 可用性と拡張性
継続的なサービス提供の可用性と需要の変動に合わせてリソースを自動で調整する拡張性を実装する必要がありますが、これはAuto Scaling,ELB,Route 53などを活用して実現できます。
3. 計測・分析・改善のサイクル
アーキテクティングではモニタリング・ボトルネックの発見→対策→改善のサイクルを継続的に回していくことが重要です。
4. シンプルな基盤から段階的に構成図を拡張する
段階的なアーキテクティングの図のように、初めから完璧を目指さず、徐々に必要な機能を付加していく方が、運用負荷が少なく、障害リスクも低減できます。
また、段階的に拡張する際は構成図の更新を怠らず、全体像を常に把握することが大切です。
所感
2日間の JumpStart を通して、AWS の基礎から実践までを体験できました。
グループワークでは、メンバー同士でアーキテクチャに関する議論を行うことで、AWSサービスに対する理解が深まり、非常に有益な経験となりました。
実際にAWSのサービスを操作することで、可用性・拡張性・自動化といった機能が重要であることを実感しました。
また、負荷テストを十分に行い、計測・分析・改善のサイクルを繰り返すことの重要性を学びました。
これらの知識と経験を業務に活かし、より良いサービスを作り上げていきたいと思います。
おわりに
AWS JumpStart 2024 for NewGradsの体験記をお届けしました。
私たちはAWSの知識が全くない状態でしたが、配布された事前学習用資料で基礎的な知識のインプットを行うことで、スムーズにイベントに参加できました。
今回のイベントを通じてAWSの主要サービスとアーキテクチャについて学ぶことができ、これからAWSを学んでいく上でいいスタートを切ることができたと思います。
このイベントで得た知識を活かし、実務においても引き続き努力していきます!
AWSを学んだことがない方や初学者の方には非常に良い内容となっていますので、ぜひイベントに興味のある方は参加してみてください!