構築のキッカケ
- 学習記録をアウトプットする場所が欲しかった
- インフラを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 Name | wp.sample.com |
Alternate Domain Name(CNAME) | www.sample.com |
Custom SSL | Amazon Certificate Managerで取得した証明書を選択 |
次に作成したディストリビューションのBehaviorタブに移動し「ビヘイビアを作成」に進む。
以下のようなビヘイビア設定を追加・変更する。
パスパターン | ビューワープロトコルポリシー | カスタムヘッダー | cookie |
/wp-login.php* | GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE | CloudFront-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で作成したディストリビューションを選択し「レコードを作成」に進む。

コメント