LoginSignup
3
2

More than 3 years have passed since last update.

【AWS】WordPressを作った時の備忘録

Last updated at Posted at 2020-07-22

はじめに

教材を使ってAWS上でWordPressを作った。教材ではコンソールの画面が一部異なったり、AWSやインフラ基礎に関する内容も多かったため、本稿でWordPressの使い方をまとめて備忘録として載せたい。
※WordPress作成後にスクリーンショットを撮ったので、一部実際の画面と異なる点がありますが、ご了承ください。

手順

VPC・サブネット・ルーティングの作成
EC2の作成
SSH接続
ファイアウォールの設定
Elastic IPアドレスの割り当て
ドメインの購入
Route53でDNSを設定
プライベートサブネットの作成
RDSの設置
WEBサーバーからRDSを接続
WordPress用のデータベース作成
WordPressのインストール
WordPressの設定

構成図は以下の通り。
スクリーンショット 2020-07-25 22.15.41.png

方法

VPCの作成

VPCを開き、VPCの作成をクリックする。

画面を開けたら、以下の設定を行う。
名前タグを適当に設定する。
IPv4 CIDR ブロックでVPC全体のアドレスの範囲を指定。今回は「10.0.0.0/16」にする。
IPv6 CIDR ブロックとテナンシーはそのままで、「作成」を押す。
スクリーンショット 2020-07-20 11.09.52.png

サブネットの作成

VPCサブネットを開く。
サブネットの作成を押す。

まずはパブリックサブネットの作成。
名前タグは見返した時わかりやすい様に「public-subnet-1a」を入れると良い。
VPCでは先ほど作ったVPCを選択する。
アベイラビリティゾーンは「ap-northeast-1a」を選択する。
IPv4 CIDR ブロックで10.0.10.0/24を入力する。
確認できたら「作成」ボタンを押す。
スクリーンショット 2020-07-20 11.22.09.png

次にプライベートサブネットの作成。
名前タグは見返した時わかりやすい様に「private-subnet-1a」を入れると良い。
VPCでは先ほど作ったVPCを選択する。
アベイラビリティゾーンは「ap-northeast-1a」を選択する。
IPv4 CIDR ブロックで10.0.20.0/24を入力する。
確認できたら「作成」ボタンを押す。
スクリーンショット 2020-07-20 20.08.34.png

ルーティングの作成。
ルーティングをできる様にするため、インターネットゲートウェイを作る必要がある。
名前タグにインターネットゲートウェイとわかる様に「igw」を名前に含める。(タグ オプションはインターネットゲートウェイ の設定で自動で入力される。)
入力できたら、「インターネットゲートウェイ」の作成を押す。
スクリーンショット 2020-07-20 20.18.51.png

VPCにインターネットゲートウェイをアタッチする。
該当のインターネットゲートウェイ選択し、「VPCにアタッチ」を選択する。
スクリーンショット 2020-07-21 7.56.04.png

「使用可能なVPC」に先ほど作成した該当のVPCをアタッチする。
「インターネットゲートウェイのアタッチ」を押す。
スクリーンショット 2020-07-21 7.51.10.png

ルートテーブルを設定する。
名前タグを入力し、VPCに先ほど作成した該当のVPCを選択する。
スクリーンショット 2020-07-21 8.17.34.png

該当のルートテーブルを選択し、「サブネットの関連付け」>「サブネットの関連付けの編集」を押す。
スクリーンショット 2020-07-21 8.21.33.png

サブネットでpublic-subnet-1aのものを選択する。
確認して、「保存」ボタンを押す。
スクリーンショット 2020-07-21 8.27.58.png

スクリーンショット 2020-07-21 8.31.40.png

該当のルートテーブルを選択し、「ルート」>「ルートの編集」をクリック。
スクリーンショット 2020-07-21 8.49.30.png
「ルートの追加」をクリックし、送信先に0.0.0.0/0を入力。ターゲットで「Internet Gateway」を選択し、先ほど作ったものをクリックする。確認して「ルートの保存」を押す。
スクリーンショット 2020-07-21 8.47.47.png

スクリーンショット 2020-07-21 8.48.26.png

EC2の作成

EC2>インスタンスの作成を押す。
今回は「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択する。
スクリーンショット 2020-07-21 10.26.54.png
t2.microを選択し、「次のステップ:インスタンスの詳細の設定」をクリックする。
スクリーンショット 2020-07-21 10.28.26.png
「ネットワーク」で先ほど作ったVPCを選択。
「サブネット」で先ほど作ったpublic-1aを選択。
自動割り当てパブリックIPで有効を選択。
スクリーンショット 2020-07-21 10.30.56.png
下にうつって、ネットワークインターフェイスのプライマリIPで10.0.10.10と設定する。
後はそのままにして「次のステップ:ストレージの追加」を押す
スクリーンショット 2020-07-21 10.38.39.png
今回はそのままで「次のステップ:タグの追加」を押す。
スクリーンショット 2020-07-21 10.42.32.png
タグの追加を行う。
スクリーンショット 2020-07-21 10.45.52.png
「別のタグを追加」ボタンを押し、キーと値を適当に入力する。
「次のステップ:セキュリティグループの設定」を押す。
スクリーンショット 2020-07-21 10.46.46.png
「新しいセキュリティグループを作成する」を選択し、「セキュリティグループ名」でwordpressを選択する。
「確認と作成」ボタンを押す。
スクリーンショット 2020-07-21 10.49.34.png
内容を確認し、問題なければ「起動」ボタンを押す。
スクリーンショット 2020-07-21 10.51.37.png
「新しいキーペアの作成」を選択し、キーペア名を適当に入力する。キーペアのダウンロードをクリックし、キーペアをローカルに保存する。
ダウンロードと保存をし終えたら、インスタンスの作成押す。
スクリーンショット 2020-07-21 10.53.19.png
EC2>インスタンスに戻って、インスタンスが作成されていることを確認する。

SSH接続

Macの場合ターミナルで、下記の通りに接続

$ chmod 600 ~/xxx.pem
pemは秘密鍵のことで秘密鍵がある場所を入力
$ ssh -i ~/xxx.pem ec2-user@xx.xx.xx.xx
xx.xx.xx.xxはIPv4パブリックIP(EC2の該当インスタンスで見ることができる)
Are you sure you want to continue connecting (yes/no)?
→yesと入力する
$ sudo yum update -y
$ sudo yum -y install httpd 
$ sudo systemctl start httpd.service
$ sudo systemctl enable httpd.service

ファイアウォールの設定

EC2に戻り、該当のインスタンスを選択し、セキュリティグループをクリックする。
スクリーンショット 2020-07-22 10.32.31.png
セキュリティグループを開いて、「インバウンドを編集」をクリック。(※私のルールはすでに設定済みのため画像ではHTTPもすでに許可されていますが、設定する前はSSHのみ許可されている状態です。)
スクリーンショット 2020-07-22 10.37.08.png
「ルールを追加」ボタンを押し、タイプを「HTTP」リソースタイプを「任意の場所」に変更する。するとソースが0.0.0.0/0,::/0で自動入力される。入力できたら「ルールを保存」ボタンを押す。
スクリーンショット 2020-07-22 10.42.45.png
IPv4パブリックIPをURL欄に入力し、Apacheのデフォルトページが出るか確認する。
スクリーンショット 2020-07-22 10.51.19.png

Elastic IPアドレスの割り当て

このままだとEC2インスタンスの起動・停止時にIPアドレスが変わるため、固定アドレスにする。
EC2>Elastic IPをクリックし、「Elastic IPアドレスの割り当て」を押す。
その後「割り当て」ボタンを押したら、アドレスが作成されるので、成功したら閉じる。
スクリーンショット 2020-07-22 10.52.29.png
アクションを押し、「Elastic IPアドレスの関連付け」ボタンを押す。
スクリーンショット 2020-07-22 11.00.37.png
「インスタンス」を先ほど作成したものを選択し、プライベートIPアドレスを「10.0.10.10」と入力し、「関連付ける」を押す。
スクリーンショット 2020-07-22 11.03.25.png

関連付けられたら、Elastic IPをURLに入力し、Apacheのデフォルトページが出るか確認する。
スクリーンショット 2020-07-22 10.51.19.png

ドメインの購入

お名前.comなどでドメインを購入しましょう。
ドメインの購入方法は下記ページなどを参考にしてください。
https://tekito-style.me/columns/domain-onamae

Route53でDNSを設定

Route53>ホストゾーンをクリック。「ホストゾーンの作成」を押す。
「ドメイン名」を先ほど購入したものを入力。
タイプを「パブリックホストゾーン」を選択する。
選択したら、「作成」をクリックする。
スクリーンショット 2020-07-22 13.42.15.png
お名前.comでネームサーバーを変更する。(別のサイトでドメインを設定してたら、そこで変更してください。)

変更手順は以下のサイトを参照。
https://www.onamae.com/guide/p/67

「その他のネームサーバーを使う」で先ほど作成したドメインに行って、ネームサーバー名を確認する。
Route53>ホストゾーン>該当ドメインをクリック。
右にスクロールするとタイプが出てくるので「NS」の4つの値をお名前.comのネームサーバーに入力する。(最後の.は入れなくて良い。)そしたら「確認」ボタンと「設定」ボタンを押す。
スクリーンショット 2020-07-22 13.55.17.png
スクリーンショット 2020-07-22 13.57.53.png
ドメイン反映までしばらく待つ。(長いと1〜2日かかる場合もあるとのこと。)
Aレコードを作成するため、「値」にEC2の該当インスタンスのIPv4パブリックIPを入力。あとはそのままで「作成」を押す。
スクリーンショット 2020-07-22 14.02.38.png

終わったらドメインの疎通確認を行う。(前述の通り、ネームサーバをお名前.comに変更直後だと反映に時間がかかります。)

dig xxx.com NS +short
xxx.comには自分のドメインを入力

Route53のネームサーバーが表示されている確認。
URLでも設定したドメインでApacheのデフォルトページが出るか確認。

プライベートサブネットの作成

VPC>サブネットの作成をクリック。
スクリーンショット 2020-07-22 16.17.36.png
名前タグに「private-subnet-1c」を含めて、VPCに先ほど作成したVPC、アベイラビリティーゾーンに「ap-northeast-1c」、IPv4CIDRブロックに10.0.21.0/24
スクリーンショット 2020-07-22 16.19.45.png

RDSの設置

EC2>セキュリティグループ>セキュリティグループの作成をクリック。
スクリーンショット 2020-07-22 16.36.02.png
セキュリティグループ名と説明を入力。今回は「wordpress-db」とする。VPCは先ほど作ったものにする。
インバウンドルールで「MYSQL/Aurora」、ソースはカスタム、虫眼鏡マークで先ほど作ったセキュリティグループのものを選ぶ。
スクリーンショット 2020-07-22 16.38.21.png
RDS>サブネットグループを選択する。「DB サブネットグループを作成」ボタンをクリックする。
スクリーンショット 2020-07-22 16.47.32.png
名前、説明を入力する。今回は「wordpress-subnet-group」とする。VPCは先ほど作ったものを選ぶ。
スクリーンショット 2020-07-22 16.49.40.png
プライベートサブネットを選ぶため、アベイライビリティーゾーンを「ap-northeast-1a」、サブネットをCIDRブロック「10.0.20.0/24」、アベイラビリティゾーンを「ap-northeast-1c」サブネットをCIDRブロック「10.0.21.0/24」で選択する。こちらで「作成」ボタンを押す。
スクリーンショット 2020-07-22 16.53.38.png
RDS>パラメータグループにいき、「パラメータグループの作成」をクリック。今回はパラメータグループファミリーに「mysql8.0」、グループ名に「wordpress-mysql80」、説明に「wordpress-mysql80」を入力する。入力できたら「作成」ボタンを押す。
スクリーンショット 2020-07-22 17.04.16.png
RDS>オプショングループを選択。「オプショングループの作成」ボタンを押す。名前と説明をwordpress-mysql80で、エンジンをmysql、メジャーエンジンバージョンを8.0にし、「作成」ボタンを押す。
スクリーンショット 2020-07-22 17.19.57.png

WEBサーバーからRDSを接続

RDSにいき、データベースの作成を押す。
スクリーンショット 2020-07-22 17.27.15.png
テンプレートを費用を抑えるため今回は「開発/テスト」とする。(用途によって分ける。)
スクリーンショット 2020-07-22 17.29.56.png
DBインスタンス識別子と認証情報の設定で入力する。(マスターユーザー名とマスターパスワードは忘れないようにメモしておく。)
スクリーンショット 2020-07-22 17.34.36.png
DBインスタンスサイズを用途に応じて選択する。(db.t2.microだと安い。)
スクリーンショット 2020-07-22 17.37.41.png
今回は負荷があまりかかることがないと想定し、「ストレージの自動スケーリングを有効にする」のチェックを外す。
スクリーンショット 2020-07-22 17.39.37.png
接続ではVPCとサブネットグループを先ほど作ったものを選択する。
スクリーンショット 2020-07-22 17.42.47.png
既存のVPCセキュリティグループを作成したものを今回作成したものを選択肢、アベイラビリティゾーンを「ap-northeast-1a」とする。
スクリーンショット 2020-07-22 17.51.31.png
追加設定>データベースの選択肢でDBパラメータグループとオプショングループで今回作成したものを選択する。
スクリーンショット 2020-07-22 18.01.37.png
モニタリングで拡張モニタリングの有効化のチェックを外し、メンテナンスをマイナーバージョン自動アップグレードの有効化を選択する。メンテナンスウインドウで時間を指定する。
スクリーンショット 2020-07-22 18.05.14.png
概算月間コストを確認し、「データベースの作成」ボタンを押す。
スクリーンショット 2020-07-22 18.10.23.png

ターミナルでの操作を行う。

$ ssh -i ~/xxx.pem ec2-user@xx.xx.xx.xx
$sudo yum -y install mysql

上記でMySQLをインストールする。
MySQLに入るためエンドポイントを確認する。
スクリーンショット 2020-07-22 18.16.05.png

mysql -h エンドポイント -u マスターユーザー名 -p

その後パスワードを入力する。

WordPress用のデータベースを作成

MySQLに入れたら下記を入力する。

$CREATE DATABASE データベース名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
$CREATE USER 'ユーザー名'@'%' IDENTIFIED BY 'password';
$GRANT ALL ON データベース名.* TO 'ユーザー名'@'%';
$FLUSH PRIVILEGES;
$exit;

WordPressのインストール

exit;でターミナルに戻る。

$sudo amazon-linux-extras install -y php7.2
$sudo yum install -y php php-mbstring
$cd ~
$wget https://ja.wordpress.org/latest-ja.tar.gz
$tar xzvf latest-ja.tar.gz
$cd wordpress/
$sudo cp -r * /var/www/html/
$sudo chown apache:apache /var/www/html -R
$sudo systemctl restart httpd.service

WordPressの設定

URL欄にドメインを入力する。
WordPressの画面に進み、始めるボタンをクリックし、データベース名、ユーザー名、パスワード、データベースのホスト名(エンドポイント)を入力し、送信ボタンを押す。
接続完了したらインストール実行で、サイトのタイル、ユーザー名、パスワード、メールアドレス、検索エンジンでの表示を適宜入力する。できたら「WordPressをインストール」ボタンをクリックする。
これでログインをし、管理画面に入れるようになる。

まとめ

レンタルサーバーだとボタンをポチポチしたらできたが、AWSだと結構手順を踏む必要があると思った。流れを意識しつつ実装しましょう、
教材
AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得

3
2
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
3
2