Chapter 01

はじめに

はじめに

ご覧いただきありがとうございます。
私は普段、Ruby on Rails を用いて開発しております。
プライベートで、 Nuxt.js × Rails のアプリケーションを開発し、AWS Fargate にデプロイしまして、そこで得た知見・学びを output し更に理解を深める & 備忘録として残しておこうと思い、この本を執筆しました。
環境構築からデプロイまでを通した記事があまり見当たらないので、それらの技術に関心がある方の学習に少しでも貢献できると嬉しいです。

技術的に誤っている記載がありましたら、コメント等でご指摘いただければと思います。

このチュートリアルで行っていること

  • Docker を用いた開発環境の構築
    • フロントエンド側を Nuxt.js, バックエンド側を Rails で実装
  • AWS ECS(Fargate) でのインフラ構築
    • BFF(Backend For Frontend) のアーキテクチャを採用
    • SSL 対応
  • CircleCI による自動デプロイ
    • CircleCI の workflow の整備
    • 簡単なテスト(フロントエンド側は Jest, バックエンド側は RSpec)を実施

行っていないこと

  • 用語の解説や実装の説明
    • 「AWS ECSとは...? 」や「ここはこういう理由でこう実装・設定しています。」等の説明はあまりしておりません。
  • 認証周りの実装
    • JWT や Auth Module、 Cookie/Session 周りの内容はありません
  • TypeScript の導入
  • しっかりとした実装
    • アプリケーションの実装についてはかなり簡略化しています
    • どちらかというと AWS がメインです
  • しっかりとしたテスト
    • テスト基盤の構築は行っていますが、深堀りはしていません
  • npm packages の warning 対応

使用した技術(言語・フレームワークetc)

開発

  • Ruby 2.6.6
  • Ruby on Rails 6.0.3
  • MySQL 5.7.30
  • RSpec 4.0.1
  • Nuxt.js 2.0.0
  • jest 26.3.0
  • Docker 19.03.12
  • docker-compose 1.26.2

CI

  • CircleCI 2.1

インフラ

  • AWS
    • ECS(Fargate)
    • ECR
    • RDS
    • ALB
    • Route53
    • IAM
    • Certificate Manager
    • System Manager

インフラ構成

アプリケーション概要

アプリ名

  • zenn-app

概要

  • ブラウザでボタンをクリックすると、API を叩いて、タスク名を取得して表示する

github

https://github.com/hibriiiiidge/zenn-app

完成形のイメージ