Amazon LightSail + CloudFront + Route53 でWordPress環境を構築する

構築のキッカケ
  • 学習記録をアウトプットする場所が欲しかった
  • インフラをAWSを利用した開発に携わることがあったので知見を得たかった
  • AWSでのサービス構築に興味があった
システム構成

LightSail:WordPress
CloudFront:コンテンツ配信サーバ
Route53:ネームサーバ(今回はドメイン取得もする)

構築手順

①LightSailでWordPress環境を構築
②Route53で独自ドメインでアクセスできるように
③CloudFrontからアクセスできるように(HTTPS化)

①LightSailでWordPress環境を構築

AWSマネジメントコンソールにアクセス
検索ボックスから「Lightsail」で検索

「Create instance」をクリック

Instance location
デフォルトでLinux+wordpressのblueprintが選択されていたのでそのまま進める。
Locationはユーザに最も近いものを選ぶのが良いらしいので、Tokyo(ap-northeast-1a)を選択した。アベイラビティゾーン(AZ)はTokyoの場合、A, C, Dから選択できる。

Instance plan
3ヵ月無料なのとお試しで構築するだけなので一番安いプランで。
そもそも3.5USD/月なので安すぎる。

Identify your instance
インスタンスを識別するための名前を決める。
初期で”WordPress-2”が入力されてあったのでそのまま進めた。
最後に「Create Instance」ボタンをクリックすればwordpressサーバの構築が完了する。

lightsailのダッシュボードにも作成したインスタンスが表示される。
Pengind→Runningに変わればインスタンス起動完了。

次にインスタンスのネットワーク設定に移動する。
パブリックIPはインターネットからアクセスできるアドレス、プライベートIPアドレスは内部ネットワーク利用するアドレスとなる。インスタンス生成直後はパブリックIPアドレスが固定されておらず、インスタンス再起動ごとに新しいパブリックIPアドレスが付与される。
インターネットに公開する場合はIPアドレスを固定する必要があるため、静的IPアドレスを取得する。
(インスタンスにアタッチしている静的IPアドレスは無料で利用できるが、アタッチ無しで保持する場合は料金が発生するため注意)
Create static IPをクリックする。

Createをクリックすれば静的IPアドレスの取得が完了する。
私の環境では既にStaticip-1の名前で静的IPを登録しているためここでは”-2″とした。

静的IPの取得後、Networkingタブに取得したIPが表示される。
独自ドメインでアクセスする場合、この後の設定でPublicIPを使用するのコピーしておく。

取得した静的IPアドレスでWEBアクセスし、以下のようなページが表示されればOK

②Route53で独自ドメインでアクセスできるように
前提条件
  • 自分のドメインを持っていること
  • Route53にドメインを設定していること
  • Amazon Certificate Managerでドメインの証明書を発行していること

Route53 > ホストゾーンを開き「レコードを作成」に進む。

Aレコードを作成します。Aレコードはホスト名に対するIPアドレスを定義できる。
レコード名はサブドメイン(なんでも良い)を指定する。
値には、Lightsailで取得した静的IPを入力し「レコードを作成」に進む。

設定後、レコード名に指定した「wp.izuna-bs.com」にアクセスすると…
ドメインからアクセスできるようになった。

上記画像はアドレスバーを表示していないがhttpプロトコルを使用しており
httpsではアクセスができない。そこでCloudfrontの出番になる。

③CloudFrontからアクセスできるように(HTTPS化)

Cloudfront > ディストリビューションに移動し「ディストリビューションを作成」に進む。

以下の内容でディストリビューションを作成する(下記以外はデフォルト値でOK)。
作成完了まで10分程度かかるので気長に待つ。

項目値(例)
Origin Domain Namewp.sample.com
Alternate Domain Name(CNAME)www.sample.com
Custom SSLAmazon Certificate Managerで取得した証明書を選択

次に作成したディストリビューションのBehaviorタブに移動し「ビヘイビアを作成」に進む。
以下のようなビヘイビア設定を追加・変更する。

パスパターンビューワープロトコルポリシーカスタムヘッダーcookie
/wp-login.php*GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETECloudFront-Forwarded-Proto
Host
無し
/wp-admin/*同上全て無し
/wp-json/*同上CloudFront-Forwarded-Proto
X-WP-Nonce
Host
無し
デフォルト(*)同上CloudFront-Forwarded-Proto
Host
comment_author_*
wordpress_logged_in_*
wp-settings-*
wordpress_test_cookie

Route53 > ホストゾーンから「レコードを作成」に進む。
レコード名はCloudfrontで入力したAlternate Domain Nameを入力する。
エイリアス > トラフィックのルーティング先を「Cloudfrontディストリビューションへのエイリアス」を選択、Cloudfrontで作成したディストリビューションを選択し「レコードを作成」に進む。

コメント