LoginSignup
0
0

【AWS】LaravelのDBをRDSからEC2に移行する

Last updated at Posted at 2024-06-02

移行目的

 個人開発アプリの運用には RDS は高いから。業務プロジェクトで RDS から EC2 に移行するケースはないと思う。

環境

# EC2 OS
$ cat /etc/system-release
Amazon Linux release 2023.4.20240429 (Amazon Linux)

# RDS DB Engine
$ aws rds describe-db-instances \
    --db-instance-identifier database-1 \
    --query 'DBInstances[0].[{Engine: Engine, EngineVersion: EngineVersion}]'
[
    {
        "Engine": "mysql",
        "EngineVersion": "8.0.35"
    }
]

手順

 EC2 インスタンスを作り、MySQL サーバ/クライアントをインストール。その後 dump をエクスポート/インポートする。最後に Laravel が参照する DB ホストを編集する。

1. EC2 インスタンスに MySQL をインストールする

パッケージインストール

package='https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm'
sudo dnf -y install $package
sudo dnf -y install mysql mysql-community-client
sudo dnf -y mysql-devel
sudo dnf -y mysql-server

サービス起動

sudo systemctl start mysqld
sudo systemctl status mysqld
sudo systemctl enable mysqld

初期パスワード確認

$ sudo grep 'temporary password' /var/log/mysqld.log
2024-06-01T22:51:54.694941Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /I1dkmqoj3SB

バージョン確認

# Client
$ mysql --version
mysql  Ver 8.0.37 for Linux on x86_64 (MySQL Community Server - GPL)

# Server
$ mysql -h localhost -u root -p$PW -e 'SELECT VERSION();'
+-----------+
| VERSION() |
+-----------+
| 8.0.37    |
+-----------+

2. 初期ログイン

初期パスワードを利用して接続

mysql -uroot -p/I1dkmqoj3SB

パスワード変更

ALTER USER 'root'@'localhost' IDENTIFIED BY 'aV>#fSlBF06+';

ユーザーホスト変更

RENAME USER root@localhost to 'root'@'%';

3. データベース移行

RDS から dump をエクスポートし、EC2 の MySQL にインポートする。

4. セキュリティグループ設定

Laravel 側 EC2 ※インバウンドルールなし

image.png

MySQL 側 EC2 ※アウトバウンドルールなし

image.png

5. .env を編集する

DB_HOST を EC2 のプライベート IP アドレスに変更

.env
- DB_HOST=database-1.c3a7vynvhtxw.ap-northeast-1.rds.amazonaws.com
+ DB_HOST=172.31.32.112 

参考

0
0
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
0
0