2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【たぶん真似るだけ】AWS EC2上に、Laravel Sailで動作環境を構築する

Last updated at Posted at 2024-08-07

ふとしたきっかけで、Laravel Sailを用いて作ったプロジェクトを、せっかく作ったのでWEBに公開できるよう準備しようと思い立ちましたので、AWS上に環境を構築しました。

ちなみに作成したプロジェクトは公開されております。

しかしsailが便利すぎて「あんなたくさんのコンテナに該当する環境、いちいち作っとられるかい!」と率直に思い、「もうええわEC2上に同じようにsailで環境作ったらそれでいったんよし」という死ぬほど雑な思考で「とりあえず動くもの」ということで環境構築しました。

まじで恥ずかしい。

概要

パブリックサブネット内に立ってるEC2上での作業内容になります。

実作業記録

プロジェクトのクローン

Gitのインストール

# システムのパッケージを更新
sudo yum update -y
# Gitをインストール
sudo yum install git -y

SSHキーの作成

# RSA 4096ビットのSSHキーを作成
ssh-keygen -t rsa -b 4096 -C "sample@hogehoge.jp"

SSHの公開鍵を取得

# ホームディレクトリに移動
cd
# .sshディレクトリに移動
cd .ssh
# ディレクトリの内容を表示
ls
# id_rsa.pubファイルを表示
less id_rsa.pub
# → 取得した公開鍵はGitLabに設定

プロジェクトのクローン

# /homeディレクトリに移動
cd /home
# ssm-userディレクトリに移動
cd ssm-user
# プロジェクトをクローン
git clone <プロジェクト指定>

Dockerのインストール

# システムのパッケージを更新
sudo yum update -y
# Dockerをインストール
sudo dnf install -y docker
# Dockerサービスを開始
sudo systemctl start docker
# Dockerサービスを自動起動に設定
sudo systemctl enable docker
# Dockerグループに現在のユーザーを追加
sudo usermod -aG docker $USER
# Dockerグループにssm-userを追加
sudo usermod -aG docker ssm-user
# シェルを再起動してグループ変更を反映
exec $SHELL -l
# Docker Composeをインストール
sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Docker Composeの実行権限を設定
sudo chmod +x /usr/local/bin/docker-compose

Node.jsのインストール

# Node.js 20.xのセットアップスクリプトを実行
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -

プロジェクトディレクトリに移動

# プロジェクトディレクトリに移動
cd (プロジェクトディレクトリパス)
# ディレクトリの内容を表示
ls

PHPとComposerのインストール

# PHPと関連パッケージのインストール
sudo dnf install -y php-cli php-json php-zip wget unzip
# Composerのインストールスクリプトをダウンロード
curl -sS https://getcomposer.org/installer | php
# Composerをグローバルにインストール
sudo mv composer.phar /usr/local/bin/composer
# Composerの実行権限を設定
sudo chmod +x /usr/local/bin/composer

Composerでパッケージをインストール

# PHPのXMLとDOMパッケージをインストール
sudo dnf install -y php-xml php-dom
# Laravel Sailをプロジェクトに追加
composer require laravel/sail --dev
# sailコマンドのエイリアスを設定
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

.envファイルの作成

# .env.exampleをコピーして.envを作成
cp .env.example .env
# .envファイルを編集
sudo vi .env

コンテナ立ち上げ

# コンテナ立ち上げ(なぜかssmで入り直したらできた)
exec $SHELL -l
sudo systemctl status docker
sudo systemctl restart docker
cd (プロジェクトディレクトリパス)
./vendor/bin/sail up -d

artisanで準備

./vendor/bin/sail php artisan key:generate
./vendor/bin/sail php artisan migrate

vite.config.jsを編集

以下追加

  server: {
    host: '0.0.0.0',  // 外部からのアクセスを許可するため
    port: 5173,  // Viteサーバーのポート番号
    hmr: {
      host: '18.182.107.191',  // EC2のパブリックIPアドレス
      port: 5173,
    },
  },

viteの再起動

./vendor/bin/sail npm run dev

AWSのセキュリティグループ設定

  • vite用にセキュリティグループで5173を解放
  • phpmyadmin用にセキュリティグループで8080を解放

終わり

さすがにできないことないだろと思いつつ、やってみてできるとやっぱりなるほどとなる場面が多数。でもさすがに恥ずかしすぎる環境構成なので、やってみた後から「ちゃんと作るか。。。」となったのは開発者のサガだと信じています。

マテ次回。

2
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?