RDS作成設定まとめ
Aurora and RDSサービスを選択して、「データベースを作成する」をクリック

エンジン設定
- エンジンタイプ: MySQL
- エンジンバージョン: MySQL 5.7.44-rds.20250103
- テンプレート: 無料利用枠
DB設定
- DB識別子:
laravel-rds-db - マスターユーザー:
admin - マスターパスワード: (設定したパスワード)※記録しておいてください
インスタンス設定
- DBインスタンスクラス: db.t3.micro
- ストレージタイプ: 汎用SSD (gp2)
- ストレージ割り当て: 20 GiB
ネットワーク設定
- VPC: Default VPC (vpc-949d95f3)
- パブリックアクセス: あり
- VPCセキュリティグループ: laravel-rds-sg(新規作成)
データベース設定
- 最初のデータベース名:
laravel_production - DBパラメータグループ: default.mysql5.7
- バックアップ保持期間: 1日
- 暗号化: 有効(aws/rds)
その他
削除保護: 無効(学習用)
マイナーバージョン自動アップグレード: 有効
セキュリティグループの設定
AWSコンソール画面でEC2サービスを選択して「セキュリティグループ」をクリック

先ほど作成したデータベースのlaravel-rds-sgがあるので、選択
インバウンドルールを編集
インバウンドルールとは
インバウンドルールで許可したIPアドレスだけがサーバーに接続できます。許可していないIPからの接続は全てブロックされます。
┌─────────────┐
│ あなたのPC
└──────┬──────┘
│ 接続リクエスト
▼
┌─────────────────────────┐
│ インバウンドルール
│ ✓ 設定したIP → OK
│ ✗ その他のIP → 拒否
└──────┬──────────────────┘
│ 許可
▼
┌─────────────┐
│ RDS MySQL
└─────────────┘設定内容
セキュリティグループ: laravel-rds-sg
- タイプ: MYSQL/Aurora
- ポート: 3306
- ソース: 「マイIP」で入力
- 説明: Local development accessなど
ソースで「マイIP」を選択できます
ローカル開発環境からアクセスする際、「マイIP」を選択すると現在接続しているネットワークのIPアドレスが追加されます。
グローバルIPアドレスは接続場所によって変わるため、自宅、カフェ、会社など複数の場所から作業する場合は、それぞれの場所のIPアドレスを個別に追加する必要があります。
また、LaravelをEC2にデプロイした後は、EC2インスタンスからRDSへ接続できるよう、EC2のセキュリティグループIDをソースとして追加します。
RDS接続情報
curlコマンドで確認
RDSでデータベース作成時に設定した「マスターユーザー」、「マスターパスワード」、「データベース名」を使用
# MySQLクライアントで接続テスト
mysql -h laravel-rds-db.c1ewmsukaqko.ap-northeast-1.rds.amazonaws.com \
-P 3306 \
-u admin \
-p laravel_production予算の作成
「請求とコスト管理」
予算タイプを選択
「コスト予算 – 推奨」 を選択

ローカルで Docker Sail 使っている Laravel プロジェクトのデプロイについて
「Docker 関連ファイルが入ったままデプロイでいいのか?」
docker-compose.yml がサーバー上にあっても実行されないため無害です。
わざわざ .gitignore に追加する必要はありません。DB 接続情報は .env ファイルで環境ごとに設定するだけで対応できます。
つまり本番環境(EC2/Lightsail/共用サーバー)では Laravel コードのみ使用し、MySQL は RDS を利用します。現状のリポジトリ構成のまま git push して、各サーバーで git clone または git pull すれば OK です。
Lightsail インスタンス作成
Lightsailとは?
基本定額定($5/月)データ転送が 1TB を超えた場合: $0.09/GB
インスタンス作成
Lightsail を開いて「インスタンスの作成」ボタンをクリック。
- インスタンスの場所アジアパシフィック (東京) ap-northeast-1
- プラットフォームをLinux/Unix
- ブループリントをOS のみ → Ubuntu 24.04 LTS
- インスタンスプランを$5 USD/月(512 MB RAM、1 vCPU、20 GB SSD)
- インスタンス名をlaravel-api

静的 IP の作成
上記でインスタンスが生成されたら、ダッシュボードからそのインスタンスを選択して、Networkingタブを選択
静的IPの作成をして「Attach static IP」を確認
サーバーの初期設定
インスタンス一覧の接続するインスタンスの右上のターミナルのアイコンをクリックしてSSH接続

インストール可能なパッケージリストを更新して、最新版に更新(コピペはショートカットでなく右クリック貼り付け)
sudo apt update && sudo apt upgrade -ysudo apt install -y nginx mysql-client php8.3 php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-xml php8.3-bcmath php8.3-curl php8.3-zip unzip git- nginx: Web サーバー(Laravel を公開するため)
- mysql-client: RDS に接続するためのツール
- php8.3: PHP 本体
- php8.3-fpm: PHP を nginx で動かすために必要
- php8.3-mysql: PHP から MySQL(RDS)に接続するため
- php8.3-mbstring: 日本語などマルチバイト文字処理
- php8.3-xml: XML 処理(Laravel が使用)
- php8.3-bcmath: 高精度計算(Laravel が使用)
- php8.3-curl: HTTP リクエスト(API 通信など)
- php8.3-zip: ZIP ファイル処理(Composer が使用)
- unzip: ZIP 解凍ツール
- git: GitHub からコード取得
Composer のインストール
Composer インストーラーをダウンロード
curl -sS https://getcomposer.org/installer | phpComposer を使いやすい場所に移動
curl -sS https://getcomposer.org/installer | php確認
composer --versionLaravel コードを配置
sudo mkdir -p /var/www
sudo chown -R ubuntu:ubuntu /var/www
cd /var/www/var/www/
┗ html/ (nginx のデフォルト公開ディレクトリ)Gitクローン
| 項目 | HTTPS | SSH |
|---|---|---|
| clone | 設定不要 | SSH鍵の登録が必要 |
| pull | 設定不要(公開リポジトリ) | SSH鍵の登録が必要 |
| push | Personal Access Token が必要 | SSH鍵の登録が必要 |
| 事前設定 | なし(pushする場合のみ認証設定) | SSH鍵生成 → GitHub登録 |
| 今回の用途 | サーバーで pull のみ → 最適 | push も必要なら推奨 |
ubuntu@ip-172-26-6-105:/var/www$ sudo chown -R ubuntu:ubuntu /var/www
ubuntu@ip-172-26-6-105:/var/www$ git clone https://github.com/idw-coder/laravel-rds.git laravel
Cloning into 'laravel'...
remote: Enumerating objects: 146, done.
remote: Counting objects: 100% (146/146), done.
remote: Compressing objects: 100% (108/108), done.
remote: Total 146 (delta 29), reused 131 (delta 14), pack-reused 0 (from 0)
Receiving objects: 100% (146/146), 99.18 KiB | 8.26 MiB/s, done.
Resolving deltas: 100% (29/29), done.
ubuntu@ip-172-26-6-105:/var/www$ Composer で依存関係をインストール
cd laravel
composer install --no-dev --optimize-autoloaderストレージ権限設定
Laravel のログやキャッシュ用のディレクトリに書き込み権限を設定
php artisan migrate:statusRDS のセキュリティグループに Lightsail の IP を追加する必要があります
sudo chown -R www-data:www-data /var/www/laravel/storage /var/www/laravel/bootstrap/cache
sudo chmod -R 775 /var/www/laravel/storage /var/www/laravel/bootstrap/cacheLaravel を公開するために Nginx を設定
sudo nano /etc/nginx/sites-available/laravelserver {
listen 80;
server_name 54.178.81.51;
root /var/www/laravel/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header X-Powered-By;
}
location ~ /\.(?!well-known).* {
deny all;
}
}sudo unlink /etc/nginx/sites-enabled/default設定ファイルの切り替え、テスト
ubuntu@ip-172-26-6-105:/var/www/laravel$ sudo unlink /etc/nginx/sites-enabled/default
ubuntu@ip-172-26-6-105:/var/www/laravel$ sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
ubuntu@ip-172-26-6-105:/var/www/laravel$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
ubuntu@ip-172-26-6-105:/var/www/laravel$ Nginx と PHP-FPM を再起動
sudo systemctl restart nginx
sudo systemctl restart php8.3-fpmブラウザでアクセスできるか確認
RDSの料金が割高な気がする
LightsailにDBのデプロイもまとめた方がいいかも