概要
現在正社員としてバックエンド + インフラをメインにWeb系エンジニアをしている。
技術力の向上を目的に個人開発を行いたいと常日頃考えているが、現時点で開発したいアプリケーションがない状況である。
このまま考えてるだけでは時間がもったいないため、まずはモダンかつ定番なWebサービス構成を作ることにした。
これにより、いざ個人開発でサービスを作りたいと思った時にアプリケーション開発に注力できるようにする。
自分のスキル
-
実プロジェクトではJavaScriptをメインで使用している
- TypeScriptは使っていない
- Reactはある程度読むことはできるがガリガリ書いていない
-
AWSの設計・構築をメインで担当している
- ECSなどのコンテナサービスは使っていない
- CDKによるインフラコード化は経験あり
-
CI/CDに関して一定の知見はある
やりたいこと
以下技術も用いた構成を実現し、いざ個人開発でサービスを作りたいと考えた時にアプリケーション開発に注力可能とする
- 共通
- Docker
- フロントエンド
- React + TypeScript + ESLint
- バックエンド
- Ruby on Rails
- インフラ
- AWS Fargate
- その他(余力があれば)
- GitHub ActionsによるCICD実現
- Terraformによるインフラコード化
全体構成図
TBD - draw.ioで作成する
進め方
以下などの記事を参考に、構築を進める。
目次案
仮ではあるが、以下の流れで進めようと考える。
以下項目ごとにQiitaで記事を作成する。
- フロントエンドの環境構築(Docker + React + TypeScript + ESLint + Prettier + VSCode)
- バックエンドの環境構築(Docker + Rails)
- フロントエンドとバックエンドの連携
- フロントエンドのテスト整備(Jest)
- バックエンドのテスト整備(RSpec)
- フロントエンドのCI導入(GitHub Actions)
- バックエンドのCI導入(GitHub Actions)
- AWS概要
- AWS設定 & フロントエンドデプロイ
- AWS設定 & バックエンドデプロイ
- フロントエンドのCD導入(GitHub Actions)
- バックエンドのCD導入(GitHub Actions)
- Terraformにインフラコード化