AWSでWebサイトをHTTPS化する

スポンサーリンク

はじめに

Webサーバを構築しサイトをHTTPS化します。

ドメインの取得は「Freenom(フリーノム)」を使います。その他はすべてAWSのサービスを組み合わせて設定します。

  • ドメインの取得:Freenom
  • ネットワークの構築:VPC
  • Webサーバ構築:EC2
  • 証明書:ACM
  • 冗長化:ELB
  • DNS:Route53

環境

手順

大きな流れは以下の通りです。順番に設定していきましょう。

  1. ドメインの取得
  2. VPCの作成
  3. サブネットの作成
  4. インターネットゲートウェイの設定
  5. ルートテーブルの編集
  6. EC2インスタンスの作成
  7. DNSの設定(ホストゾーンの作成)
  8. 証明書の取得
  9. ロードバランサーの設定
  10. DNSの設定(Aレコードの作成)

1.ドメインの取得

Freenomにアクセスします。「新しい無料ドメインを探します」の欄に取得したい任意のドメインを入力して、「利用可能状態をチェックします」ボタンをクリックします。管理人は「it-study-test」ドメインを取得することにします。

「チェックアウト」ボタンをクリックします。

利用期間は、1か月~12か月を任意で選択できます。管理人はテストとして使用するのでデフォルトの3か月にしています。「Continue」ボタンをクリックします。

Emailを入力し、「Verify My Email Address」ボタンをクリックします。

「Enter Different Email」ボタンをクリックします。ユーザー登録用のメールが届きます。

必要事項を入力しユーザー登録を完了させます。

以上でドメインの取得は完了です。

2.VPCの作成

AWSマネジメントコンソールからVPCサービスにアクセスします。
左サイドバーから「VPC」をクリックします。「VPCを作成」ボタンをクリックします。
以下の通り入力します。
名前タグ:Test-VPC1
IPv4 CIDR ブロック:10.0.0.0/16
IPv6 CIDR ブロック:IPv6 CIDR ブロックなし
テナンシー:デフォルト
「VPCを作成」ボタンをクリックします。

3.サブネットの作成

左サイドバーから「サブネット」をクリックします。「サブネットを作成」ボタンをクリックします。
以下の通り入力します。
VPC ID:Test-VPC1
サブネット名:Test-Subnet-Public1
アベイラビリティゾーン:アジアパシフィック(東京)/ap-northeast-1a
IPv4 CIDR ブロック:10.0.1.0/24

「新しいサブネットを追加」ボタンをクリックします。
サブネット名:Test-Subnet-Public2
アベイラビリティゾーン:アジアパシフィック(東京)/ap-northeast-1c
IPv4 CIDR ブロック:10.0.2.0/24
「サブネットを作成」ボタンをクリックします。

4.インターネットゲートウェイの設定

左サイドバーから「インターネットゲートウェイ」をクリックします。「インターネットゲートウェイの作成」ボタンをクリックします。
以下の通り入力します。
名前タグ:Test-InternetGateway
「インターネットゲートウェイの作成」ボタンをクリックします。
「アクション」ボタンから「VPCにアタッチ」をクリックします。
使用可能な VPCは、「Test-VPC1」を選択します。
「インターネットゲートウェイのアタッチ」ボタンをクリックします。

5.ルートテーブルの設定

左サイドバーから「ルートテーブル」をクリックします。VPCに「Test-VPC1」が入っている項目を選択します。
「ルート」タブをクリックします。
「ルートの編集」ボタンをクリックします。
「ルートの追加」ボタンをクリックします。
以下の通り入力します。
送信先:0.0.0.0/0
ターゲット:InternetGateway(Test-InternetGateway)
「変更を保存」ボタンをクリックします。

「サブネットの関連付け」タブをクリックします。
「サブネットの関連付けを編集」ボタンをクリックします。
「Test-Subnet-Public1」と「Test-Subnet-Public2」にチェックを入れて「関連付けを保存」ボタンをクリックします。
「閉じる」ボタンをクリックします。

6.EC2インスタンスの作成(1台目)

EC2サービスにアクセスします。まずは1台目を作成します。
「インスタンスを起動」ボタンから「インスタンスを起動」をクリックします。

インスタンスタイプと詳細設定

「Amazon Linux 2 AMI (HVM), SSD Volume Type」の「64 ビット (x86)」にチェックを入れます。「選択」ボタンをクリックします。
タイプは「t2.micro」にチェックが入っていることを確認し「次のステップ:インスタンスの詳細の設定」ボタンをクリックします。
以下の通り入力します。
・ネットワーク:Test-VPC1
・サブネット:Test-Subnet-Public1
・自動割り当てパブリック IP:有効
高度な詳細の中にある「ユーザーデータ」は以下をコピペして下さい。

#!/bin/bash
#ホスト名の変更
sudo hostnamectl set-hostname Web-Server01

#タイムゾーンの変更
timedatectl set-timezone Asia/Tokyo

#ロケールの設定
localectl set-locale LANG=ja_JP.UTF-8

#Apacheのインストール
sudo yum update -y
sudo yum install httpd -y
sudo systemctl enable --now httpd

#index.htmlの作成
echo "<html><h1>Web-Server01</h1></html>" > /var/www/html/index.html

ストレージの追加

「次のステップ:ストレージの追加」ボタンをクリックします。

タグの追加

「次のステップ:タグの追加」ボタンをクリックします。
以下の通り入力します。
・キー:Name
・値:Web-Server01

セキュリティグループの設定

「次のステップ:セキュリティグループの設定」ボタンをクリックします。
・セキュリティグループ名:Web-Server-SG
「ルールの追加」ボタンをクリックします。
・タイプ:HTTP
・プロトコル:TCP
・ポート範囲:80
・ソース:カスタム 0.0.0.0/0
「ルールの追加」ボタンをクリックします。
・タイプ:HTTPS
・プロトコル:TCP
・ポート範囲:443
・ソース:カスタム 0.0.0.0/0
「確認と作成」ボタンをクリックします。

インスタンスの起動

「起動」ボタンをクリックします。
キーペアはすでに作成済みなら既存、未作成なら新規に作成します。
「インスタンスの作成」ボタンをクリックします。

6.EC2インスタンスの作成(2台目)

インスタンスタイプと詳細設定

「Amazon Linux 2 AMI (HVM), SSD Volume Type」の「64 ビット (x86)」にチェックを入れます。「選択」ボタンをクリックします。
タイプは「t2.micro」にチェックが入っていることを確認し「次のステップ:インスタンスの詳細の設定」ボタンをクリックします。
以下の通り入力します。
・ネットワーク:Test-VPC1
・サブネット:Test-Subnet-Public2
・自動割り当てパブリック IP:有効
高度な詳細の中にある「ユーザーデータ」は以下をコピペして下さい。

#!/bin/bash
#ホスト名の変更
sudo hostnamectl set-hostname Web-Server02

#タイムゾーンの変更
timedatectl set-timezone Asia/Tokyo

#ロケールの設定
localectl set-locale LANG=ja_JP.UTF-8

#Apacheのインストール
sudo yum update -y
sudo yum install httpd -y
sudo systemctl enable --now httpd

#index.htmlの作成
echo "<html><h1>Web-Server02</h1></html>" > /var/www/html/index.html

ストレージの追加

「次のステップ:ストレージの追加」ボタンをクリックします。

タグの追加

「次のステップ:タグの追加」ボタンをクリックします。
以下の通り入力します。
・キー:Name
・値:Web-Server02

セキュリティグループの設定

「次のステップ:セキュリティグループの設定」ボタンをクリックします。
・セキュリティグループの割り当て:既存のセキュリティグループを選択する
・名前:Web-Server-SGにチェックを入れる。
「確認と作成」ボタンをクリックします。

インスタンスの起動

「起動」ボタンをクリックします。
キーペアはすでに作成済みなら既存、未作成なら新規に作成します。
「インスタンスの作成」ボタンをクリックします。

7.DNSの設定

ホストゾーンの作成

Route53サービスにアクセスします。
左サイドバーから「ホストゾーン」をクリックします。
「ホストゾーンの作成」をクリックします。

ドメイン名に「it-study-test.tk」を入力します。
「ホストゾーンの作成」ボタンをクリックします。

NSレコードとSOAレコードが作成されます。
NSレコードの値をメモします。

Freenomの設定

Freenom(フリーノム)」にログインします。
右上のメニューから [Services]-[My Domains]をクリックします。
「Manage Domain」をクリックします。
[Management Tools]-[Nameservers]をクリックします。
「Use custom nameservers (enter below)」にチェックを入れます。
「Nameserver 1」から「Nameserver 4」にメモしたNAレコードの値を入力します。
「Change Nameservers」ボタンをクリックします。

8.証明書の取得

ACMサービスにアクセスします。
「証明書をリクエスト」ボタンをクリックします。
パブリック証明書をリクエストにチェックを入れて「次へ」ボタンをクリックします。

完全修飾ドメイン名に「it-study-test.tk」を入力します。
「DNS検証-推奨」にチェックを入れる
「リクエスト」ボタンをクリックします。

ステータスが「保留中の検証」となります。
証明書IDの値(リンク)をクリックします。
「Route53でレコードを作成」ボタンをクリックします。
「レコードを作成」ボタンをクリックします。
DNSレコードが作成されるとステータスが「保留中の検証」から「発行済み」となります。

Route53を確認するとホストゾーンにCNAMEレコードが作成されます。

9.ロードバランサーの設定

ターゲットグループの設定

EC2サービスにアクセスします。左サイドバーから「ターゲットグループ」をクリックします。「Create target group」ボタンをクリックします。
【Basic configuration】
Instances:チェックを入れる。
Target group name:TG-itstudy
Protocol:HTTP
Port:80
VPC:Test-VPC1
Protocol version:HTTP1

【Health checks】
Health check protocol:HTTP
Health check path:/
Port:Traffic port
Healthy threshold:5
Unhealthy threshold:2
Timeout:5
Interval:30
Success codes:200

「Next」ボタンをクリックします。

【Available instances】
作成した2つのインスタンスにチェックを入れます。
「Include as pending below」ボタンをクリックします。
「Create target group」ボタンをクリックします。

ロードバランサーの設定

EC2サービスにアクセスします。左サイドバーから「ロードバランサー」をクリックします。「ロードバランサーの作成」ボタンをクリックします。
「Application Load Balancer」の「Create」ボタンをクリックします。
以下の通り入力します。
【Basic configuration】
・Load balancer name:lb-itstudy
・Scheme:Internet-facing
・IP address type:ipv4

【Network mapping】
・VPC:Test-VPC1
・Mappings:ap-northeast-1aとap-northeast-1cにチェックを入れる
 ap-northeast-1a:Test-Subnet-Public1
 ap-northeast-1c:Test-Subnet-Public2

【Security groups】
・Security groups:Web-Server-SG

【Listeners and routing】
・Protocol:HTTPS
・Port:443
・Default action:TG-itstudy

【Secure listener settings】
Security policy:ELBSecurityPolicy-TLS-1-2-Ext-2018-06
Default SSL/TLS certificate:From ACM/it-study-test.tk

「Create load balancer」ボタンをクリックします。

10.DNSの設定

Aレコードの作成

Route53サービスにアクセスします。
左サイドバーから「ホストゾーン」をクリックします。
「it-study-test.tk」をクリックします。
「レコードを作成」ボタンをクリックします。

レコード名:空白
レコードタイプ:A
エイリアス:ON
 エンドポイント:Application Load BalancerとClassic Load Balancerへのエイリアス
 リージョン:ap-northeast-1
 ロードバランサー:作成したロードバランサーを選択
ルーティングポリシー:シンプルルーティング
「レコードを作成」ボタンをクリックします。

動作確認

以下のURLにアクセスします。
https://it-study-test.tk/

Webページが表示されます。更新ボタンを何度かクリックすると、「Web-Server01」と「Web-Server02」が表示されます。うまくバランシングされていることが確認できます。

次にEC2インスタンス(Web-Server01)を停止します。Webページを更新すると、「Web-Server02」のみが表示されるようになります。

コメント