詳細はqiitaで語ってます!
SAKITOは私が所属している学生団体「Cirkit」が開発・保守をしている学内向けアプリです。 学生などが作成したアンケートを他の学生が回答することで、ポイントがもらえます。 そのポイントを使用してガチャを回し、当たると学食や学内コンビニの一部商品の無料券がもらえます。
今回は、 PaaSからAWSへの移行 を実施しました。
移行リーダー / インフラ
以前まで使用されていたPaaSは、githubリポジトリのmainブランチにマージされたら自動的にデプロイされる機能がありました。 App Runnerにも同じ機能はありますが、versionの問題で実行できませんでした。
そこで、ECR上のイメージを取得してビルドする形式に変更し、同時にリポジトリのmainブランチにマージされたら自動的にECRにイメージをビルド、pushするGHAを構築しました。
CDKのdeployはローカル上でもできますが、もしメンバーが別々にデプロイしたら衝突が起こりますし、本番環境では起こしてはいけません。
そのため、ステージング環境、本番環境ともに、特定のブランチにマージされたら自動的にAWS環境に反映させるGHAを構築しました。
AWSはその幅広い領域から、引き継ぎが非常に難しい領域だと感じています。 特に学生団体は最短4年間しかいれません。 そのため、引き継ぎをしやすくするため、ドキュメントを充実させています。
また、技術スタックを少しでも減らすため、そこまでクセのないTypeScriptをCDKの言語として選択しました。