EC2とRDS(MySQL)でLaravel 構築 チュートリアル

2020年4月10日

PHP

AWSのEC2インスタンスおよびRDS(MySQL)データベースを立ち上げ、Laravelを起動してマイグレーションを実行できるように環境構築してみます。

 

 

EC2のインスタンス作成


 

インスタンスの作成においては主な項目のみ記述しています。記述していない部分に関しては基本的にデフォルト設定です。

 

関連ページ

AWS EC2入門 はじめての無料枠

 

 

ステップ 1: Amazon マシンイメージ (AMI)

 

本記事では、「Amazon Linux 2 AMI (HVM), SSD Volume Type」を利用します。

 

ステップ 6: セキュリティグループの設定

 

laravel-sgという名前のセキュリティーグループを作成し、下記のようにルールを追加しました。

 

 

 

RDSのデータベース作成


 

主な設定項目のみ説明します(それ以外はデフォルト)。

 

エンジンのオプションはMySQLを選択します。またテンプレートとして本記事では「無料利用枠」を選択しています。

 

「設定」において、MySQLに接続する際のマスターパスワードを設定します。

 

 

「接続」の「追加の接続設定」で「VPC セキュリティグループ」の新規作成をおこないます。適当なセキュリティグループ名を入力(本記事ではmy-sg)し、アベイラビリティゾーンはEC2で作成したインスタンスと同様のものを指定しておきます。

 

 

「追加設定」で最初のデータベース名を適当に設定しておきます。今回はlaravelという名前にします。このデータベースはMySQLに接続してからでも作成することができます。

 

 

以上で「データベースの作成」ボタンをクリックします。

 

しばらくしたら利用可能となるので、作成したデータベースの画面に遷移し、VPC セキュリティグループを確認します。上記で新規作成した「my-sg」という名前が確認できます。これからEC2からRDSが利用できるようにこのセキュリティグループを編集するため、クリックします。

 

 

 

EC2の画面に遷移するので、選択されているセキュリティグループをクリックします。

 

 

 

「インバウンドのルールの編集」をクリックします。

 

 

編集画面においてソースを変更します。上記で作成したEC2インスタンスのセキュリティグループである「laravel-sg 」を設定します。

 

 

以上で画面での設定は完了です。

 

 

EC2(Amazon Linux 2)での準備


 

本記事ではあくまでLaravelを動かすまでの準備で、タイムゾーンの設定やデフォルトユーザ(ec2-user)の削除等はおこなっていませんのであしからず。

 

リモート接続します。本記事ではMacのターミナルを利用しています。

 

パッケージのアップデートをおこないます。

 

MySQL、Git、Apache、cURLをインストールしておきます。

 

Apacheを起動してみます。

インスタンスの説明タブ画面において、パブリックDNS (IPv4)またはIPv4 パブリック IPをコピーし、ブラウザでApacheの「Test Page」が表示されるのが確認できます。

 

MySQLに接続してみます。

database-1~はRDSで作成したデータベースのエンドポイントです。問われるパスワードも上述で設定したマスターパスワードを入力します。

 

laravelという名前のデータベースが生成されていることが確認できます。

 

 

Laravelの起動


 

本記事ではGitHubにすでにLaravelのプロジェクトがあることを前提に話を進めます。

 

Gitのユーザー名とEmailアドレスを設定しておきます。

 

次にamazon-linux-extrasコマンドを利用してPHPをインストールします。たんにyum install phpだとバージョン5.4.16がインストールされます。

 

Composerをインストールし、パスを通します。

 

今回Laravelのプロジェクトは/var/wwwディレクトリ以下に配置します。

 

/var/wwwディレクトリの所有者とグループを変更しておきます。

 

GitHubからLaravelのプロジェクトをクローンします。

 

Composerのパッケージをインストールするために必要なライブラリをインストールします。

 

パッケージのインストールをおこないます。

 

Apacheに、ダウンロードしたプロジェクトのパスを通します。

まず下記の部分を修正します。

そして以下のコードを追記します。

 

再起動します。

 

クローンしたLaravelのプロジェクトディレクトリ内に移動します。

 

.envファイルを作成します。

 

APP_KEYを生成します。

成功すると下記メッセージが表示されます。

 

.envファイルのAPP_KEYに値が設定されているのが確認できます。

 

storegeとbootstrap/cacheに書き込み権限を与えます。

 

この時点で、パブリックDNS (IPv4)またはIPv4 パブリック IPにおいてApacheの「Test Page」画面ではなく、Laravelの画面が表示されるのが確認できます。

 

 

 

次にRDSのMySQLをLaravelから利用できるようにします。.envファイルの下記部分を編集します。上述で説明してきたDB_HOST、DB_DATABASE、DB_PASSWORD等を設定してください。

 

実際にマイグレーションを実行してみます。

 

成功したらMySQLに接続し、laravelデータベースにテーブルが生成されているかを確認してみます。

 

 

 

 

LINEで送る
Pocket

定番本
定期本
 
Copyright © 2020 思考の葉 All Rights Reserved.  プライバシーポリシー