EC2 + RDS Aurora + phpMyAdmin による環境構築

July 31, 2018

EC2 (Amazon Linux AMI) + Aurora (MySQL) + phpMyAdmin を用いて環境をセットアップした手順メモ。
忘れて後々面倒なことになったら嫌なので…。

EC2 インスタンス / DB インスタンス起動

コンソールより EC2 インスタンスと DB インスタンスを起動する。
今回は、Amazon Linux AMI (ami-9c9443e3, ap-northeast-1) 及び RDS Aurora (MySQL 5.6 互換) を使用した。

インスタンス上の基本的なセットアップ

まずは最新のパッケージ更新を適用する。

[phpMyAdmin@10.1.11.119]:~ $ sudo yum update -y  

次に、必要なパッケージをインストールする。Apache 、MySQL 、PHP のインストールが必要となる。

[phpMyAdmin@10.1.11.119]:~ $ sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd  

終わったら Apache 起動。

[phpMyAdmin@10.1.11.119]:~ $ sudo service httpd start  
Starting httpd:                                            [  OK  ]  

ドキュメントルートの所有者が root なので、ec2-user を apache グループに追加し、/var/www の所有権を apache グループに付与、さらにグループへの書き込み権限を与える。

[phpMyAdmin@10.1.11.119]:~ $ ls -l /var/www/  
total 20  
drwxr-xr-x 2 root root 4096 Jul 11 22:20 cgi-bin  
drwxr-xr-x 3 root root 4096 Jul 30 19:54 error  
drwxr-xr-x 2 root root 4096 Jul 11 22:20 html  
drwxr-xr-x 3 root root 4096 Jul 30 19:54 icons  
drwxr-xr-x 2 root root 4096 Jul 30 19:54 noindex  
  
[phpMyAdmin@10.1.11.119]:~ $ sudo usermod -a -G apache ec2-user  
[phpMyAdmin@10.1.11.119]:~ $ exit  
  
(再ログイン)  
  
[phpMyAdmin@10.1.11.119]:~ $ groups  
ec2-user wheel apache  
  
[phpMyAdmin@10.1.11.119]:~ $ sudo chown -R ec2-user:apache /var/www  
[phpMyAdmin@10.1.11.119]:~ $ sudo chmod 2775 /var/www  
[phpMyAdmin@10.1.11.119]:~ $ find /var/www -type d -exec sudo chmod 2775 {} \;  
[phpMyAdmin@10.1.11.119]:~ $ find /var/www -type f -exec sudo chmod 0664 {} \;  
[phpMyAdmin@10.1.11.119]:~ $ ls -l /var/www/  
total 20  
drwxrwsr-x 2 ec2-user apache 4096 Jul 11 22:20 cgi-bin  
drwxrwsr-x 3 ec2-user apache 4096 Jul 30 19:54 error  
drwxrwsr-x 2 ec2-user apache 4096 Jul 11 22:20 html  
drwxrwsr-x 3 ec2-user apache 4096 Jul 30 19:54 icons  
drwxrwsr-x 2 ec2-user apache 4096 Jul 30 19:54 noindex  

phpMyAdmin のインストール

今回はソースからビルドするのではなく、epel レポジトリを有効化し、yum によりインストールする。

[phpMyAdmin@10.1.11.119]:~ $ sudo yum-config-manager --enable epel  
[phpMyAdmin@10.1.11.119]:~ $ sudo yum install -y phpMyAdmin  

で、設定ファイルを色々いじる。

[phpMyAdmin@10.1.11.119]:~ $ sudo sed -i -e 's/127.0.0.1/[アクセス元 Global IP]/g' /etc/httpd/conf.d/phpMyAdmin.conf  
[phpMyAdmin@10.1.11.119]:~ $ sudo emacs /etc/phpMyAdmin/config.inc.php  
$cfg['Servers'][$i]['host']          = 'rds-endpoint.cluster-xxxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com';  
$cfg['Servers'][$i]['port']          = '3306';  
$cfg['Servers'][$i]['auth_type']     = 'config';  
$cfg['Servers'][$i]['user']          = 'user';    
$cfg['Servers'][$i]['password']      = 'P@ssword';  

Apache 再起動。

[phpMyAdmin@10.1.11.119]:~ $ sudo service httpd restart  
Stopping httpd:                                            [  OK  ]  
Starting httpd:                                            [  OK  ]  

データベースにデータを突っ込む

今回はこのスクリプトを用いて、サンプルデータを挿入したいと思います。
まずは clone しましょう。

[phpMyAdmin@10.1.11.119]:~ $ git clone https://gist.github.com/jaconza/1309302  
Cloning into '1309302'...  
remote: Counting objects: 3, done.  
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3  
Unpacking objects: 100% (3/3), done.  
  
[phpMyAdmin@10.1.11.119]:~ $ cd 1309302/  
[phpMyAdmin@10.1.11.119]:~/1309302 $ ls -l  
total 392  
-rw-rw-r-- 1 ec2-user ec2-user 397853 Jul 30 20:06 word_country_data.sql  

あらかじめ World というデータベースを作成しておき、以下のようにデータを Insert する。

[phpMyAdmin@10.1.11.119]:~ $ mysql -u user -p -h rds-endpoint.cluster-xxxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -D world < word_country_data.sql   

実際に phpMyAdmin にアクセスしてみる

http://[Instance の Public IP]/phpMyAdmin にアクセスし、以下のように実際にテーブルの内容まで見えていたら成功。

f:id:shiro_kochi:2018××××××××:plain:w100:left


 © 2023, Dealing with Ambiguity