【やってみた】 Amazon Lightsail インスタンスと AWS CloudFront を使って HTTPS 化してみた

2021.04.02

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

現在は Secury Hub に発報される内容であるため、よりセキュアな方法としては Lightsail ロードバランサーで SSL 終端する方法も検討してください。

テクニカルサポートの丸屋 正志(まるちゃん)です。

1. 今回使用する AWS サービス一覧

2. 前提条件

Route53に対して任意のホストゾーンが登録されている必要があります。

ここでは、ホストゾーンを example.com とします。

  • 最終的なアクセス名は下記です。
    • a.example.com

3. Amazon Lightsail 側にて

Amazon Lightsail のコンソール画面にて、インスタンス作成をしていきます。

  1. インスタンスの作成】 を選択 Image from Gyazo
  2. 『インスタンスイメージの選択』 にて
    • [プラットフォームの選択] : 【Linux/Unix
    • [設計図の選択] : 【Amazon Linux 2
  3. 『起動スクリプト』 にて下記コードを入力
    yum -y install httpd
    systemctl start httpd
  4. 任意のブラウザーで作成したインスタンスの パブリック IP を検索し、Apache テストページ表示されていることを確認する。 Image from Gyazo

4. Route53 側にて

Route53 にて登録済みのホストゾーンに対して作成した Amazon Lightsail インスタンスの パブリック IP を登録していきます。

  1. ホストゾーンにて 【レコードを作成】 を選択
  2. 『レコードを作成画面』にて
    • [レコード名]: 任意の名前(空白でも可)
      • 例 : origin.a と入力
    • [値] : Amazon Lightsail インスタンスのパブリック IP を入力 Image from Gyazo
  3. 登録したレコード名でブラウザーにアクセスして確認
    • 例 : origin.a.example.com

5. AWS Certificate Manager で証明書を作成

SSL/TLS証明書を作成していきます。

CloudFront で SSL/TLS証明書 を使用するために、リージョンを【バージニア北部(us-east-1)】に切り替えておきます。

Image from Gyazo

  1. 今すぐ始める】 を選択
  2. パブリック証明書のリクエスト】 を選択
  3. ステップ1: ドメイン名の追加
    • [ドメイン名] : *.example.com Image from Gyazo
  4. ステップ2: 検証方法の選択
    • 任意の検証方法を選択
      • 例 : 【DNS の検証】 を選択
  5. ステップ4: 確認とリクエスト Image from Gyazo
  6. Route 53 でのレコードの作成】 を選択 Image from Gyazo
  7. 証明書の状況確認
    • 状況 : 発行済み
    • 検証状態 : 成功 Image from Gyazo

6. CloudFront でディストリビューションを作成

CloudFront のコンソール画面にて、ディストリビューションを作成していきます。

  1. Create Diiistribution】 を選択
  2. Get Started】 を選択
  3. 『Origin Settings』 にて
    • [Origin Domain Name] : 任意の名前
      • 例 : origin.a.example.com と入力 Image from Gyazo
  4. 『Default Cache Behavior Settings』 にて
    • [Viewer Protocol Policy] : Redirect HTTP to HTTPS
    • [Allowed HTTP Methods] : 任意
      • 例 : GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE を選択 Image from Gyazo
  5. 『Distribution Settings』 にて
    • [Alternate Domain Names(CNAMEs)] : 最終的にアクセスしたいドメイン名を入力
      • 例 : a.example.com と入力
    • [SSL Certificate] : 【Custom SSL Certificate (example.com):】 をチェック
      • 作成した ACM を選択
        • 例 : 【*.example.com(~以下略~)】 Image from Gyazo

7. Route 53 で CloudFront のCNAME を登録

  1. ホストゾーンにて 【レコードを作成】 を選択
  2. 『レコードを作成画面』にて
    • [レコード名] : 任意の名前(空白でも可)
      • 例 : a と入力
    • エイリアス : トラフィックのルーティング先
      • CloudFront ディストリビューションへのエイリアス】 を選択
      • 米国東部 (バージニア北部)】 を選択
      • CloudFront Distributions の 《Domain Name》 を入力 Image from Gyazo

8. HTTPS 化の確認

  • ブラウザーを開き、``https://ドメイン名`` にアクセスします。
    • 例 : ``https://a.example.com/`` Image from Gyazo

おわりに

現在は Secury Hub に発報される内容であるため、よりセキュアな方法としては Lightsail ロードバランサーで SSL 終端する方法も検討してください。

Amazon Lightsail コンソール画面はシンプルで見やすいですよね。
個人的には、EC2 コンソール画面の方が情報量が沢山あって見やすいです XD

あわせて読みたい

CLP に共感できて、一緒に働きたいなと思ってくれるメンバーを大募集しています。 以下の応募フォームからご連絡をお待ちしております。

テクニカルサポートチームの魅力が込められた注目のブログもあわせてご紹介します。