###コンソールがスクリーンショットと同じじゃなくても恐れない!AWSのコンソールは頻繁に変更されます
本資料は4月18日開催のJAWS-UG初心者支部#5のハンズオン補助資料です。
###前提条件
- WEBサーバ作成まで完了し、作成したインスタンスへSSH接続ができていること
###yumアップデートを実行します
sudo yum update -y
###wordpressで使用するmysqlをインストールします
sudo yum install -y mysql-server
yum list installed | grep mysql-server
###mysqlを起動します
sudo service mysqld start
mysqlサービスが起動しているか確認します
sudo service --status-all | grep mysqld
以下の様に結果が帰ってくればmysqlは起動しています
mysqld (pid xxxx) is running...
mysqlをインスタンス起動時に自動起動するよう設定します
sudo chkconfig --level 345 mysqld on
設定が反映されているか確認します
chkconfig --list | grep mysqld
mysqld 0:off 1:off 2:off 3:on 4:on 5:on 6:off
###mysqlの管理者パスワードを設定します
パスワードはサンプルで記載してます。
自身で 忘れないもの を設定して下さい。このパスワードはハンズオン中で再度使用します
MYSQL_ADMIN_PASSWD='hands-on'
sudo mysqladmin password ${MYSQL_ADMIN_PASSWD}
###mysqlのDB接続用ユーザを作成します
mysql -u root -p
Enter password: hands-on
パスワード入力を求められるため先ほどのパスワードを入力します。
mysql>
ユーザー:admin を作成
CREATE DATABASE wordpress;
GRANT ALL ON wordpress.* to admin@localhost;
FLUSH PRIVILEGES;
SET PASSWORD FOR admin@localhost=password('hands-on-pass-123');
Query OK, 1 row affected (0.00 sec)
各コマンドに対し上記の表示が出力されれば成功です。
mysqlから出ます
exit
コンソールが通常の状態に戻れば終了です
###Nginx、PHPのインストール
sudo yum install -y nginx
sudo yum install -y php php-fpm php-mbstring php-mysql
yum list installed | grep nginx
yum list installed | grep php
yum list installed | grep php-fpm
yum list installed | grep php-mbstring
yum list installed | grep php-mysql
上記結果に対して、インストールパッケージが表示されれば問題ありません。
nginxとphp-fpmを起動します
sudo service nginx start
sudo service php-fpm start
sudo service --status-all | grep nginx
sudo service --status-all | grep php-fpm
nginx (pid xxxx) is running...
php-fpm (pid xxxx) is running...
起動時に自動起動するよう設定します
sudo chkconfig --level 345 nginx on
sudo chkconfig --level 345 php-fpm on
chkconfig --list | grep nginx
chkconfig --list | grep php-fpm
nginx 0:off 1:off 2:off 3:on 4:on 5:on 6:off
php-fpm 0:off 1:off 2:off 3:on 4:on 5:on 6:off
MY_EIP='<自分のEIP>'
curl -LI ${MY_EIP} -o /dev/null -w '%{http_code}\n' -s
200
###NginxでPHPを呼び出せるように設定するファイルをダウンロードします
sudo wget http://bit.ly/WP-Config -O /etc/nginx/conf.d/wordpres.conf
cat /etc/nginx/conf.d/wordpres.conf
server {
listen 80;
location / {
root /var/www/html;
index index.php index.html;
}
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
###コンフィグファイルを置き換えます。
sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.old
sudo wget https://s3-ap-northeast-1.amazonaws.com/20151028/nginx.conf -O /etc/nginx/nginx.conf
sudo wget http://bit.ly/WP-Config -O /etc/nginx/conf.d/wordpres.conf
nginxを再起動します
sudo service nginx restart
###Wordpressのダウンロードと配置
wget http://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
sudo mv wordpress/* /var/www/html/
sudo chown -R apache:apache /var/www/html/
html配下にファイルが作成されれば完了です
以上でWordPressの導入は完了です。
ブラウザからWordpressにアクセスし、初期設定を完了して下さい(ハンズオン資料p.77〜)
###参照するDBをRDSに変更します
RDSの作成が終わった後の手順です
エンドポイントはポート番号を除いた.comまでです
RDS_END_POINT='<RDSのエンドポイント>'
mysql -u admin -p -h ${RDS_END_POINT}
Enter password: <RDS作成時に入力したパスワード>
show databases;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| innodb |
| mysql |
| performance_schema |
| sys |
| wordpress |
+--------------------+
6 rows in set (0.00 sec)
上記結果が表示されれば成功です
exit
###EC2上のmysqlのデータを移行します
作業ディレクトリを確認します
pwd
/home/ec2-user
mysqldump -u root -p wordpress > export.sql
Enter password: <mysqlをインストールした際に設定したパスワード(この例だと hands-on)>
ls ~/ | grep export.sql
export.sql
###EC2上のMysqlは使用しないため停止します
sudo service mysqld stop
sudo chkconfig --level 345 mysqld off
sudo service --status-all | grep mysqld
chkconfig --list | grep mysqld
mysqld is stopped
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
###mysqlからエクスポートしたデータをRDSへインポートする
ls ~/ | grep export.sql
export.sql
EXPORT_SQL_PATH='~/export.sql'
mysql -u admin -p -h ${RDS_END_POINT} wordpress < export.sql
Enter password: <RDS作成時に指定したパスワード>
インポートされたか確認する
mysql -u admin -p -h ${RDS_END_POINT} wordpress
Enter password:<RDS作成時に指定したパスワード>
show tables;
mysql> show tables;
+-----------------------+
| Tables_in_wordpress |
+-----------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
12 rows in set (0.00 sec)
exit
###Wordpress設定ファイルの退避
sudo mv /var/www/html/wp-config.php ~/
ls /var/www/html | grep wp-config.php
何も表示されないことを確認する
###Wordpressの設定変更
作成した2台のwebサーバの任意の1台にSSH接続をして作業する
mysql -u admin -p -h ${RDS_END_POINT} wordpress
Enter password: <指定したRDSの管理者パスワード>
update wp_options set option_value='<ELBのエンドポイント>' where option_name='siteurl' or option_name='home';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
###想定通りに行かないときに
VPCの作成⇒スクリーンショットと同じようにできなかった!
⇒自力でVPCを作成すれば大丈夫
ただし、1から作るととサブネット等は作成がされない。
【publicサブネット】
10.0.0.0/24
AZ:1a
作成してもまだルートテーブルが作成されていないので編集する
【IGWの作成】
タグは適当につける:hands-on-igwとした
作成したIGWをVPCをにアタッチする
作成後、サブネットを確認して使用しているルートテーブルを確認する
【ルートテーブルの編集】
ルートテーブルに0.0.0.0/0で先ほど作成したIGWを追加する
[ルートテーブルの編集]
先ほどもし、igwの経路を追加していたら新しいルートテーブ(igwへの経路を持たないルートテーブル)を作成する
【インスタンスの作成】
デフォルトではサブネットがデフォルトのサブネット担っているため注意
【SSH】
インスタンス接続時に
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/****/*****/******.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/*****/******/*****.pem": bad permissions
Permission denied (publickey).
みたいなのがでても焦らない。
確認:chmodはちゃんと設定できているか
【別のログインできない何か】
2-3分時間おく。(少し置かないと接続できません)
以前に同じIPで別インスタンスに接続している場合その履歴を消さないとダメだったりといろいろあります。
AmazonLinuxはデフォルトでUTCです。
今回は問題ないですがJSTじゃないとマズイって事は多いので覚えておきましょう。
【EC2_日本時間変換】
vim /etc/sysconfig/clock
下記の内容に変更
ZONE="Japan"
UTC=true
システムを再起動する
sudo reboot
【AMIの作成】
AMI取得時はリブートチェックに気をつける!
チェックを付けないとインスタンスは再起動します。