LoginSignup
4
5

More than 3 years have passed since last update.

【メモ】AWS EC2でLaravel初期画面表示するまでRDSも

Last updated at Posted at 2019-10-07

概要

今回はAWSの無料アカウントでサーバを用意してLaravelの初期画面を表示します。
先日教えて頂いたので手順のみ残しておくために書きました。
AWSは無料枠内での利用です。

DBに関しては記事末にRDSの設定方法も用意しています
(MySQL)

参考にしたページ

メイン
webサーバー
swap memory
RDS
RDS phpMyAdmin

AWS EC2でwebサーバを立てる

アカウントの登録

AWSアカウント作成画面 にアクセスすると以下の画面になります。
それぞれの項目を入力して「続行」してください。

※パスワードはパスワード生成サイト等で強固なものを用意することをお勧めします。
繧ケ繧ッ繝ェ繝シ繝ウ繧キ繝ァ繝・ヨ 2019-03-17 16.17.25_LI.jpg

連絡先入力

次の画面も任意の情報を入力していきます。
会社で使う場合はプロフェッショナル、個人で使う場合はパーソナルです。
住所の辺りは日本語ダメなのでローマ字表記で書きましょう

スクリーンショット (45)_LI.jpg

支払い情報入力 ~ コンソールにサインイン

  • 支払情報を入力します
  • 本人確認を携帯等で済ませます
  • ベーシックプランを選択します
  • 右上のコンソールにサインイン
  • 登録したメールと 無料枠を使いますが、カードの登録が必要です。 無料枠以外の使い方をしなければ基本的には大丈夫です。

スクリーンショット (46)_LI.jpg

EC2の利用設定(インスタンス生成)

--画面右上のオハイオを「アジアパシフィック(東京)」に変更しておく
スクリーンショット (47)_LI.jpg

その後左上の「サービス」を開き、EC2を選択します

スクリーンショット (48)_LI.jpg

--インスタンスの生成を押す

スクリーンショット (49)_LI.jpg

--Amazon Linux AMIを選択

スクリーンショット (50)_LI.jpg

--無料枠が選択されているので右下の「次のステップ」を押す

スクリーンショット (51)_LI.jpg

--「終了保護の有効化」にチェックを入れ「次のステップ」

スクリーンショット (52)_LI.jpg

--ストレージのサイズを任意で変更(無料なら30まで)

スクリーンショット (53)_LI.jpg

--[Name]タグを追加して[次のステップ]

スクリーンショット (55)_LI.jpg

--[タイプ: HTTP]のルールを追加して「確認と作成」

スクリーンショット (56)_LI.jpg

--設定内容を確認して右下の「起動」を押す

スクリーンショット (57)_LI.jpg

--新しいキーペアを作成しダウンロード後、「インスタンスの作成」

スクリーンショット (59)_LI.jpg

--「インスタンスの表示」を押す

出てきた画面で生成されたインスタンスを確認します

スクリーンショット (60)_LI.jpg

Elastic IPをインスタンスに割り当てる

先ほど作ったインスタンスにパブリックのIPを割り当てます。

--サイドバーから「Elastic IP」を選択

写真の通りにボタンを推し進めてください

スクリーンショット (66)_LI.jpg
スクリーンショット (61)_LI.jpg
スクリーンショット (62)_LI.jpg
スクリーンショット (63)_LI.jpg
スクリーンショット (64)_LI.jpg
スクリーンショット (65)_LI.jpg

これで作成したインスタンスにネット経由でアクセスできるようになりました。

laravelが使えるようにする

LAMP環境を整える

LAMPサーバー

ssh接続します。
先ほど作ってダウンロードしたキーペアを使ってサーバに入ります。
ec2-userという名前で入ってます

windowsの場合はputtytera termでssh接続してください

【macのターミナル】

$ssh -i /User/{あなたの名前}/Downloads/{あなたの鍵名}.pem ec2-user@{インスタンスのipアドレス}

例)

ssh -i /Users/takashi/Downloads/myserver.pem ec2-user@3.115.181.26

インスタンスに入れたら、ソフトウェアの更新を行います。

sudo yum update -y

その後、webサーバ(Apache)、PHP(7,
.0)、MySQL(56?)を入れていきます。

sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd

インストールしたApacheを起動します

sudo service httpd start

インスタンスが起動されたりしたあと、自動でApacheも起動するようにします

sudo chkconfig httpd on

httpdが有効になっているか確かめます

chkconfig --list httpd

結果の2,3,4,5が(on)

2:on 3:on 4:on 5:on

となっていれば大丈夫です

次に、ファイル権限をいじります

①ec2-userをapacheグループに追加

sudo usermod -a -G apache ec2-user

/var/wwwとそのコンテンツのグループ所有権をapacheグループに変更

sudo chown -R ec2-user:apache /var/www

③グループ書き込み許可を追加し、これからできるサブディレクトリにグループIDを適用するために、/var/wwwとサブディレクトリのパーミッションを変更します。

sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;

④グループ書き込みを許可するために、/var/wwwとそのサブディレクトリのファイル許可を変更します

find /var/www -type f -exec sudo chmod 0664 {} \;

⑤LAMP webサーバーのテストを行います。以下を実行した後、ブラウザから{インスタンスのIPアドレス}/phpinfo.phpにアクセスしてみてください

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

このような画面が表示されればうまくいっています

スクリーンショット (67).png

確認が済んだらphpinfo.phpは削除しておきます

rm /var/www/html/phpinfo.php

DBサーバーのセキュリティ

①MySQLサーバの起動

sudo service mysqld start

②mysql_secure_installationの実行

最初にパスワードを聞かれますが未設定なのでそのままエンターを押し、
その後「y」を入力して新しいパスワードを2回いれます。

その後に続くやり取りは、すべて「y」で進んで構わないです。

sudo mysql_secure_installation

③webサーバと同じく、起動と同時にMySQLサーバを起動させるようにします

sudo chkconfig mysqld on

phpMyAdminをインストールする

①必要な依存ファイルをインストール

sudo yum install php70-mbstring.x86_64 php70-zip.x86_64 -y

②apacheの再起動

sudo service httpd restart

/var/www/htmlに移動

cd /var/www/html

④このドキュメントルートにphpMyAdminのパッケージをダウンロードします

wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

⑤phpMyAdminファイルを作ってそこにパッケージを展開します

mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1

phpMyAdmin-latest-all-languages.tar.gzを削除します

rm phpMyAdmin-latest-all-languages.tar.gz

⑦ブラウザでphpMyAdminが開くか確認する

インスタンスのIPアドレス/phpMyAdminにアクセス

スクリーンショット (72)_LI.jpg

これでphpMyAdminを入れられました

Laravelプロジェクトを作成する

composerをinstallしたりとか

curl -sS https://getcomposer.org/installer | sudo php
sudo cp composer.phar /usr/local/bin/composer
sudo ln -s /usr/local/bin/composer /usr/bin/composer

SWAPメモリの確保

そのままLaravelプロジェクトをインストールすると固まったりすることも
あるそうなので回避策

sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo /sbin/swapon /var/swap.1
free

この後、Swapの欄に数字があればOKです

今後OSの再起動の際に自動的に同じ処理をするように設定しておきます

sudo cp -p /etc/fstab /etc/fstab_yyyymmdd
vi /etc/fstab

開いたエディタで以下を追加

/swap_ext1 swap swap defaults 0 0

これで大丈夫です

スクリーンショット (68)_LI.jpg

Laravel プロジェクト作成

ようやくLaravelを入れます。

cd /var/www
composer create-project --prefer-dist laravel/laravel {プロジェクト名}

ドキュメントルート変えたりします
viエディタ使います

以下を実行すると、、

sudo vi /etc/httpd/conf.d/custom.conf

こんな画面になります。
スクリーンショット (71)_LI.jpg

キーボードのiを押すと左下に[INSERT]の文字が出てます。すると、入力できるようになります

スクリーンショット (70)_LI.jpg

入力できるようになったら、以下のように入力してください

Alias /{プロジェクト名} /var/www/{プロジェクト名}/public

# .htaccess 有効化
<Directory /var/www/{プロジェクト名}/public>
    AllowOverride All
</Directory>

その後Escキーを押し、:wqと入力してEnter押すとエディタから出られます

設定を変えたのでwebサーバを再起動します

sudo service httpd restart

権限を変更していきます

sudo chmod -R 777 /var/www/{プロジェクト名}/storage
sudo chmod -R 775 /var/www/{プロジェクト名}/bootstrap/cache

{インスタンスのIPアドレス}/{プロジェクト名}をブラウザで開いて
Laravelの初期画面が表示されていれば全て完了です

スクリーンショット (73)_LI.jpg

AWS RDS

セキュリティグループ

  • EC2の画面左から「セキュリティグループ」を押す

スクリーンショット (87)_LI.jpg

  • 新しいセキュリティグループを作成します

RDSに接続させることができるセキュリティグループを後ほど入力するので、上でEC2を作った時にできたセキュリティグループのIDをコピーしておき、その後「セキュリティグループの作成」を押します。

スクリーンショット (90)_LI.jpg

  • 以下を設定後「作成」を押します

①「ルールの追加」を押す
②「ソース」の部分に先ほどコピーしておいたEC2のセキュリティグループIDを張り付ける
③「タイプ」を「MYSQL/Aurora」を選択
④「セキュリティグループ名」「説明」を入れて「VPC」でデフォルトを選択

--> 「作成」

スクリーンショット (91)_LI.jpg

これでセキュリティグループに関しては完了です

サブネットグループ

  • 「サービス」の「RDS」の左の「サブネットグループ」を選択し「DBサブネットグループの作成」を押す

スクリーンショット (92)_LI.jpg

  • 「名前」「説明」「VPC」を入力・選択します

スクリーンショット (93)_LI.jpg

  • アベイラビリティゾーンを2通り選択して両方に「サブネット」を追加します

「このサブネットグループのサブネット」が2つ設定されていることを確認し「作成」を押す

スクリーンショット (97)_LI.jpg

以上で「サブネット」の設定は完了です。

パラメータグループ

  • 「RDS」のパラメータグループを選択、「パラメータグループの作成」を押す

スクリーンショット (95)_LI.jpg

  • 画像のようにそれぞれの項目を選択し、「作成」を押す

スクリーンショット (96)_LI.jpg

これでパラメータグループは完了です

RDSインスタンス作成

  • RDSの項目の「データベースの作成」

※以下の画像の上部の「元のインターフェースに切り替える」を選択しています

「データベースの作成」を押すと以下の画面が表示されるので「MySQL」を選択し「次へ」を押します

スクリーンショット (99)_LI.jpg

  • 画像のように無料枠のものを選択

※以下説明がない部分はデフォルトで進めて頂いて大丈夫です

スクリーンショット (102)_LI.jpg

  • 以下のように進める

①上のパラメータグループで設定したMySQLのバージョンに合わせて設定

②無料枠指定にチェックを入れる

③「DBインスタンス識別子」「マスターユーザの名前」「マスターパスワード」をそれぞれ入力し「次へ」を押す

スクリーンショット (103)_LI.jpg

スクリーンショット (105)_LI.jpg

  • サブネットグループ、セキュリティグループ

「サブネットグループ」「セキュリティグループ」を先ほど設定したものに選択しておく

スクリーンショット (107)_LI.jpg

  • パラメータグループを選択

スクリーンショット (108)_LI.jpg

  • 削除保護の有効化にチェックを入れておく

スクリーンショット (115)_LI.jpg

これで「データベースの作成」を押すとしばらく待ち、作成完了を待つ

RDS phpMyAdminからアクセスする

次に今作ったRDSにphpMyAdminからアクセスできるようにします

EC2インスタンスにssh接続します

windowsの場合はputtytera termでssh接続してください

【macのターミナル】

$ssh -i /User/{あなたの名前}/Downloads/{あなたの鍵名}.pem ec2-user@{インスタンスのipアドレス}

phpMyAdminの設定変更

cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php
sudo vi /var/www/html/phpMyAdmin/config.inc.php

これでエディタに入るので
$cfg['Servers'][$i]['host'] = 'localhost';
の部分を
$cfg['Servers'][$i]['host'] = '【エンドポイント】';
に変更してください

※エディタの操作は記事上部を参考にしてください

エンドポイントは以下で確認できます

  • RDS の「データベース」を選択すると画像のような画面が表示されるので丸が付いたリンクをクリック

スクリーンショット (116)_LI.jpg

  • 画像の部分にエンドポイントがあります

スクリーンショット (117)_LI.jpg

これでphpMyAdminの設定は完了です

phpMyAdminの画面でRDSインスタンス作成の際の「マスターユーザ名」「マスターパスワード」を入れてphpMyAdminの中に入ることができたら完了です

4
5
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
4
5