Amazon LightsailでHTTPSアクセスできるWebサーバー(Windows Server・IIS)を構築する

LightsailでWindows Serverを作成し、その上でWebサーバー(IIS)を立ち上げ、ロードバランサーを挟んでHTTPSアクセスに対応させます。
2022.01.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

おはようございます、加藤です。LightsailでWindows Serverを作成し、その上でWebサーバー(IIS)を非冗長化構成で立ち上げます。アクセスにはHTTPSを使いたいため、Lightsail ロードバランサーを挟んでTLS証明書を当てます。

構成図

やってみた

ドメイン名の取得

TLS証明書発行の為にドメイン名が必要です。

こちらのブログを参考にRoute53でドメイン名を購入するか、

Route 53 でドメインを取得・購入する(2019版)

こちらのブログを参考に外部で購入したドメイン名を、新規作成したRoute53 Hostedzoneへ移管してください。

お名前.comで取得したドメインをRoute53のネームサーバで管理設定してみた

Lightsailの構築

インスタンスの作成

Ligtsailのインスタンスの画面から新規でインスタンスを作成します。

インスタンスの作成にはしばらく時間がかかるので、インスタンス無いの設定は後回しにして先にロードバランサーを作成します。

ロードバランサーの作成

Lightsailのネットワーキング画面からロードバランサーを作成します。
この時点ではHTTPSは有効に出来ません、作成後に有功化します。

作成されたロードバランサーの画面に遷移するので、ターゲットインスタンスに先ほど作成したインスタンスを選択し、アタッチします。

アタッチしたら後ほど使うのでロードバランサーのDNS名をメモしておいてください。

TLS証明書の作成

TLS証明書を作成します。

プライマリドメイン名に取得/移管したドメイン名を入力します。取得/移管したドメインのサブドメインを使いたい場合は、代替ドメインおよびサブドメインにサブドメイン名.取得/移管したドメイン名という形式で入力を行います。(サブドメインを使わない場合はこちらへの入力は不要です。)

作成して1分程度待つと、TLS証明書を発行する為のドメイン名を所有していることを証明する為に、DNSに登録が必要なレコードが表示されます。(画像はサブドメインも登録した場合です。)

この次の手順でこれらの名前と値のペアを使用するのでメモしておいてください。

レコードの登録(ドメイン所有証明、Webサーバーの名前解決)

ドメイン所有証明、Webサーバーの名前解決という2つの目的の為にDNSレコードを作成します。まずはドメイン所有証明の為のレコードです。

Rotue53 Hostedzoneの画面を開き、所有を証明したいドメイン名のリンクをクリックします。

レコードの作成をクリックします。

下記のように設定し、レコードを作成します。サブドメインの場合は、サブドメイン名がレコード名に含まれているので誤ってサブドメイン名まで取り除いてレコード作成しないように気をつけてください。

項目名 設定値
レコード名 Lightsail側で指定された名前から末尾のドメイン名を取り除いたもの(この例では.rkato.classmethod.info.)
レコードタイプ CNAME – 別のドメイン名および一部の AWS リソースにトラフィックをルーティングします。
エイリアス OFF
Lightsail側で指定された値

(この画像のレコード名はスクリーンショットを作成するタイミングの都合で先ほどのスクリーンショットのレコード名と異なっていますが、表の通りLighsailで指定されたレコード名を入力してください。)

続いてWebサーバー名前解決の為のレコードを作成します。

項目名 設定値
レコード名 無し/サブドメイン名(サブドメイン名を使う場)
レコードタイプ A – IPv4 アドレスと一部の AWS リソースにトラフィックをルーティングします。
エイリアス ON
トラフィックのルーティング先 Application Load Balancer と Classic Load Balancer へのエイリアス
リージョン アジアパシフィック (東京) [ap-northeast-1]
ロードバランサー メモしておいたロードバランサーのDNS名

Lightsailのネットワーキング画面に戻り、作成したロードバランサーの画面を開いて証明書が有効になるのを待ちます。(5~10分程度かかります) ステータスが有効に変わったら、HTTPSの項目で作成された証明書を選択します。

Webサーバーのインストール

Ligtsailのインスタンスの画面を開いて、作成したインスタンスのPCアイコンをクリックしてブラウザでリモートデスクトップ接続をします。

Powershellを開いて下記のコマンドを実行してWebサーバー(IIS)をインストールします。

Install-WindowsFeature Web-Server -IncludeManagementTools

動作確認

インストールが完了したら、WebブラウザでアクセスしてIISの画面が表示されれば動作OKです!!

あとがき

LightsailはSLAこそ無いですが設計目標として、ブロックスストレージディスクは可用性99.99%、年間障害率0.2%になるように設計されていることが明示されており、これで十分なケースは多数あると思います。また、EC2への変換も可能で将来的に構成変更が必要になっても容易に対応が可能です。 ただし、気をつけて欲しいポイントとしてWindowsのLightsailインスタンスは自動スナップショット作成に対応していない為、手動でスナップショットを作成するか、ステートレスなリソースとして扱う必要があります。

以上でした。