AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

2018.12.08

はじめに

投稿などのデータを保存するデータベースを作成しよう

RDSインスタンスを作成する

  • AWSマネジメントコンソールでRDSの管理画面を開く

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • 左のメニューから「データベース」を選択する

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • 「データベースの作成」を選択する

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • エンジンはMySQLを選択、無料枠のみ表示のチェックを入れ、「次へ」をクリックする

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • データベースの詳細設定を行い、「次へ」をクリックする

以下、設定値の例。マスターユーザーの名前とマスターパスワードはあとで使うので控えておく。

項目名 設定値(例)
DBエンジンのバージョン MySQL 5.6.40
DB インスタンスのクラス db.t2.micro
ストレージ割り当て 20
DB インスタンス識別子 wordpress-20181208
マスターユーザの名前 wp_user
マスターパスワード mypassword

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • より細かい設定を行い、「データベースの作成」をクリックする

以下のスクリーンショットの設定を真似すればOK。

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

これでRDSインスタンスの立ち上げ作業は終了。インスタンスが立ち上がるのを2〜3分待つ。

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

WordPressを動作させるWebサーバーを作成しよう

EC2インスタンスを作成する

  • AWSマネジメントコンソールでRDSの管理画面を開く

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • 「インスタンスの作成」を選択する

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • 「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択する

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

- インスタンスタイプは無料枠対象である「t2.micro」を選択する

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • インスタンス詳細の設定は初期値のままでOK

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • ストレージも初期値のままでOK

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • タグも初期値のままでOK

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • セキュリティグループは新たに作成する設定にして、HTTPを追加する

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • 最終確認をしてインスタンスを作成

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • SSHアクセスするための秘密鍵の作成を行う

この機会を逃したら再ダウンロードはできないので注意。

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

これでインスタンスの作成が完了。インスタンス一覧に作ったものが出てきた。

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

EC2インスタンスにSSH接続する

  • 先ほど手に入れた「wordpress.pem」のパーミッションを変更する

SSH接続の際に、パーミッションが緩いキーだと拒否される。



$ cd Downloads
$ chmod 600 wordpress.pem
  • EC2インスタンスをクリックして、下の方に表示された詳細情報の「パブリック DNS (IPv4)」を控える

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • EC2インスタンスにSSH接続する



# アットマーク以降は前の手順で控えたものに読み替える必要あり
$ ssh -i wordpress.pem ec2-user@ec2-99-999-999-99.compute-1.amazonaws.com

Last login: Fri Dec  7 16:30:12 2018 from XXXX.access-internet.ne.jp

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-XX-XXX-XXXX ~]$

これでインスタンスにSSH接続することができた。

EC2インスタンスの初期設定をする



# yumパッケージを最新版に更新する
[ec2-user@ip-XX-XXX-XXXX ~]$ sudo yum update -y

# タイムゾーンを変更する
[ec2-user@ip-XX-XXX-XXXX ~]$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
[ec2-user@ip-XX-XXX-XXXX ~]$ cat << EOL | sudo tee /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=true
EOL

EC2インスタンスにApacheとPHPをインストールする



# ApacheとPHPをインストール
[ec2-user@ip-XX-XXX-XXXX ~]$ sudo amazon-linux-extras install -y php7.2
[ec2-user@ip-XX-XXX-XXXX ~]$ sudo yum install -y httpd

# Apacheを起動
[ec2-user@ip-XX-XXX-XXXX ~]$ sudo systemctl start httpd

# Apacheを自動起動に設定
[ec2-user@ip-XX-XXX-XXXX ~]$ sudo systemctl enable httpd

EC2インスタンスのWebサーバーが動作しているか試してみる

ブラウザから先ほどの「パブリック DNS (IPv4)」にアクセスしてみて、以下のような画面が表示されれば成功。

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

EC2とRDSが相互に通信できるようにしよう

AWSに用意されているセキュリティグループを設定して、EC2とRDSへのアクセスをそれぞれ制御する。以下のような状態を目指す。

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

セキュリティグループを設定する

  • AWSマネジメントコンソールのEC2の管理画面を開く
  • 左のメニューから「セキュリティグループ」を選択する

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

RDSインスタンスとEC2インスタンスを作ったときに自動的に作成されたセキュリティグループが表示されている。

  • 名前とインバウンドの設定を以下のようにする。
セキュリティグループ名 割り当て先 インバウンド許可 インバウンド元
wordpress-ec2-20181208 EC2インスタンス 22,80 任意の場所
wordpress-rds-20181208 RDSインスタンス 3306 wordpress-ec2-20181208のセキュリティグループ

EC2インスタンスにWordPressをインストールする

  • EC2に先ほどと同じようにSSH接続する(手順省略)
  • WordPressをダウンロードする



[ec2-user@ip-XX-XXX-XXXX ~]$ wget https://wordpress.org/latest.tar.gz
  • tar.gzファイルを解凍する



[ec2-user@ip-XX-XXX-XXXX ~]$ tar -xzf latest.tar.gz
  • Apacheのドキュメントルート/var/www/htmlに解凍してできたwordpressというディレクトリの中身を全て入れる



[ec2-user@ip-XX-XXX-XXXX ~]$ cd wordpress
[ec2-user@ip-XX-XXX-XXXX ~]$ sudo cp -pr . /var/www/html/
  • /var/www/htmlのパーミッションを変更する



$ sudo chown -R apache:apache /var/www/html

これでブラウザから先ほどの「パブリック DNS (IPv4)」にアクセスすると、WordPressの設定画面に入ることができる。

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

WordPressの初期設定を行う

WordPressの設定を案内に沿って進める。

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • RDSインスタンスを作ったときに設定した情報を入力する

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • インストールを実行する

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

  • WordPressサイトの設定をする

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

無事、登録した情報でWordPressにログインできた。

AWS ハンズオン〜EC2とRDSでWordPressブログを作ろう〜

追加課題:独自ドメインを使えるようにしよう

  • Elastic IPをEC2インスタンスに割り当てる
  • お名前.comでドメインを取得して、AレコードにElastic IPを指定する

追加課題:画像をCDNから高速配信しつつ負荷分散しよう

追加課題:Let's Encryptを使ってHTTPSの設定をしよう

追加課題:Mackerelを使ってサーバーの死活監視をしよう

追加課題:MySQL WorkBenchでデータベースの中身を見てみよう

  • RDSインスタンスはセキュリティグループで外部からのアクセスを遮断しているので、EC2へのSSHを経由して接続する設定が必要!

参考