AWS Code Build、Code Deploy、GitLab で AWS (アマゾン ウェブ サービス) Elastic Beanstalk、Docker、CI/CD パイプラインを活用すると、Next.js ウェブ アプリケーションの本番環境へのデプロイを合理化かつ効率的に行うことができます。このガイドでは、アプリが堅牢でスケーラブルで、保守が容易であることを保証するための最新のデプロイメント パイプラインのセットアップについて説明します。
展開プロセスに入る前に、次のことを確認してください:
AWS 内に Elastic Beanstalk 環境を作成する権限を持つ AWS ルート アカウントまたは IAM アカウント
ローカル マシンにインストールされた Docker
Next.js アプリのリポジトリを含む GitLab または GitHub アカウント
デプロイの準備ができた Next.js プロジェクト
アプリケーション名を入力し、[作成]をクリックします。
アプリケーションを作成したら、次は新しい環境を作成します。 「新しい環境の作成」をクリックします。
AWS Code Pipeline を通じて独自のコードをデプロイするため、アプリケーション コードで [サンプル アプリケーション] を選択します。
プリセットではデフォルトのままにすることができますが、実稼働アプリケーションの場合は、高可用性インスタンスを使用することをお勧めします。プリセットを選択したら、「次へ」をクリックします。
既存のサービス ロールを作成または使用します。 EC2 インスタンスの作成を続行する前に、Elastic Beanstalk サービス ロールと EC2 サービス ロールをセットアップすることが重要です。
ただし、ターミナルから EC2 インスタンスに SSH 接続する場合は、EC2 キー ペアを追加し、必要な操作を実行するために EC2 インスタンス プロファイルを作成します。
データベースを設定する必要がないため、[次へ]をクリックして次のステップに進むことができます。
ルート ボリュームには、汎用 SSD を選択します。
セキュリティ グループから、既存のセキュリティ グループから選択するか、そのままにしておくことができます。EC2 インスタンスのセットアップ中に Elastic Beanstalk がセキュリティ グループを作成します。
運用目的でデプロイする場合は、自動スケーリングを設定し、トラフィックを処理するために Elastic Beanstalk が作成するインスタンスのタイプを選択することを常にお勧めします。 t3ファミリーと一緒に行きます。
[次へ]をクリックします。
健康レポートでは基本レポートを使用しますが、必要なレポートの種類に基づいて利用可能なオプションから自由に選択してください。
デモ ウェブサイトには必要ないため、マネージド プラットフォームのアップデートのチェックも外します。
残りの設定はそのままにして、「次へ」をクリックします。
最後に、変更内容を確認して、[送信] をクリックします。
Elastic Beanstalk が環境を起動しますが、しばらく時間がかかります。
npx create-next-app@latest nextjs-blog --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
すでに既存のコードの準備ができている場合は、次のパートに進んでください
cd nextjs-blog
次に、次のコマンドを実行します:
npm run dev
これにより、Next.js アプリの「開発サーバー」 (詳細は後ほど) がポート 3000 で起動します。
動作するか確認してみましょう。ブラウザで http://localhost:3000 を開きます。
今度は、アプリケーション内に Dockerfile を作成します。
アプリケーションのルートに Dockerfile という名前のファイルを作成し、次のコードを追加します。
FROM node:18-alpine RUN mkdir -p /app WORKDIR /app COPY . . RUN npm install RUN npm run build EXPOSE 3000 CMD ["npm", "start"]
docker build -t testapp .
ビルドが成功したら、次のコマンドを使用してアプリケーションを実行します:
docker run -p 3000:3000 testapp
version: 0.2 artifacts: type: zip files: - '**/*'
AWS マネジメント コンソールにログインし、[コード パイプライン] に移動して、[パイプラインの作成] をクリックします。
有効なパイプライン名を入力し、パイプラインの実行モードを選択します。この例では、[Queued] (パイプライン タイプ V2 が必要) を選択します。
新しいサービス ロールが存在しない場合は作成するか、既存のサービス ロールから選択して [次へ] をクリックします。
ソースプロバイダーから、アーティファクトの保存場所を選択します。 「Gitlab」を選択します。
接続リストから既存の接続を選択するか、新しい接続を作成します。
接続が成功したら、コードが使用されるリポジトリ名とブランチを選択します。
トリガー タイプとして [フィルターなし] を選択し、[次へ] をクリックします。
[コード パイプラインの続行] をクリックすると、ウィンドウが自動的に閉じて、コード パイプライン画面に戻ります。
ビルド タイプを単一ビルドとして指定し、[次へ] をクリックします。
Next.js ウェブアプリケーションを本番環境にデプロイするのは非常に簡単で、AWS Code Build、Code Deploy、GitLab を使用した AWS Elastic Beanstalk、Docker、CI/CD パイプラインを使用するとより効率的に実行できます。
Elastic Beanstalk が提供する URL を使用してアクセスできます。ローカルで変更を加えると、ブランチにプッシュすると自動的にデプロイされます。
コーディングを楽しんでください!!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3