Amazon Lightsail の cPanel & WHM ブループリントで Lightsail CDN やカスタムドメインを使って SSL オフロード構成にしてみた

2022.08.15

いわさです。

Lightsail に cPanel & WHM のブループリントが用意されていて、すぐに利用を開始することが出来ます。
WHM でアカウントごとにドメインを設定するのでカスタムドメインやリバースプロキシ、CDN を挟んだ際にどういった挙動になるのかを確認してみました。

結論としては通常の Web サイトと同じで、アカウントとドメインの確認はホストヘッダーで判断してくれていて SSL オフロードも問題ありませんでした。

Lightsail CDN を有効化しただけの場合

まずは cPanel & WHM セットアップ済み環境に Lightsail CDN ディストリビューションを有効化してそのままアクセスしてみましょう。
ディストリビューション有効化にあたって静的 IP がまだ適用されていない場合は併せて適用を行います。

セットアップが完了したので、ディストリビューションのデフォルトドメインへアクセスしてみましょう。
CDN のオリジンとしては静的 IP で固定化された Lightsail インスタンスを向いている状態です。

アクセスしてみると、以下のように/cgi-sys/defaultwebpage.cgiにリダイレクトされてしまいました。

WHM でアカウント作成時にドメインを指定していると思いますが、ディストリビューションのデフォルトドメインではドメインの構成を行っていないためこのような挙動になっています。

Lightsail CDN デフォルトドメインでアカウントを作成

では、CDN デフォルトドメインでのアカウントを作成した場合はどうなるでしょうか。
ここでは以下のように設定を行い、Site Publisher で適当なコンテンツを公開してみました。

以下のようにアクセス出来るようになりました。
さらに、cPanel 側で SSL/TLS 構成はまったく行っていませんが、ディストリビューションの SSL/TLS 証明書のみで利用出来ています。

カスタムドメインを使う

さきほどはデフォルトドメインではありますが問題なく CDN 経由で利用することが出来ました。
次に、カスタムドメインを使ってみましょう。

Lightsail DNS を構成し、先程設定した静的 IP を解決先に設定します。
NSレコードは名前解決出来ている状態です。

名前解決先が Lightsail インスタンスになりました。
あとは対象ドメインを使って Create Account をしておきます。

以下のようにカスタムドメインでも/cgi-sys/defaultwebpage.cgiにリダイレクトされなくなりましたね。
ただし、SSL/TLS 構成を行っていない Lightsail インスタンスへ HTTP 通信している状態です。

CDN + カスタムドメイン

最後に、Lightsail CDN と Lightsail DNS ゾーンを組み合わせて、ディストリビューションで SSL オフロードしつつ、カスタムドメインを利用しましょう。

まずは、先程作成したディストリビューションにカスタムドメインを割り当てします。
割り当てを行うために、Lightsail のマネージド証明書を取得する必要があります。

ディストリビューションのカスタムドメインタブにて証明書を作成要求を行うことが出来ます。
要求を行うと、必要な CNAME レコードの内容が表示されるので、DNS ゾーンへレコード登録し 証明書が有効な状態にします。

証明書の準備が出来るとカスタムドメインタブ内でカスタムドメインを有効化することが出来るようになります。
この時点ではディストリビューションのオリジンは Lightsail インスタンスになっていますが、カスタムドメインは Lightsail インスタンスの静的 IP アドレスに名前解決される状態です。
以下のように名前解決先をディストリビューションに変更しましょう。

これで構成は完了です。
先程と同じカスタムドメインなので、CDN を挟むことで カスタムドメイン + HTTPS 化を行うことが出来ました。

まとめ

本日は、Amazon Lightsail の cPanel & WHM ブループリントで Lightsail CDN やカスタムドメインを使って SSL オフロード構成にしてみました。

いずれの構成でも問題なく公開した Web サイトへアクセスさせることが出来ました。

cPanel & WHM 側で意識すべきことはアカウントで許可したドメインかどうかです。
マルチサイトな構成になっているのでアクセス時のホスト名にだけは気をつける必要があります。