0
0

More than 1 year has passed since last update.

EC2にデプロイしたLaravelからRDS (SQL Server)へ接続する

Posted at

はじめに(前提条件)

この記事では、AWS上でRDS (SQL Server)を作成し、EC2インスタンスからマイグレーションが成功することを目標とします。
そのためEC2でのLaravelアプリのデプロイは完了しているものとします。

Webサーバはnginxを使用しています。

RDSのDBインスタンス設定

データベースの作成

それではまずデータベースを作成します。
公式サイトに手順が分かりやすく載っていたのでそちらに沿って作っていきます。
SSMSからの接続まで説明されているのでせっかくなので接続できるか確認しておきましょう。

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

次に、EC2からアクセスするために必要な設定をします。
先程作成したDBインスタンスのページを開き、「接続とセキュリティ」タブからVPCセキュリティグループの
リンクをクリック
image.png
このセキュリティ設定のインバウンドルールを編集します。
以下のように設定し、ルールの保存を押します。

項目
タイプ MSSQL
ソース 許可したいEC2が所属するセキュリティグループ

image.png
※二つ目のルールはSSMSからの接続を許可するために設定しています。

EC2インスタンス設定

SQL Serverとドライバのインストール

EC2上にSQL Serverと必要なドライバをインストールします。
Microsoftの公式サイトが分かりやすいです。

EC2インスタンスへTeraTermなどでSSH接続し、必要なインストールを行います。
自分が打ち込んだコマンドは以下のようになります。

sudo su
sudo yum-config-manager --add-repo https://packages.microsoft.com/config/rhel/7/prod.repo
exit
sudo yum update
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install -y php msodbcsql mssql-tools unixODBC-devel php-devel php-pear php-pdo php-xml re2c gcc-c++ gcc
amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
echo "extension=sqlsrv" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
echo "extension=pdo_sqlsrv" >> /etc/php.d/30-pdo_sqlsrv.ini
exit
sudo setsebool -P httpd_can_network_connect_db 1
sudo systemctl restart nginx #restart web server

php -mと入力し、モジュールの一覧にsqlsrvpdo_sqlsrvがあればインストール出来ています。

$ php -m
[PHP Modules]
bcmath
bz2
...中略...
pdo_sqlsrv #こいつ
...中略...
sqlsrv #こいつ

.envファイルの編集

最後に.envファイルの編集をしましょう。編集はVimでしました。(何でも良いです)
DBの設定をこんな感じにしておきます。

項目
DB_CONNECTION sqlsrv
DB_HOST RDSで作成したDBのエンドポイント
DB_PORT 1433
DB_DATABASE データベース名
DB_USERNAME マスターユーザ名
DB_PASSWORD マスターパスワード
.env
...省略...
DB_CONNECTION=sqlsrv
DB_HOST=RDSで作成したDBのエンドポイント
DB_PORT=1433
DB_DATABASE=データベース名
DB_USERNAME=マスターユーザ名
DB_PASSWORD=マスターパスワード
...省略...

これでマイグレーションが通るはず!!

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