AWS Angel Dojo 2023 に参加しました
昨年開催された「ANGEL Dojo」に参加したので振り返りたいと思います。(おそい)
ANGEL Dojoとは
ANGEL Dojoは、AWS(Amazon Web Service)が主催する若手エンジニア向けのトレーニングイベントになります。
ANGEL=APN Next Generation Engineer Leaders
ANGEL Dojo=ANGEL Dojo for エンドユーザー with AWS パートナー
という意味らしいです。
内製化に取り組むエンドユーザー企業とAWSパートナー企業が参加しています。参加企業↓
基本的には2社で1組のチームを作り、各チームはメンターのサポートを受けながら、実際にサービスの企画、設計、開発、発表までを行うことで、実践的なスキルを身に付けることができます。木曜・金曜(終日)に参加し、期間は約3ヶ月です。
参加前と参加後の自分の比較
ANGEL Dojoに参加する前と後の私を比較をしてみました。(個人的な感覚です)
参加前
スキルセット
- 実プロジェクトでバックエンド開発を3ヶ月程度
- AWSサービスはマネジメントコンソール上でちょっとポチポチ操作してたくらい
心境
- おっ、なんかAWSサービスに詳しくなれそうなイベントがあるっぽいぞ。参加してみようかな。
- 若手エンジニアとはいえ、レベル高いんだろうなあ。ついていけるかなあ。
- 人前で意見言うのあんまり得意じゃないんだよなあ。LTとか全然やらないし。
参加後
スキルセット
- ペルソナ定義 → サービス企画 → アプリ開発 を一通り経験
- IaC(CDK)を使ったサーバレスアプリケーションを構築
- Stripeを使った決済処理に挑戦
- フロントは全くやってない(別メンバーがやってくれました)
心境
- ANGEL Dojoでは単にAWSサービスを勉強するイベントではなく、顧客課題を解決するにはどうしたらいいのかをよく考えてた。AWSサービスについては自分で調べて分からなかったらメンバーに相談して一緒に考えてもらってた。
- LTした。皆さんのリアクションがとてもいい!
- 手を挙げればLTできる機会があります。話す内容は何でも良いです。私は旅行した帰りの渋滞が辛かった話をしました。
- AWS認定取りたい
- 参加メンバーがAWS認定を多く取得していることが刺激になり、後に全冠達成しました。
- https://zenn.dev/ncdc/articles/27fdbdd524016a
- 知り合いが増えたし、何よりめちゃめちゃ楽しかった!
制作物
私たちのチームが作成したサービスについて説明します。
chacca
「chacca」というサービスを作りました。chaccaは、 自分がやるべきタスクに対して金額と開始期限を設定して、タスクを始めることができなれけば自動的に課金されてしまう サービスです。資格取得やTOEIC、ダイエットなど、 自分にとってやるべきことはあるけど、なんか動けない 方をターゲットとし(私もターゲットの一人)、タスクを始めるきっかけを作ることで利用者を応援します。
以下は最終発表で使用したスライドより一部抜粋したものです。
アプリの画面、タスク開始のボタンを押したときのアニメーションなどかなりこだわっているので、技術も含めて興味のある方はこちらの記事を参照ください。(一緒に参加したメンバーが執筆しています)
アーキテクチャ
アーキテクチャは以下のようになりました。フロントエンドはAmplifyでホスティングし、バックエンドはタスクの作成や編集を行うCRUD処理部分、タスク開始が近づくと通知を飛ばす事前通知処理部分、タスクが開始されなかったときの決済処理部分に大きく分けて開発しました。
私は基本バックエンド側(API、データベース、イベント駆動系の処理、決済処理)の開発を担当しました。CDKでのリソース構築、DynamoDB Streams、SQS、SES、Stripe(決済サービス)など、初めてのものばかりで結構大変でしたが、あーでもないこーでもないを繰り返して、動くものができたときの達成感はすごかったです。また、困った時はメンバー、メンターが相談に乗ってくださるので、安心して開発を進められました。
開発期間が思ったよりも短く、決済処理まで作るのは間に合わないんじゃないか?と思われましたが、タスクを一部他のメンバーに渡したり、密にコミュニケーションが取れていたので最終的になんとか実装することができました。(厳密にはStripeはテスト環境を使用したため、擬似的な決済処理になります)
よかったこと
運用を楽にし、デプロイがどんどんでき、セキュリティをちゃんとする
-
運用を楽にし、
-
デプロイがどんどんでき、
-
セキュリティをちゃんとする
課題
- CloudFrontが二重になってる
- Amplifyの内部でCloudFrontが動いてるが、AmplifyでWAFの設定ができないので仕方ない気がする...
- CDKはスタック分けしてないのでコードの可読性が悪い。共同で開発がしづらい
- 処理部分が3つに分かれてるので、それで分ければよかった
終わりに
いかがだったでしょうか。本格的なサービス設計から開発までを一通り経験し、何から何まで勉強させていただきました。3ヶ月という短い期間でしたが、本当に有意義な体験だったと思います。
ANGEL Dojoの参加にあたり多くの方々にご支援をいただきましたので、この場をお借りして改めて御礼申し上げます。ありがとうございました。
NCDC株式会社( ncdc.co.jp/ )のエンジニアチームです。 募集中のエンジニアのポジションや、採用している技術スタックの紹介などはこちら( github.com/ncdcdev/recruitment )をご覧ください! ※エンジニア以外も記事を投稿することがあります
Discussion