こんにちは、NEW Dept/Pay ID Dev/Web Backendエンジニアをしている金子です。普段はPay IDに関するバックエンド周りの開発をしています。
3/14, 3/15の2日間に渡って開催されたAWS JumpStart 2024にBASEから4名のエンジニアが参加しました。普段はバックエンドを中心に業務しているエンジニアが、AWSの主要サービスを学び、アーキテクチャの検討をする貴重な経験ができましたので、感想を交えつつレポートしていきます。
AWS JumpStartとは
AWS JumpStartは、新卒を含むAWS初学者のエンジニアを対象とした、クラウドネイティブなテックリード人材を育成するための第一歩となる実践的な研修プログラムです。事前学習用動画と2日間の集中的なワークショップを通して、皆様が自走できる状態までシステムアーキテクチャ設計やAWSの理解度を一気に引き上げることを目的としています。
https://aws.amazon.com/jp/blogs/news/aws-jumpstart-2024/
AWSが開催する実践的な研修プログラムで、BASEでは今年もアプリケーションエンジニアのインフラ知識の底上げのために希望者が参加し、AWSサービスやアーキテクチャについて2日間学んできました。
使用するツール
- Zoom
今年はZoomでの開催でした - Slack
他の参加者やAWSの運営メンバーとコミュニケーションを取る際に使用します - Miro
オンラインホワイトボードでアーキテクチャ検討時に使用します
スケジュール
2日間 9:00~18:00で学習+アウトプットする充実した内容になっていました。
事前学習
参加前に事前学習動画と資料の案内があり、AWSの基礎を学ぶのに非常に分かりやすくまとまっている内容でした。これだけでも十分価値のある内容で、自分の場合は今まで体系的に学べてなかった部分が、するすると腑に落ちていく感覚でとてもありがたかったです。
- アーキテクティング基礎(1時間)
クラウドにおける設計原則、アーキテクティング - AWS 入門(3時間)
AWSの基本的な知識 - Webサービス超入門(pdf資料)
Webアプリケーションの仕組みについて
1日目
1日目は講義+ハンズオン中心でした。
講義全体の説明、自己紹介
はじめに全体スケジュールや本プログラムのゴールについての説明、Slack上での自己紹介の時間があります。また、プログラム全体を通してSlack上で自由に質問ができるので、気になった箇所があれば気軽に書き込み、この質疑応答を見るだけでも勉強になる内容が盛りだくさんでした。
講義
WEBアプリケーションの説明からHigh-Levelなアーキテクチャ図について等、丁寧に説明が進みます。フェーズや目的によって目指すべきアーキテクチャは異なるので、それらに合わせて最適なアーキテクチャを検討する必要があるわけですね。単にスペックの良いサーバーを大量に用意するだけでは、いくらでもコストがかかってしまうので、サービスの規模や要件に応じた適切なアーキテクチャの検討は非常に大切です。
ハンズオン
ワークショップ用のデモアカウントを使って実際に環境を構築します。このデモアカウントはワークショップ中は自由に使用して良いので、環境を破壊して再構築を繰り返しできます。後からやり直して復習もできるので嬉しいですね!
EC2の構成
素朴な構成ですが、VPCやセキュリティグループの設定など基礎的なサービスを使用します。ALB+ECS+RDSの構成
先ほどのEC2よりもスケーラブルで冗長化された構成です。私自身はEC2の構築経験しかなく、ECSは初めての体験で勉強になりました。
挙動確認
ECSのタスクやAurora MySQLインスタンスに問題が生じた際の挙動確認を行いました。
個人的には1日目の一番楽しみにしていたところで、定期的なリクエストを送りつつECSのタスクを1つ停止したり、DBをフェイルオーバーさせて挙動を確認しました。余裕を持ちながら監視するのは本番環境ではできないことですね!
CloudWatchの各種メトリクス確認
CloudWatch上で、先ほどまで動かしていたサービスのリクエスト数の変化やCPU使用率、メモリ使用率の確認を行いました。
ALBのリクエスト数
AuroraのCPU使用率
2日目
2日目はアーキテクチャの個人検討とグループワークが中心でした。
Daily Check-in, クイズ
2日目のスケジュールの確認やクイズを行い、前日の復習をします。
アーキテクチャ検討(個人ワーク・グループワーク)
ここからはより実践的な課題をしていきます。既存のチームメンバーが全員退職してしまうブラック企業の社員になり1日でアーキテクチャを検討します。この会社を救わなければ!という使命感から俄然やる気が出てきます。
個人ワーク
まずは個人検討で、提供規模・システム要件・必須機能から適切なアーキテクチャをMiroを使って作成します。実際に図に落とし込むのは、詳細を理解していないとなかなか難しい内容でした。グループワーク
Zoomで各チーム3~5名ほどに分かれてアーキテクチャをブラッシュアップしていきます。他の参加者と意見交換をしながら検討することで更に理解が深まりました。
成果発表と解説
代表して3チームから最終成果の発表がありました。各チームこだわりがあり、それぞれ違ったアーキテクチャ図になっているのも面白かったです。
そして最後にAWSのSolutions Architectによる解説があり、クロージングとなりました。
感想
参加メンバーから感想をいただいたので紹介します!
AWSを用いて0から何かを作っていく機会が長いこと無かったので、良いタイミングと捉えて参加しました!
前半の基礎知識の学習やハンズオンは、進み方がとても確実かつ丁寧で、初学者の方にはぜひおすすめしたい内容と感じました!
後半は前半で学んだことを用いてアーキテクチャの設計を実際に行う演習形式でしたが、知識の再確認としての良さだけでなく、他の人と作成したアーキテクチャについて意見交換や議論する機会があったことで、考えていなかった視点が知れたり共同でブラッシュアップしていく経験ができたりと、とても刺激的でした!
今後業務のなかでチャンスがあったときは、イベントを通じて得たものを活かしたいなと思います!
Pay IDでバックエンドエンジニアをしている竜口です。
今回参加した目的は、インフラに関する経験や知識が不足していることでどうしても開発のアプローチが少ないと感じることがありインフラの理解を深めることで、より幅広いアプローチができればと思い参加しました。
イベントでは、インフラの基礎から実際に構築する過程を体験し、全体像の理解を深めることができました。 さらに、課題に取り組む中で生じた疑問点や、AWSの仕組みについての詳細な説明を受けることができたのがとてもよかったです。 また、Slackで他の参加者の興味深い質問とその回答をみれたのは楽しかったし、より理解が深まりました。
イベント後に自社のコンソールを見て、今まで以上に自社の構成の解像度が上がったのを感じられて嬉しかったです! 今回の経験からまたステップアップして今後の開発に活かしていきたいです!
BASEでバックエンドエンジニアをしています。Futoshi Endoです。
参加しようと思ったきっかけは、直近の業務でAWSが提供している一部サービスに触れてみて、ちゃんと体系的に理解しようと思ったのが理由でした。その前にもAWSの資格試験の対策で問題集を解いてみたりした事はあったのですが、各サービスの特徴だったり、なぜこの構成で作るのかの背景について中途半端に学んで終わっていました。
AWS JumpStart2024に参加して良かったのは、まさにそこの理解が不十分なままで終わっていた箇所が、実際にアーキテクチャ図をかく作業を通じて、理解できた事でした。
また、他の参加者の方が考えたアーキテクチャ図を見ながら、AWSの運営メンバーとの議論されている内容も良かったです。
自分自身、参加する前はAWSについては苦手な傾向があったのですが、少しだけ自信がついたので、業務で触れる機会があれば積極的に挑戦しようとおもいました!
まとめ
BASEではtmpチャンネル(ワークショップ用の一時的なチャンネル)を作って、「この構成はBASEだとどうなっているんだろう」など内部でもワイワイしながら講義を受けました。自社のサービスに落とし込んだ場合のアーキテクチャがどうなるかを想像しながら進められるのも、普段の業務ではあまり考えることのない部分なので有意義で面白かったです。
AWSの苦手意識を払拭できたメンバーもいたりと、総じて非常に勉強になる貴重な体験でした。今後バックエンドエンジニアとして仕事するうえでも、webの開発観点だけでなくインフラ観点やAWSサービスへの理解を深めつつ、より良いサービスの提供に繋げていければと思います!
最後に、BASE では絶賛採用活動をしています。 興味がある方は以下のリンクからご覧なっていただけると幸いです! binc.jp