概要
本書ではEC2,EBS,RDSを組み合わせてEBSボリュームの追加、LAMP環境(Amazon Linux,Apache,MySQL,PHP)を構築します。
0.前提条件
a. 用意するもの
- Teratermなどのターミナルエミュレーターをインストールしていること
- AWSのアカウントを作成していること
- <推奨>セキュリティの観点からIAMや多要素認証を設定していること
- <注>本書ではWindows10,Teratermを使用します
b. 本書で構成する環境
使用サービス | 使用環境 | OSなど | ソフトウェア |
---|---|---|---|
EC2 | t2.micro | Amazon Linux 2 | Apache,PHP,phpMyAdmin |
EBS | 10GB | (EC2にマウント) | - |
RDS | db.t2.micro | MySQL 5.7.22 | - |
1. セキュリティグループの編集
2. EC2のインスタンスを立ち上げる
-
「インスタンスの詳細の設定」画面にて「インスタンス数」が「1」であることを確認し「次の手順:ストレージの追加」をクリックする。
-
EC2のインスタンスに接続するために必要なキーペアの設定を行う。既存のキーペアを使用するか、新しいキーペアを作成するか選択し「インスタンスの作成」をクリックする。
※プライベートキーファイル(.pem)は再発行することができません。プライベートキーファイルを紛失すると作成したインスタンスに接続することができないので、紛失しないように管理してください。
3. EBSを作成する
-
「ボリュームの作成」画面にて下記の内容を設定し「ボリュームの作成」をクリックする。
-
「ボリュームのアタッチ」画面にて下記の内容を設定し「アタッチ」をクリックする。
4. データベースを作成する
-
「エンジンのオプション」から下記の内容を選択する。
5. 環境設定
(a) EC2のインスタンスにログインする
-
TeraTermを起動する。
-
下記の内容を入力し「OK」をクリックする。
(b) インスタンスの初期設定
-
アップデート可能な全パッケージをアップデートする。
$ sudo yum -y update
-
永続的にSELinuxを無効化する。
$ sudo vi /etc/selinux/config SELINUX=disabled $ sudo reboot
6. EBSをマウントする
-
作成したEBSがアタッチされていることを確認する。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk mqxvda1 202:1 0 8G 0 part / xvdf 202:80 0 10G 0 disk
-
現在のマウント状態を表示し、作成したEBSがまだマウントされていないことを確認する。
$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 475M 0 475M 0% /dev tmpfs 492M 0 492M 0% /dev/shm tmpfs 492M 404K 492M 1% /run tmpfs 492M 0 492M 0% /sys/fs/cgroup /dev/xvda1 8.0G 1.4G 6.6G 18% / tmpfs 99M 0 99M 0% /run/user/1000
-
EBSのファイルシステムを作成する。
$ sudo mkfs -t ext4 /dev/xvdf
-
「/mnt/data」にマウントする。
$ sudo mkdir /mnt/data $ sudo mount /dev/xvdf /mnt/data
-
EBSがマウントされたことを確認する
$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 475M 0 475M 0% /dev tmpfs 492M 0 492M 0% /dev/shm tmpfs 492M 404K 492M 1% /run tmpfs 492M 0 492M 0% /sys/fs/cgroup /dev/xvda1 8.0G 1.4G 6.6G 18% / tmpfs 99M 0 99M 0% /run/user/1000 /dev/xvdf 9.8G 37M 9.2G 1% /mnt/data
-
再起動後もEBSがマウントされるように「/etc/fstab」を編集する。
$ sudo vi /etc/fstab /dev/xvdf /mnt/data ext4 defaults,nofail 0 0
-
再起動後、EBSが自動的にマウントされることを確認する。
$ sudo reboot (再起動後) $ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 475M 0 475M 0% /dev tmpfs 492M 0 492M 0% /dev/shm tmpfs 492M 404K 492M 1% /run tmpfs 492M 0 492M 0% /sys/fs/cgroup /dev/xvda1 8.0G 1.4G 6.7G 18% / /dev/xvdf 9.8G 37M 9.2G 1% /mnt/data tmpfs 99M 0 99M 0% /run/user/1000
-
追加したEBSボリュームにファイルを作成する。
$ cd /mnt/data $ sudo vi testfile testtest $ cat testfile
7. Apacheのインストール
-
Apacheをインストールする
$ sudo yum -y install httpd
-
Apacheを起動する。
$ sudo systemctl start httpd
-
Apacheの自動起動を設定する。
$ sudo systemctl enable httpd
-
Apacheのサービス状態を確認し、「Active: active (running)」と表示されていることを確認する。
$ sudo systemctl status httpd
-
ブラウザを立ち上げ、インスタンスの「IPv4 パブリック IP」に移動する。Apacheのテストページが表示されていることを確認する。
8. PHPのインストール
-
PHP7のリポジトリを追加する。
$ sudo wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh epel-release-latest-7.noarch.rpm $ sudo yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm $ sudo yum-config-manager --enable remi-php73
-
PHP7をインストールする。
$ sudo yum install -y php73 php73-php php73-php-mysql gcc
-
PHPのシンボリックリンクを設定する。
$ sudo ln -s /usr/bin/php73 /usr/bin/php
-
PHPがインストールされたことを確認する。
$ php -v PHP 7.3.10 (cli) (built: Sep 25 2019 07:56:34) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
-
Apacheを再起動する。
$ sudo systemctl restart httpd
-
「/var/www/html/」にテストページを配置する。
$ sudo vi /var/www/html/index.php <?php phpinfo(); ?>
9. RDSの設定
-
MySQLクライアントをインストールする。
$ sudo yum -y install mysql mysql-devel
-
RDSに接続する。
$ sudo mysql -h RDSのエンドポイント -P 3306 -u ユーザ名 -p
-
データベースやテーブルが作成できることを確認する。
> create database testdb; > use testdb; > create table testtable ( id int, name varchar(30), score int); > insert into testtable values (1,'Takashi Aoyama',100), (2,'Kouhei Kimura',75); > select * from testtable;
-
RDSからログアウトする。
> quit;
10. phpMyAdminのインストール
-
phpMyAdminの最新版をダウンロードする。
$ sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.9.1/phpMyAdmin-4.9.1-all-languages.zip
-
phpMyadminを解凍する。
$ sudo unzip phpMyAdmin-4.9.1-all-languages.zip
-
「/var/www/html」に配置する。
$ sudo mv phpMyAdmin-4.9.1-all-languages /var/www/html
-
フォルダ名の名称を短くする。
$ sudo mv phpMyAdmin-4.9.1-all-languages phpmyadmin
-
ブラウザを立ち上げ、「IPv4パブリックIP/phpmyadmin/index.php」に移動する。phpMyAdminが表示されることを確認する。
-
ターミナル画面に戻り、phpMyAdminの設定ファイルを編集する。
$ sudo mv config.sample.inc.php config.inc.php $ sudo vi config.inc.php $cfg['Servers'][$i]['host'] = 'RDSのエンドポイント';
-
Apacheを再起動する。
$ sudo systemctl restart httpd
-
ブラウザを再度立ち上げ、phpMyAdminに下記の内容を入力し「実行」をクリックする。
- ユーザー名 : MYSQLのユーザー名
- パスワード : MySQLのパスワード
9. phpMyAdminにログインできることを確認する。
10. 作成したデータベース・テーブルが表示できることを確認する。
最後に
EBSを使用して追加ボリュームの作成、RDSを組み合わせてクラウド上でLAMP環境を作成することができます。これによりクラウド上でLAMP環境を利用したOSSの検証やPHPプログラミングなどができます。