AWS+お名前.comでWordPressサイトを作る(WordPressが動くまで)

この記事に書かれていること

この記事には、AWSを利用してWordPressサイトを構築する手順や詰まったこと、解決した方法などが書かれています。筆者はインフラ初学者のため、誤りや至らない部分があるという前提で読んでいただければと思います。

AWSアカウント開設

まずはAWSアカウントを取得します。AWSは1年間の無料利用枠があり、1年間の間は基本料金はもちろんのこと、EC2やRDSなど、主要なサービスも無料で利用可能です。取得にはクレジットカードとメールアドレスが必要です。

銀行引き落としも可能であったはずですが、利用には条件があったように思います。

AWSアカウントのセキュリティ関連設定

アカウントを作成したら、アカウントを保護するための設定を行っておきましょう。セキュリティ対策が甘いとアカウントを乗っ取られ、際限なく利用され、高額な支払いを余儀なくされる恐れがあります。

ルートアカウントと通常利用のアカウントを分け、それぞれのアカウントに2要素認証を適用して不正ログインを防止するのが良いでしょう。

また、1年の無料利用枠があるとはいえ、無料でないサービスも当然存在しています。AWS Budgetsでは一定以上の利用料金に届くように設定が出来ます。意図せず高額な利用料を発生させないよう、設定しておきましょう。

そのほか、CloudTrailを有効化して、AWSリソースの操作ログを取っておく、GuardDutyで怪しい操作を検知するといった対策をあります。

参考にしたページはクラスメソッドさんのこちら。

https://dev.classmethod.jp/articles/aws-1st-step-new-era-reiwa/

Google Authenticatorで認証が通らなかった

2要素認証にはGoogle Authenticatorを利用しました。端末を登録するときに、自分の端末に配信された認証番号を2連続で入力するというステップがあるのだけど、なぜか2連続で入力しても認証されなかった。

翌日に再度試してみると問題なく通ったのであまり気にしなかったけれど、こういうこともある、というのは覚えておきたいところ。

VPCとサブネットの作成

VPCというのは、AWS上にプライベートなネットワークエリアを持つためのサービスです。サブネットは一つのVPCの内部を複数のエリアに分けて使うときに利用するものです。今後、各AWSサービスの配置先として指定することになります。

なお、今回の構成は最終的に

  • リージョン:東京
  • VPC:一つ
    • サブネット:4つ
      • AZ:1a
        • パブリックサブネットにEC2(AZ:1a)
        • プライベートサブネットにRDS(AZ:1a)
      • AZ:1c
        • パブリックサブネット:EC2(AZ:1c)
        • プライベートサブネット:RDS(AZ:1c)

となります。

VPCを作成する際は作成ウィザードを利用してパブリックサブネットも一緒に作成すると、インターネットゲートウェイが設定されたパブリックサブネットが作られるので手軽です。

アベイラビリティーゾーン1cに作るサブネットは当面必要ないのですが、今後ロードバランサーを利用してSSL対応をするため、予め作っておきます。

VPCの作成

サービス検索の利用方法

まずはVPCの管理画面へ移動しましょう。AWSマネジメントコンソールの上部にある検索窓でVPCを検索します。AWSマネジメントコンソールの検索窓へVPCと入力すると簡単です。この方法は今後もよく利用しますので、覚えておきましょう。

VPC作成ウィザードを利用してVPCとサブネットを作成する

①「VPCウィザードの起動」

VPCの管理画面に移動したら、VPCウィザードの起動ボタンをクリックしてVPCの作成を始めます。

②「1個のパブリックサブネットを持つVPCを選択」

1個のパブリックサブネットを持つVPCを選択して進めていきます。

③ウィザードの設定
  • VPC名は今回wordpess-temp-vpcとしました。好きな名前で良いですが、何のためのVPCであるかわかりやすい名前が良いでしょう。
  • アベイラビリティゾーンはap-northeast-1aを選択します。
  • サブネット名はパブリックサブネット1aとしました。こちらも好きな名前で大丈夫ですが、わかりやすい名前にしましょう。

これで、一つのパブリックサブネットを持つVPCが作成できました。VPCの作成ボタンをクリックすると、作戦完了画面が表示されます。OKをクリックして次に進みましょう。続いて、このほかに3つのサブネットを作成します。

サブネットの追加

ここから、3つのサブネットを作っていきます。

  • プライベートサブネット1a
  • パブリックサブネット1c
  • プライベートサブネット1c

の3つです。それぞれの最後についている1aと1cというのは、どのアベイラビリティーゾーンに設置するかというのを分かりやすくするためのものです。もしサブネットの管理画面にいない場合は、EC2のメニューからサブネットを選択して、サブネットの管理画面に戻ってきてください。

サブネットの管理画面を表示できたら、サブネットの作成ボタンをクリックして進みます。

サブネット管理画面から、サブネットを作成ボタンを押して進む

次に、作成するサブネットの詳細を入力していきます。

  • VPCは先ほど作成したVPCを選びます。
  • サブネット名はプライベートサブネット1a
  • アベイラビリティーゾーンはアジアパシフィック(東京)の1ca
  • IPv4CIDRブロックは10.0.1.0/24

最初に作成するVPCは、WordPressのデータベースを設置する予定のものです。Webサーバーを設置するサブネットからのみ通信を許可して、インターネットには公開しない設定にするため、プライベートサブネット、という名前をつけています。

入力が終わったら、下へスクロールしていきましょう。

スクロールしていくと、新しいサブネットを追加というボタンがあります。これをクリックするとサブネット設定の欄が新たにもう一つ追加されるので、次は以下のように入力します。

  • サブネット名はパブリックサブネット1c
  • アベイラビリティーゾーンはアジアパシフィック(東京)の1c
  • IPv4CIDRブロックは10.2.1.0/24

入力が済んだら、同じように新しいサブネットを追加ボタンを押し、次の内容を入力します。

  • サブネット名はプライベートサブネット1c
  • アベイラビリティーゾーンはアジアパシフィック(東京)の1c
  • IPv4CIDRブロックは10.0.3.0/24

ここまで入力できたら、右下のサブネットを作成ボタンをクリックします。少し待つと、作成完了になりサブネット管理画面へと遷移します。次はパブリックサブネット1cがインターネットの通信ができるようにする作業を行っていきます。

もう一つのパブリックサブネットにインターネットゲートウェイをアタッチ

ここで行う作業は、1cに作成したサブネットに、インターネットゲートウェイを紐つける、という内容です。早速ですが、まずは必要な情報をメモしておきます。サブネットの一覧画面へ戻り、パブリックサブネット1aのルートテーブルタブを開いて、ルートテーブルのIDとインターネットのIDを確認しておきましょう。

サブネット管理画面からで先ほど作成したパブリックサブネット1cを選択して、下へスクロールします。

ルートテーブルというタブがあるので、そこをクリックします。ルートテーブルタブが開いたら、ルートテーブルの関連付けを編集というボタンを押します。

すると、ルートテーブルを編集する画面に切り替わります。ここで編集するのはルートテーブルIDの欄です。プルダウンをクリックして、パブリックサブネット1Aと同じルートテーブルを選択します。もしわからなければ、サブネットの一覧画面へ戻り、パブリックサブネット1Aのルートテーブルタブを開いて確認しておきましょう。

すると、画面下の表に行が追加されます。下の画像はすでに追加されている状態です。追加された行は、送信先が0.0.0.0/0、ターゲットがインターネットゲートウェイになっているはずです。

これでひとまずVPCとサブネットの作成が終了です。次はEC2を使ってWebサーバーを作っていきます。

EC2立ち上げ

インスタンスの作成は下記の6ステップで進行していきます。

  • マシンイメージの選択
  • インスタンスタイプの選択
  • インスタンスの詳細設定
  • ストレージの追加
  • タグの追加
  • セキュリティグループの追加

EC2ダッシュボードからインスタンスの作成

まずはEC2ダッシュボードへ移動しましょう。上部の検索窓でEC2を検索して表示されたリンクをクリックして移動します。

移動できたら、インスタンスを起動をクリックして次に進みます。次のステップでは、作成するサーバーのタイプを選んでいきます。

マシンイメージの選択

まず最初に、マシンイメージを選んでいきます。

マシンイメージは「立ち上げるサーバーの型」というイメージです。選択するものによってはすでにDBがセットアップされていたり、何らかのアプリケーションに最適なチューニングが施されていたりします。

WordPress用のマシンイメージでは、プライムストラテジー社が開発しているKUSANAGIや、WordPress.comのAutomaticが用意しているイメージなどがありますが、今回は学習のためAmazon Linux2のt2.microを選択して進めます。

インスタンスタイプの選択

インスタンスタイプはメモリやCPUスペックなどによって分けられています。高速なものほど高額になっていくため、今回は無料枠であるt2.microを選択しておきます。

インスタンスの詳細設定

詳細設定で特に重要な部分は、正しいネットワークとサブネットの選択です。今回の内容では、前段で作成したVPCとサブネットを選択することで、意図した構成になります。

  • ネットワークは先に作成したVPCを選択します。
  • サブネットは、VPC作成時に一緒に作ったサブネットです。
  • 自動割り当てパブリックIPは有効にしておきます。

これらの入力ができたら、下の方へスクロールしていきます。

WordPressに必要なものをインストールするコマンド

下にスクロールしていくと、高度な詳細という部分があります。その中にユーザーデータ、という欄があるので、下記のスクリプトを入力して次へいきましょう。

#!/bin/bash

yum -y update
amazon-linux-extras install php7.4 -y
yum -y install mysql httpd php-mbstring php-xml

systemctl enable httpd.service
systemctl start httpd.service

スクリプトの内容

なお、このスクリプトが行っているのは以下の5つです。あとでサーバーに接続して設定もできます。

  • yumのアップデート
  • PHP7.4のインストール
  • mysql、Webサーバー、PHPモジュールのインストール
  • サーバー再起動時に自動でWebサーバーが立ち上がるよう設定
  • Webサーバーの再起動

ストレージの追加

ストレージはデフォルト設定で進めます。

タグの追加

キーと値の形式で、このEC2にタグを付けることが出来ます。今後、EC2インスタンスが増えていったときに管理しやすいよう、設定しておくと良いでしょう。

セキュリティグループ

セキュリティグループは各サービスに対するセキュリティ設定を行えるもので、どんな通信を許可するか?ということを指定できます。ここでは今作ったEC2に対して新しいセキュリティグループを作って適用させていきます。

なお、一つのセキュリティグループを複数のサービスに紐つけて(アタッチして)利用することもできます。

今回EC2はWebサーバーとして利用するため、SSHとHTTP通信を許可する必要があります。初期状態ではSSHのみが設定されているので、HTTPを追加し、ソース欄を任意の場所にしておきます。

  1. セキュリティグループの割り当て:新しいセキュリティグループを作成する
  2. セキュリティグループ名:区別しやすい名前をつけましょう。今回はtemp-wordpress-server-sgとしました。
  3. 説明:ここではセキュリティグループ名と同じにしていますが、用途やバージョン名などを書くといいかもしれません。
  4. 最初はSSHの行しかないので、ルールの追加をクリックして行を追加します。
  5. 追加された行で、
    1. タイプ:HTTP
    2. ソース:任意の場所

と入力して、確認と作成をクリックします。

内容の確認とSSHキーの取得

ここまで進めると、これまでの設定内容を確認する画面が表示され、起動ボタンが押せるようになります。起動の際に、SSHキーの作成について尋ねられるので、新しいキーペアを作成を選択して、秘密鍵をダウンロードしておきましょう。鍵を作らず、AWSコンソールを通したSSH接続もりようできるのですが、動作があまり安定しないようです。

起動内容の確認
SSHキーの作成

SSH Keyのパーミッションを変更する

秘密鍵をダウンロードしたら、パーミッションを600変更しておきましょう。変更しないとエラーで接続できないためです。あとでも大丈夫なのですが、忘れる前に書き換えておきます。

ターミナルで以下のコマンドを実行します。

chmod 600 秘密鍵へのパス

表示確認

ここまでの設定で、apacheのテストページが表示できるはずです。EC2 > インスタンス > 先程起動させたインスタンス と選択していき、パブリック IPv4 アドレス欄に記載されているURLへアクセスして、テストページが表示されることを確認しましょう。

インスタンス一覧から、今回作成したインスタンスを選んで、IPアドレスへアクセス
Apacheの初期ページが表示されればOK

表示できないとき

ここまでの設定に間違いがないのに表示できない時には、ブラウザのアドレスバーを確認しましょう。もしかするとhttpsでアクセスしているかもしれません。現段階ではSSLには対応していないため、アクセスできません。httpに書き換えて試してみましょう。

mod_rewriteを有効化する

これも今でなくとも良いのですが、忘れて慌てることがよくある作業です。

httpd/confへ移動する

続いて、WordPressのパーマリンク設定などが動作するよう、apacheへmod_rewriteモジュール使えるようにしましょう。EC2インスタンスへSSHで接続し、cdコマンドで /etc/httpd/confへ移動します。

httpd.confを編集してmod_rewriteを利用できるようにする

作業前にcpコマンドを使ってバックアップを取得しておきましょう。cp httpd.conf backup-httpd.confと入力します。続いて、httpd.confを編集していきます。編集にはsudoコマンドが必要になるので、sudo vi httpd.confとして、httpd.confを編集していきます。

viでhttpd.confを開いたら、最後の行にInclude conf.modules.d/*.conf を書き加えます。次に、AllowOverride:None、となっている箇所を全てAllowOverride:Allと書き換えて保存します。

作業が終了したら、httpdを再起動します。sudo systemctl restart httpd.serviceとコマンドを入力します。これでmod_rewriteが有効化されているはずです。

その他、必要なモジュールをインストールする

このまま、他に必要になるモジュールも入れていってしまいます。必要なモジュールなどはこちらのページにまとまっています。

ここでは、画像編集に必要なphp GDをインストールします。引き続きSSHで、以下のコマンドを入れていきます。

sudo yum install -y php-gd

独自ドメインでアクセスできるように変更する

現段階では、サーバーに固定のIPアドレスが割り振られていません。そのため、サーバーの再起動を行うとIPアドレスが変わってしまったりします。また、EC2に割り当てられているドメインはec2~から始まるAWSのものです。 これでは運営上あまりよくありませんので、独自ドメインでの運用できるようにしていきたいですね。

EC2に固定IPを設定する

EC2のメニューに含まれるElastic IPを利用すると、EC2インスタンスに固定のIPアドレスを持たせられます。EC2のメニューからElastic IPを選択して、Elasitc IPの割り当てをクリックします。設定画面が開くので、必要事項を入力して進めると、固定IPアドレスが一つ利用できるようになります。

Elastic IPの取得

  • EC2ダッシュボードの左メニューからElastic IPを選択
  • Elastic IPのダッシュボードでElasticIPアドレスの割り当てをクリック
  • 画面が切り替わったら、初期設定のままで割り当てをクリック

Elasitc IPをインスタンスに紐つける

次に、アクションボタンからElastic IPの関連付けをクリックします。画面が切り替わったら、今取得した固定IPを割り当てたいインスタンスを選択し、関連付けるボタンを押します。この作業はなるべく早く実施しましょう。というのも、Elastic IPを利用して割り当てられたIPアドレスは、どこにも関連付けられていない状態だと利用料金が発生するためです。関連付けしてしまえば料金は発生しませんので、すぐに行えば大丈夫です。

  • Elasitc IPのダッシュボードで、先ほど割り当てられたIPアドレスを選択
  • アクションをクリック
  • Elastic IPアドレスの関連付けをクリック
  • リソースタイプにインスタンスを指定
  • インスタンス欄で、先ほど作成したインスタンスを指定
  • 関連づけるをクリックして次へ

固定IPの設定が済んだら、関連付けたIPアドレスでapacheのテストページが表示できるか確かめておきましょう。表示できるようになるまでに少し時間がかかることもあります。1日経って表示できないようならどこか間違っているかも知れませんので、ここまでの手順を確認しましょう。

お名前.comでドメインを購入する

AWSでドメインを購入した方がスムーズに進むのですが、同じドメインでもお名前.comで購入した方が安いので、今回はお名前.comでドメインを購入します。まずはお名前.comのトップページへ移動しましょう。リンクをおいておきます。https://www.onamae.com/

流れは以下の通りです。

  1. 購入したいドメイン名を探す
  2. ドメインを選択する
  3. サーバーの申し込み
  4. 支払い方法の選択・登録
  5. 購入完了

購入したいドメインを探す

トップページにある検索窓に、購入したいドメイン文字列を入力します。入力したら、検索ボタンをクリックします。

トップレベルドメインを選択

ドメインに利用したい文字列を検索すると、トップレベルドメインの選択画面に移動します。

ここでは.workを選択しています。好きなものを選んで、料金確認へすすむをクリックします。

ここから先は事務的な作業なので、詳しくは触れませんが、以下のことを行っていきます。

サーバー申し込み

今回はAWS・EC2を使ってサーバーとするので、利用しないにチェックを入れて次へ

支払い方法の選択

支払い方法を指定します。コンビニ払いなどもありますが、クレジットカードがお勧めです。申し込み内容がすぐに反映されること、自動更新ができることなどが理由です。

申し込み完了

これで申し込みは完了です!お名前.comの登録メールアドレスに4通程度、メールが送られているはずです。必要であればwhois情報の代行なども申し込んでおきましょう。

サーバー申し込み画面。利用しないにチェック
支払い方法の選択。利便性から、クレジットカードがお勧め。
申し込み完了です。お疲れ様でした。

独自ドメインでアクセスできるようにする

次は、購入したドメインをAWSで利用できるよう、設定をしていきます。この設定を行うのに利用するのがAWSのRoute53です。

設定の流れは

  • ホストゾーンを作成する
  • AレコードにElastic IPを指定する
  • お名前.comのネームサーバーを変更する

です。

ホストゾーンの作成

早速AWSマネジメントコンソールから、Route53のダッシュボードへ移動します。まずはRoute53のダッシュボードへ移動しましょう。移動したら、ホストゾーンをクリックして次に進んでいきます。

ホストゾーンをクリックすると、ホストゾーンの作成画面に移動します。

  • ドメイン名には今回購入したドメインを入力。
  • タイプはパブリックホストゾーンを選択。
  • 最後のホストゾーンの作成をクリックします。

すると、ホストゾーンが作成されて、ホストゾーン一覧画面が表示されます。この画面で表示されるNSレコードの行にある4つのネームサーバーをメモしておきます。

ホストゾーンの作成画面
ネームサーバーの値をメモしておきます。

レコードの作成

ホストゾーンが作成できたら、ホストゾーン一覧画面にあるレコードを作成ボタンをクリックしましょう。レコード作成画面でレコードタイプの値を入力する欄へEC2へ割り当てたIPアドレスを入力して、レコードを作成ボタンをクリックします。この作業も反映されるまで時間がかかることがあるので、注意が必要です。

お名前.comのDNSを変更

お名前.comでネームサーバーの変更を行います。ホストゾーンを作成した際にメモしたNSレコードの値が必要なので、もしメモしていなかった場合はRoute53 > ホストゾーン > 対象のホストゾーンと進み、タイプ列がNSとなっている行の値を確認しましょう。

お名前.comへログインし、グローバルナビゲーションからトップを選択、ネームサーバーを設定するをクリックします。次に、操作対象のドメインを選択して、その他タブをクリックします。

するとネームサーバーを変更するための入力欄が表示されるので、そこへ先ほどAWSでメモしたネームサーバー4つを書き込みます。入力欄が足りない場合には、最後の欄のとなりにあるプラスマークをクリックすると入力欄が増えます。

トップページから「ネームサーバーを設定する」をクリック

その他タブを開くとネームサーバーを変更できる

Route53でAレコードを設定

次に、Route53を使って、ドメインとEC2を紐つけします。Route53の管理画面に移動して、今回作成したホストゾーンを選択します。ホストゾーンを選択したら、レコードを作成ボタンをクリックして作成に進みます。

次の画面に進んだら、値の部分にElastic IPで取得しているIPアドレスを入力しえて、レコードを作成ボタンを押します。

ここまでの作業が正しく行えていれば、しばらくするとドメインでサイトへアクセスができるようになっているはずです。1~2日待ってもアクセスできない場合はなにか間違っているかも知れません。

SSLに対応する

ドメイン名でアクセス出来るようになったら、SSL対応に進みましょう。SSL対応は検索エンジン対策としても、ユーザーのニーズとしても高いものなので必須と言ってもよいと思います。

AWSでのSSL対応を安価に行うには、Amazon Cetificate Manager(以下、ACM)で無料のSSL証明書を発行し、それをロードバランサーに適用するという方法が取られます。ACMで取得したSSL証明書はEC2で利用できないそうです。

Amazon Certificate ManagerでSSLライセンスを取得

まずはSSL証明書発行のリクエストをしていきます。まず

  • ACMのダッシュボードへ移動
  • 証明書のリクエストボタンをクリック
  • 証明書のタイプはパブリック証明書を選択
  • ドメイン名を入力します。ここでは、ワイルドカードとして利用できるよう、*.も作成しています。
  • ドメインの検証方法はDNSの検証を選択します。
  • タグをお好みで追加しておきます。
  • 入力内容に間違いがなければ確定とリクエストをクリック。
  • Route53で検証用のレコードを追加するボタンがあるので、クリックします。
  • レコード追加が成功すれば、しばらく後になれば検証済みになります。
①ACMのダッシュボードで証明書のリクエストをクリック
②証明書のタイプでパブリック証明書を選択
③SSL証明書を取得したいドメインを入力。ワイルドカードにしておくと後々便利です。
④検証方法はDNSの検証を選択
⑤タグはお好みでつけておきます。
⑥確認画面でミスがないければ、確定とリクエストをクリック。自動でACMダッシュボードへ移動します。
⑦申請したドメイン文字列をクリックすると開くメニューにある「Route53でのレコードの作成」をクリックします。
⑧レコードの作成が成功したら、ACMのダッシュボードに移動しましょう。
⑨しばらく待って、検証済みになれば成功です

これでSSL証明書が取得できました!次はこの証明書をロードバランサーに登録してhttpsに対応させます。

ロードバランサーの設定

次は、ACMで取得したSSL証明書を利用するためにロードバランサーの設定をしていきます。SSL証明書はサーバーにインストールすることが多いですが、ACMで取得したライセンスはロードバランサーに設定して利用するのだそうです。

ロードバランサーはEC2のメニューから設定していくので、まずはEC2ダッシュボードを開きましょう。左のメニューからロードバランサーを選びます。

続いて、ロードバランサーの作成をクリックします。次から設定画面が始まります。

続いて、ロードバランサーの作成をクリックします。次から設定画面が始まります。最初はどのタイプのロードバランサーを作るかを選ぶ画面です。HTTP、HTTPSに対応しているアプリケーションロードバランサーを選びます。

次は詳細設定を行います。

ロードバランサーが受け付けるプロトコルは、初期状態ではHTTPのみになっています。リスナーの追加をクリックして行を追加したら、HTTPSを選択します。

次にアベイラビリティゾーンで、このロードバランサーを配置するVPCとアベイラビリティゾーンを選択します。

ここでは当初作成したVPCを選択して、その中のアベイラビリティゾーンを二つ選択しました。ロードバランサーを利用するには、最低限二つのアベイラビリティゾーンを指定する必要があります。

また、指定したアベイラビリティゾーンにはインターネットと接続されたサブネットが必要です。

アベイラビリティゾーンを二つ指定したら、次の手順へ進みます。

利用する証明書を選択

ここでは、ロードバランサーに紐つけるSSL証明書を選びます。

  • 証明書タイプ:ACMから証明書を選択する
  • 証明書の名前:先程作成した証明書

をそれぞれ選択しましょう。選択できたら、次の手順に進みます。

ロードバランサー用のセキュリティグループを新たに作成するので、新しいセキュリティグループを作成するを選び、名前と説明を入力します。

ルールに80番と443番があることを確認して、次に進みます。

ロードバランサーのターゲットグループの作成をします。

  • ターゲットグループ:新しいターゲットグループを選びます。
  • 名前:管理用の名前なので、好きな名前で大丈夫です。

このほかは初期状態のままで次に進みます。

新しく作るターゲットグループに含まれるEC2インスタンスを指定する画面です。

下のインスタンス一覧からターゲットグループに追加したいインスタンスを選んで、登録済みに追加ボタンをクリックしたら、次に進みます。

この後は、ここまでの内容確認と作成完了画面が表示されて完了です!

Route53でエイリアスとしてロードバランサーを指定

レコードの一覧画面で、Aレコードの行を選択して編集ボタンを押す

次は、ドメイン名でのアクセスがロードバランサーへ流れるように設定をしていきます。Route53の管理画面に移動しましょう。移動できたら、ホストゾーンをクリックして対象のドメインを選択、レコードの一覧画面を開きます。

レコードの一覧画面が表示できたら、Aレコードの行を選択して、編集ボタンを押します。

レコード編集画面が開いたら、値/トラフィックのルーティング先というドロップダウンリストをクリックしてApplication Load BalancerとClassic Load Barancerへのエイリアスを選択します。

この指定をすると、続く入力欄が変化するので、次に進みます。

入力欄が変化して、リージョンを選択する欄と、もう一つの選択欄が表示されます。

リージョンを指定すると、そのリージョンにあるロードバランサーが選べるようになるので、それぞれ指定していきます。

ここでは東京リージョンで作業をしているので、東京リージョンを選択し、ロードバランサーは先ほど作成したものを選んでいます。

選択が終わったら、変更を保存をクリックします。この作業が終わると、https://ドメイン名でアクセスできるようになります。

しばらく待ってから確認してみましょう。

RDSを利用したデータベースの作成

Webサーバーの用意が済んだので、次はデータベースを作っていきます。EC2の中にMySQLなどのデータベースをインストールすることも出来ますが、今回はAWSのデータベースサービスであるAmazon Relational Database Service(以下、RDS)を使ってデータベースを作成していきます。

流れは

  • データベースサブネットグループの作成
  • データベース用のセキュリティグループの作成
  • データベースインスタンスの作成

という順番で行っていきます。

DBサブネットグループの作成

DBサブネットグループの管理画面に移動して、作成ボタンをクリック

まずはDBサブネットグループを作成していきます。マネジメントコンソールから、RDSのダッシュボードへ移動します。移動できたら、左のメニューからサブネットグループをクリックして、DBサブネットグループの管理画面へ移動しましょう。

設定項目は上から順に

  • 名前:このサブネットグループを管理するための名称です。分かりやすい名前をつけておきます。
  • 説明:このサブネットにメモをつけておけます。名前以外の補足情報があればそれを入力しておきます。
  • アベイラビリティゾーン:DBサブネットを配置するアベイラビリティゾーンを指定します。二つ以上指定します。
  • サブネット:今設定しているはDBサブネットです。この項目では、VPCのメニューで作成したサブネットから選択するという意味になります。DBはプライベートサブネットに配置したいので、先に作っておいたプライベートサブネットを二つ指定します。

ここまで入力できたら、作成を押して完了です。

データベースセキュリティグループの作成

セキュリティグループ管理画面で、セキュリティグループの作成をクリックする

次に、データベースのセキュリティグループを作成します。この作業はEC2のメニューから行うので、EC2へ移動しましょう。移動できたら、左のメニューからセキュリティグループをクリックして、セキュリティグループ管理画面へ移動します。

移動できたら、セキュリティグループの作成ボタンを押して次に進みます。

セキュリティグループの作成画面に移動できたら、設定をしていきましょう。編集内容は下記の通りです。

  • セキュリティグループ名:作成するセキュリティグループにつける名前を入力します。
  • 説明:名前以外に説明を書き込めます。作成日や用途などを書き込んでおくと後々分かりやすくなります。
  • VPC:最初に作成したVPCを選択します。
  • インバウンドルール
    • ます、最初はルールを記述する欄がありません。ルールを追加をクリックします。
    • タイプ:MYSQL/Auroraを選択します。
    • プロトコル:TCP(MYSQLを選択すると、自動で入力されているはずです)
    • ポート:3306(MYSQLを選択すると、自動で入力されているはずです)
    • ソース:虫眼鏡のある欄をクリックすると、セレクトボックスが開きます。開いたボックスの中から、Webサーバーに適用しているセキュリィグループを探して指定しておきます。

ここまで入力できたら、セキュリティグループを作成ボタンを押して完了です。

データベースインスタンスの作成

RDSの管理画面。データベースの作成をクリック

続いて、データベースインスタンスを作成していきます。EC2の画面からRDSの管理画面へ移動します。移動できたら、データベースの作成をクリックして進みます。すると設定画面に移るので、設定を行っていきましょう。

設定項目が多いので、項目ごとに切り分けて説明します。

データベースの作成方法は標準作成を選びます。

エンジンのタイプはMySQLを選択します。バージョンは最新で良いでしょう。

テンプレートは今回無料利用枠を選択します。

上から、

  • DBインスタンス識別子:データベースに名前をつけるイメージです。他のデータベースと同じ名前はつけられません。
  • マスターユーザー名:MySQLのマスターユーザー名を指定します。今後必要になる情報なので、メモを残しておきます。
  • マスターパスワード:マスターユーザーでデータベースにログインするときに使用するパスワードです。

続いて、

  • DBインスタンスサイズ
  • ストレージ
  • 可用性と耐久性

はデフォルトのまま進んでいきます。

接続の欄は少し設定項目が多くなっています。

  • Virtual Private Clud(VPC):最初に作成したVPCを選択します。
  • サブネットグループ:先ほど作成したDBサブネットグループを選択します。
  • パブリックアクセス可能:なしにします。
  • VPCセキュリティグループ:既存の選択をクリックします。
  • 既存のセキュリティグループ:さきほど作成したセキュリティグループを選択します。
  • アベイラベリティゾーン:今回は1aを選択します。

追加の項目も必要なので、こちらもクリックして設定を続けます。

追加の設定欄では、最初のデータベース名を入力します。

データベースインスタンス作成後にデータベースに接続してWordPress用のデータベースを作成する場合には不要です。

最後に、データベースの作成ボタンをクリックして終了です。

データベースの作成には数分かかりますので、完成を待つ間にWordPressをインストールしていきます。

WordPressのインストール

SSHでサーバーに接続して、WordPressのインストールを行います。SSHでサーバーに接続したら、下のコマンドを入力しましょう。3行目の、/var/www/html/は、このまま実行するとhtmlフォルダ直下にWordPressの本体がインストールされます。もし、専用ディレクトリにインストールしたい場合には書き換えておきましょう。

wget http://ja.wordpress.org/latest-ja.tar.gz -P /tmp/
tar zxvf /tmp/latest-ja.tar.gz -C /tmp
cp -r /tmp/wordpress/* /var/www/html/
chown apache:apache -R /var/www/html

もし、実行できない場合はおそらくPrermission Denyエラーになっていると思います。各コマンドの前に、sudo を追加すれば実行できるはずです。

さて、上記のコマンドが実行されたら、WordPressのディレクトリにアクセスしてみましょう。インストール画面が表示されるはずです。

インストールの開始画面
データベースへの接続

次に開くのがデータベースの接続設定です。

  • データベース名:データベースの作成で、最初のデータベース名欄に入力した内容をここに入れます。
  • ユーザー名:データベースへのアクセス権を持つユーザー名です。データベース作成時に、マスターユーザー名欄に入力したものか、もし自身でデータベースユーザーを別に作られている場合はそちらを入力します。
  • パスワード:入力したユーザーのパスワードです。
  • データベースのホスト名:データベースの詳細を確認すると、それぞれのデータベースに「エンドポイント」という項目があります。その値をここに入力します。
  • テーブル接頭辞:任意です。デフォルトにするよりは、何らかの変更を加えるほうが安心です。

以上を入力したら、送信ボタンを押します。エンドポイントの値は、下の図を参考にしてみてください。

エンドポイント

以上が完了すれば、あとはブログの設定画面です。サイトタイトルやユーザー名、パスワードとメールアドレスを入力して完了です!お疲れさまでした!これで、ひとまずAWS上でWordPressが動作する状態になりました!もう少し作業がありますが、ここまででだいぶ長くなってしまったので、次回にしましょう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA