🐢

GCPを使ってHTTPSのウェブサイトを公開する(後編)

2022/12/07に公開

Google Cloud Platform(GCP)の初心者ですが、忘れないためにもGCPを使って、ApachとPHPをインストールしたウェブサーバをHTTPSで公開するところまでを、簡単にまとめました。

前編では、Google Compute Engine(GCE) でVMインスタンスを作成して、SSH接続の設定をして、ApachとPHPをインストールをして、パブリックIPでウェブサイトを閲覧するところまでを行いました。

https://zenn.dev/knockknock/articles/10aa24fde47c45

中編では、Cloud Domainsでドメインを取得して、Cloud DNSで取得したドメインと、前編で起動させたVMインスタンスを紐付けて、http://ドメイン で閲覧できるようにしていきます。

https://zenn.dev/knockknock/articles/8e3f996beb5651

今回は、HTTPSでアクセスするための設定を見ていきたいと思います。


インスタンスグループの作成

まずは、インスタンスグループを作成して、対象となるVMインスタンスを設定します。「New unmanaged instance group」を選択して、VMインスタンスに、前編で作成したVMインスタンスを選択します。


ロードバランサの作成

SSL証明書を設置するために、ロードバランサを作成して、インスタンスグループを設定します。

HTTP(S)ロードバランシングの構成を開始します。

インターネット接続または内部専用にてインターネットからVMまたはサーバレスサービスへを選択します。グローバル / リージョンにてグローバルHTTP(S)ロードバランサを選択して続行します。


フロントエンドの構成

作成したロードバランサの設定をします。まずはフロントエンドの構成を設定します。設定内容は以下になります。

  • プロトコルにてHTTPSを選択
  • IPアドレスを作成して、エフェメラルの状態から、ロードバランサのIPを固定化する
  • 新しい証明書を作成
  • HTTPからHTTPSへのリダイレクトを有効にする

証明書の作成では、Googleマネージドの証明書を作成するを選択、ドメインにて、Cloud Domainsで取得したドメインを設定します。GoogleマネージドSSL証明書は、Google Cloud Load Balancingに無料で設置できるSSL証明書になります。


バックエンドの構成

次にバックエンドの構成を設定します。設定内容は以下になります。

  • プロトコルにてHTTPを選択
  • 新しいバックエンドにて、先ほど作成したインスタンスグループを選択ポート番号に80番を設定
  • ヘルスチェックを作成

ヘルスチェックの作成では、名前だけを設定して保存するだけで完了です。


ルーティングのルールの設定

最後にルーティングルールの設定です。モードにて単純なホストとパスのルールを選択、バックエンドにて先ほどのバックエンドの構成が選択されていれば完了です。

ロードバランサの設定が全て完了したら作成をクリックして、ロードバランサを作成します。


DNSの設定

Cloud DNSにて、ロードバランサのIPをAレコードに登録します。

中編にて設定したゾーンを編集します。

Aレコードを選択して編集します。

VMインスタンスのグローバルIPが設定されていますので、こちらを、ロードバランサのフロントエンドの構成で作成した固定化したIPに変更します。


SSL証明書のステータス確認

先ほど作成したロードバランサを選択し詳細を表示します。

フロントエンドの構成にて作成したSSL証明書をクリックして、詳細を表示します。

DNSにてロードバランサのIPを設定しても、しばらくは、SSL証明書のステータスが PROVISIONNIG(認証中) で、認証が完了していません。この状態だとまだ、HTTPSでアクセスはできません。

しばらく待って(最大で24時間)、SSL証明書のステータスがACTIVEになったら、認証完了で、HTTPSでアクセスできるようになります。


まとめ

GCPを使ってHTTPSのウェブサイトを公開する手順は以上になります。慣れてしまえば難しい事はないと思いますが、利用するサービスや設定項目が多く、そこそこ大変です。しばらくたって、また別のWebサーバーを立ち上げる時には、いろいろと忘れていることもあると思いましたので、メモとして残しました。

https://zenn.dev/knockknock/articles/10aa24fde47c45

https://zenn.dev/knockknock/articles/8e3f996beb5651

Discussion