##やろうとしたこと
ec2上でphp artisan migrateを実行してデータベースマイグレーションしようとを思ったらハマってしまったのでメモしておきます。
##エラー内容
$ php artisan migrate
**************************************
* Application In Production! *
**************************************
Do you really wish to run this command? (yes/no) [no]:
> yes
In Connection.php line 669:
SQLSTATE[HY000] [2002] Connection timed out (SQL: select * from information_schema.tables where table_sc
hema = larans and table_name = migrations and table_type = 'BASE TABLE')
In Connector.php line 70:
SQLSTATE[HY000] [2002] Connection timed out
データベースに接続できなくてタイムアウトしてしまいました。
##原因
インバウンドルールでEC2インスタンスで使用しているセキュリティグループではなかったためでした。
##対策
- RDSのセキュリティからVPCセキュリティグループを選択。
- 次にインバウンドルールからインバウンドのルールを編集を選択。
- ソースにEC2インスタンスで使用しているセキュリティグループを設定
##<考察> なぜインバウンドルールをセキュリティグループにするのか
ec2からrdsに接続するためec2のセキュリティグループをインバウンドルールで許可し、ec2からの接続を可能にするためだと思います。
##参考
https://noumenon-th.net/programming/2020/04/10/ec2-rds-laravel/