WordPress
AWS

awsとwordpressでホームページ作り(準備編)

More than 1 year has passed since last update.

学生が無料利用枠内で、適当に作っていきます。

AWS登録〜ワードプレスをブラウザでドメイン表示できるまでです。

最終更新:パーマリンクの記載を追加

開発編


はじめに

AWSに登録します。クレカ登録して、無料枠なのでBesicプランを選択してください。

公式にインスタンスから編集画面に行くまで書いてあります。

https://aws.amazon.com/jp/getting-started/tutorials/launch-a-wordpress-website/

この通りに進めていけば、自動的にワードプレスがたちあがりますが、データベースとサーバが一緒になってしまいます。

今回は勉強のためなのでサーバ(EC2)とデータベース(RDS)を分けて作ってみようと思います。

-----やること-----

・EC2のインスタンス作成

・RDSのインスタンス作成

・EC2にSSHして環境を整える 

  ・サーバをたてる

  ・wordpressを入れる

・ドメイン

  ・ELB(ロードバランサー)の作成(またはELasticIPを作成)

  ・お名前.com

  ・Route53でドメインとELB(またはElasticIP)と対応させる

・ワードプレスをデフォルト表示にして終わり


EC2の作成

スクリーンショット 2017-01-18 16.31.15.png

1.amazon AMIを選択

2.無料枠のt2.microを選択。

3.そのまま

4.そのまま

5.分かりやすい名前を入力

6.セキュリティグループを作成

セキュリティグループはHTTPやSSHなどの通信を許可するかの設定です。EC2コンソールで自分で作ることができますが、作っていなかったら新しく作りましょう。 HTTPとSSHを許可します。


RDS(データベース)の作成

スクリーンショット 2017-01-18 15.15.31.png

RDSに移動して、インスタンスを作成します。

1.無料枠のMySQLを選択。

2.開発/テスト用にして次へ。

3.無料利用枠だけ表示をして選択、下のアクセス用のIDパスワードを設定して次へ。

4.セキュリティグループを選択を次へ。

まだRDSのセキュリティグループを作ってなかったら新しく作成、作っていたら選択すればいいと思います。


sshして環境構築

鍵を使ってsshします。

$ mv Downloads/鍵の名前.pem .ssh/

$ cd .ssh/
$ chmod 600 鍵の名前.pem
$ ssh -i 鍵の名前.pem ec2-user@パブリックIP(またはDNS)

sshのconfigを作ればssh 名前で接続するようにできます。

また、セキュリティ面を考えればデフォルトのec2-userから新しいユーザを作りec2-userを無効にした方がいいと思いますが、今回はしません。


Apacheとかのインストール

ssh接続した後

アップデート

$ sudo yum update

httpdのインストール

$ sudo yum install httpd

サーバが起動した際にhttpdを立ち上げる

$ sudo chkconfig httpd on

httpd起動

$ sudo service httpd start

php

$ sudo yum install php php-devel php-mysql php-mbstring php-gd

wordpress

サイトからダウンロードして、アパッチの下に解凍します

$ wget http://ja.wordpress.org/latest-ja.tar.gz

$ sudo tar zxvf latest-ja.tar.gz -C /var/www/html/
$ sudo chown -R apache /var/www/html/wordpress/


WordPressのインストール

ブラウザでURLを入力する。

http://IP(DNS)/wordpress

スクリーンショット 2017-01-19 17.31.43.png

ここでEC2とRDSを関連付けます。それぞれこんな風に対応してるので入力して、送信

wordpress
RDSのDBインスタンス

ユーザ名
ユーザ名

パスワード
パスワード

データベースのホスト名
エンドポイント : ポート

間違ってたらすぐ蹴られますが、なかなか進まないときは入力はあってるけどセキュリティグループの関係でEC2からRDSに接続できない感じだと思います。

EC2コンソールからセキュリティグループを確認して、インバウンドルールの送信元を変更します。

EC2のプライベートIPを入力してもできますが、EC2のセキュリティグループを選択できるので、セキュリティグループを選択しましょう。スクリーンショット 2017-01-21 13.03.33.png

コマンドでも接続を確かめられます(EC2にSSHしてから)

$ mysql -h エンドポイント -P 3306 -u ユーザ名 –p DB名


確認

ここまで終わったら一旦WordPressが起動しているかブラウザで確認

http://IP(DNS)/wordpress

接続するとこんな感じになる

スクリーンショット 2017-01-19 18.34.49.png

URLのwordpressの部分をけして接続すると、こんな感じです。

スクリーンショット 2017-01-19 18.48.36.png


Elastic IPの作成

下記のELBを設定する場合はElasticIPがなくてもできます。

冗長化や拡張性を考えた場合はELB一択ですが、

アクセスの少ない、または練習用ならElasticIPでいいと思います。

スクリーンショット 2017-01-18 16.30.46.png

AWSではEC2が稼働していると、publicIPとドメインが割り当てられますが、停止してしまうと変わってしまいます。このままではとても使えませんので、1つの変わらないIP(ElasticIP)を設定し対応させます。

EC2コンソールからElasticIPを選択し、新しく割り当てます。割り当てボタンを押すと1つのIPがもらえるので、選択後アクションから、EC2に関連付けます。


ELBを作成

Route53でドメインを関連づけるためは ELB(ロードバランサー)が必要です。

または、ElasticIPが必要です。ELBが不要な場合は飛ばしてください。

ApplicationとElasticがあるんですがどっちがいいんでしょうか・・・

とりあえず今回はHTTP推奨と書いてあるApplicationの方にしてみます。

これを作ることによって、EC2をロードする際に負荷分散してくれます。

1.名前を入力

2.そのまま

3.ELBのセキュリティグループを新しく作成します。HTTPだけ許可します。

スクリーンショット 2017-01-19 20.47.53.png

4.ターゲットグループの名前を入力

5.4のターゲットグループにEC2を追加

6.確認

分散するターゲットグループを作成します

EC2コンソールからロードバランサーを開きます


ドメイン

ドメインを持ってなかったらドメインをとりましょう!

例えば、お名前.com

http://www.onamae.com/

安いのは100円以下で1年間有効なドメインが取れます。


Route53

取得したドメインをAWSに関連付けます。


Route53①

Route53コンソールで CreateHostedZone ボタンを押して、取得したドメインを同じ名前で作成します。

この時NSが4つできるので、メモします。(.netとか.orgとかついてるやつ)


ドメインNav

今回はお名前.comで取得したので、お名前.comのドメインNavにログインします。

「ネームサーバーの変更」の「ネームサーバーの情報を入力」の欄に先ほどメモしたやつ4つを入力して進みます。少し待てば完了です。

スクリーンショット 2017-01-19 19.32.03.png


Route53②

Route53コンソールに戻って、CreateRecordSetボタンを押す。

スクリーンショット 2017-01-19 21.15.19.png

AliasをYesにし、作成したELBを選択し完了。

ELBが不要な場合、Noにし、Value入力欄にElastic IPを入れてあげます。

スクリーンショット 2017-01-20 12.21.21.png

次のコマンドで設定が反映されているのか確かめれます。

$ dig ドメイン名 NS

スクリーンショット 2017-01-19 21.37.46.png

$ nslookup ドメイン名

ドメインとIPアドレスの対応が見れます。

ELBの場合2つ以上でます。

スクリーンショット 2017-01-20 11.30.11.png

ElasticIPの場合は1つ

スクリーンショット 2017-01-20 12.24.33.png

ブラウザから確認してみます

http://ドメイン名

http://ドメイン名/wordpress

表示されればオッケーです。


デフォルトでwordpress表示

http://ドメイン名/wordpress

カッコ悪いので、つけなくてもwordpressが開くようにサーバの設定を変えましょう。

/etc/httpd/conf/

sudo vim httpd.conf

Document Rootと下の方のDirectoryの2つを変更します。

スクリーンショット 2017-01-21 23.10.01.png

/var/www/html

から

/var/www/html/wordpress/

に変更します。

こんな感じです。

スクリーンショット 2017-01-21 23.28.29.png

次にその下にある

AllowOverride none

AllowOverride All

に変更します。

image

これは、パーマリンク(wordpress/2017/1/1など)を使用した際に「not Found」になっちゃうのを防ぐためです。

そのあとデーモンを再起動

sudo service httpd restart

ブラウザで確認

http://IP(DNS)

以上がザクっと、AWS登録からワードプレスがドメイン名で見れるようまででした〜

お疲れ様でした!

次回からテーマ開発になります


参考

全体

https://yoheikoga.github.io/2016/09/14/wordpress-on-aws/

http://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce

EC2

http://qiita.com/yangci/items/ef2ab9b6f0d28bad0881#ec2-user%E3%81%AE%E5%89%8A%E9%99%A4

wordpressインストール〜EC2+RDS関連づけまで

https://tsuchikazu.net/aws_amazon_ec2_rds_wordpress/

httpd

http://linux.kororo.jp/cont/server/httpd_conf.php