💨
Next.js(SSR)アプリをCI/CDでECSへデプロイして独自ドメインでCloudFrontを立てるサンプル
こんにちは、今回はNext.jsのアプリをAWS環境でCI/CDでECSへデプロイして独自ドメインでCloudFrontを立てるサンプルを作ってみたので紹介します。
モチベーションとしては、以下です。
- AWSを久々に触ってみたかった
- WebアプリをAWS(ECS)にデプロイするときに必要なこと/ものを復習しておきたかった
- 作り込んだサンプルを一つ用意しておきたい
- ひとまず動くところまで作りたい
コード
構成図
この構成では、以下のAWSサービスを利用しています:
- VPC: アプリのネットワーク基盤
- ECS (Fargate): コンテナ化されたNext.jsアプリケーションを実行
- ECR: Dockerイメージのリポジトリ
- ALB: HTTPトラフィックのロードバランシング
- CloudFront: CDN
- Route53: DNS
- ACM: SSL/TLS証明書の管理
- SSM Parameter Store: 環境変数や機密情報の管理
- CodeBuild/CodePipeline: CI/CD
- NATゲートウェイ: プライベートサブネットのECSからのインターネット接続
ハマった・今後改善したい
prisma使えない
ひとまず、以下で動いた。
FROM node:20-slim
# 必要なライブラリをインストール
RUN apt-get update -y && apt-get upgrade openssl -y
...
環境変数の渡し方
なんか汚い
IAMのpolicy修正
resourceを絞りたい
Discussion