はじめに
Webサーバを構築しサイトをHTTPS化します。
ドメインの取得は「Freenom(フリーノム)」を使います。その他はすべてAWSのサービスを組み合わせて設定します。
- ドメインの取得:Freenom
- ネットワークの構築:VPC
- Webサーバ構築:EC2
- 証明書:ACM
- 冗長化:ELB
- DNS:Route53
環境
手順
大きな流れは以下の通りです。順番に設定していきましょう。
- ドメインの取得
- VPCの作成
- サブネットの作成
- インターネットゲートウェイの設定
- ルートテーブルの編集
- EC2インスタンスの作成
- DNSの設定(ホストゾーンの作成)
- 証明書の取得
- ロードバランサーの設定
- 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」を入力します。
「ホストゾーンの作成」ボタンをクリックします。
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レコードが作成されるとステータスが「保留中の検証」から「発行済み」となります。
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」のみが表示されるようになります。
コメント