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等)
構築手順
- 1. IAM編
- 2. ネットワーク編
- 3. Route 53・ACM編
- 4. ALB編
- 5. RDS編
- 6. S3・SES・Systems Manager編
- 7. ECR・ECS編
- 8. CloudFront編
最後に
AWS を触るのが久しぶりだったのと、初 ECS だったのもあって若干苦戦した所がありましたが、なんとかWebアプリを動かすことができてホッとしています
今後は、GitHub Actions による CI/CD の構築と、Terraform による IaC に挑戦していきます!