8tako8tako8’s blog

ソフトウェアエンジニア

Rails + React アプリを ECS Fargate にデプロイする【0. 総集編】

これは何?

SmartHR Advent Calendarシリーズ2の10日目です。

React と Rails で実装したWebアプリを、AWSの ECS Fargate にデプロイするまでの構築手順を全 8 回に分けて紹介します

前提

この記事に書いていないこと

  • ドメインの取得方法
  • 各設定の細かい意図
  • 以下は今後実装予定なので今回は書きません
    • CI/CD
    • Terraform等によるIaC

細かい仕様

  • バックエンドはECS Fargateにデプロイする
  • マルチAZ構成にする
  • ドメインを購入してhttps通信する
  • インターネットからの通信をロードバランサでECSへ振り分ける
  • データベースはRDS PostgreSQLを使用する
  • データベースはプライベートサブネットに配置する
  • 認証情報等はSystems Managerで管理する
  • 画像をS3に保存する
  • メールをSESで配信する
  • フロントエンドはS3をオリジンとしたCloudFrontで配信する

インフラ構成図

以下を構築します

注意点

  • AWSの利用料が発生します
  • 特に明記していない場合、東京リージョン(ap-northeast-1)で構築しています
  • 学習用のため、最小限のリソースで構築しています
  • IAMポリシーなどの権限を厳しく絞っていません
  • 記事内ではリソース名を適当に命名しています(hoge等)

構築手順

最後に

AWS を触るのが久しぶりだったのと、初 ECS だったのもあって若干苦戦した所がありましたが、なんとかWebアプリを動かすことができてホッとしています

今後は、GitHub Actions による CI/CD の構築と、Terraform による IaC に挑戦していきます!