LoginSignup
1
1

More than 3 years have passed since last update.

Elastic BeanstalkでLaravelとNuxt.jsをデプロイした時のメモ

Posted at

概要

  • 構成  undefined.jpg
  • Elastic BeanstalkでEC2とRDSを立てる
  • ドメインと証明書を取得して設定する
  • ロードバランサーとセキュリティグループを設定する
  • EB Cliを使用する

Elastic BeanstalkでNuxt.jsをデプロイ

AWSコンソール
- Elastic BeanstalkでNode.jsプラットフォームの環境を作成
- [設定] - [ソフトウェア] - [変更]でノードコマンドにnpm run eb-startを入力
- [設定] - [ソフトウェア] - [変更]で環境変数を設定

ローカル環境
- eb initを実行
- /package.json内のscripts"eb-start": "npm run build && npm run start",を追加
- npm installで失敗する場合
- /.npmrcファイルを作成してunsafe-perm=trueと入力
- 下記の内容で/.ebextensions/chown.configを作成

commands:
chown:
command: chown -R nodejs:nodejs /tmp/.config
test: cd /tmp/.config

- /Procfileがある場合は/.ebignoreファイルを作成してProcfileをデプロイしないようにする

eb deployでデプロイ

Elastic BeanstalkでLaravelをデプロイ

AWSコンソール
- Elastic BeanstalkでPHPプラットフォームの環境を作成
- [設定] - [ソフトウェア] - [変更]で環境設定でドキュメントルートに/publicを設定
- [設定] - [ソフトウェア] - [変更]で環境変数を設定
- [設定] - [データベース] - [変更] からRDSインスタンスを作成

ローカル環境
- eb init
- 下記の内容で/.ebextensions/permission.configを作成

files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_change_permissions.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
sudo chmod -R 777 /var/app/current/storage

eb deployでデプロイ

Route53でドメインを設定

下のページを参考にドメインと証明書を取得
https://qiita.com/sk565/items/2da1fc0c5fc676f54994
現在は東京リージョンでも証明書の発行ができるようだ
https://aws.amazon.com/jp/about-aws/global-infrastructure/regional-product-services/

セキュリティグループを修正

VPCのメニューからElastic Beanstalkで作成されたセキュリティグループを修正
- Nuxt.jsのセキュリティグループのインバウンドルールにHTTPSを追加
- LaravelのセキュリティグループのインバウンドルールにHTTPSとRDSのドライバを追加

ロードバランサーを作成

EC2のメニューからターゲットグループとロードバランサーを作成
- Nuxt.jsのインスタンスに80番ポートで接続するターゲットグループを作成
- Laravelのインスタンスに80番ポートで接続するターゲットグループを作成
- Nuxt.js用のロードバランサーを作成
- Nuxt.jsのセキュリティグループを紐づける
- リスナーの転送先にNuxt.jsのターゲットグループを設定
- Laravel用のロードバランサーを作成
- Laravelのセキュリティグループを紐づける
- リスナーの転送先にLaravelのターゲットグループを設定

ホストゾーンを作成

Route 53のでホストゾーンを作成
- ホストゾーンを作成
- レコードを作成
- ドメインとロードバランサーを設定

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1