🐢

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

2022/09/06に公開

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

今回使用したサービス

  • Google Compute Engine(GCE)、Debian
    ウェブサーバー用のバーチャルマシン
  • Cloud Domains
    カスタムドメインの登録と管理
  • Cloud DNS
    ネームサーバー
  • Cloud Load Balancing
    ロードバランサー(負荷分散)、SSL証明書取得
  • Apache/2.4.54 (Debian)
    ウェブサーバソフトウェア
  • PHP 7.4.30
    サーバーサイドプログラム

簡易的な図にすると以下のようになります。

前・中・後編と3つに分けて、まとめましたが、今回は、IPでアクセスして、ウェブサイトが公開されているところまで確認していきます。アカウント作成に関しては、省かせていただきます。

Google Compute Engine(GCE)インスタンスを立ち上げる

まず、Google Compute Engineを使うために、Compute Engine APIを有効にします。

次に、VMインスタンスを作成していきます。

最低限設定が必要な項目ごとに、説明します。

  • 名前 : 半角英数字
  • リージョン : USリージョンを選ぶとリーズナブル
  • ゾーン : 選択したリージョン内で自由に選択

  • マシンタイプ : 一番安く済むように選びましたが、用途に合わせてスペックは選択ください

  • イメージ : デフォルトで選択されているDebian GNU/Linux11を選択しましたが、慣れているOSがあればそちらを選択ください

選択した項目によって、金額は大きく変わります。

月額予測を確認しながら、問題なければ、インスタンスを作成ください。

SSH接続

VMインスタンスを作成したら、SSH接続するための鍵ペアを作成します。

ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_gce_vm -N '' -C 'VM作成時に入力した名前' 

~/.ssh/配下に、my_gce_vm(秘密鍵)とmy_gce_vm.pub(公開鍵)が生成されるので、公開鍵ファイルの中身をコピーしておくいてください。

cat ~/.ssh/my_gce_vm.pub

# 以下のような文字列が表示されるので全てコピー
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

コピーした*SSH公開鍵をVMインスタンスに設定します。

SSHで接続できるようになっているかと思います。

ssh -i ~/.ssh/my_gce_vm VMインスタンス名@パブリックIP

パプリックIPを固定化

VMインスタンスに割り当てられるデフォルトのパブリックIPは、VMインスタンスを終了するごとに変動(エフェメラル)してしまうので、VMインスタンスを終了しても同じパブリックIPが割り当てられるように、パブリックIPを固定する必要があります。

静的アドレスの予約にて接続先にVMインスタンスを指定してください。

固定化したIPアドレスが設定されました。

上記の固定化したパブリックIPで、SSH接続できるようになっているかと思います。

ssh -i ~/.ssh/my_gce_vm VMインスタンス名@パブリックIP

Apacheをインストール

SSH接続したら、以下のコマンドでApacheをインストールします。あくまでDebianの場合ですので、OSイメージに合わせてインストールしてください。

sudo apt-get -y install apache2
sudo apache2 -v
> Server version: Apache/2.4.54 (Debian)

次に、ファイアウォール設定の中の

  • HTTP トラフィックを許可する
  • HTTPS トラフィックを許可する

を指定して、80番ポートと443番ポートへのアクセスを許可してください。

パブリックIPにアクセスすると、初期ページが表示されます。

PHPをインストール

続いてPHPをインストールします。

sudo apt-get -y install php
php -v
> PHP 7.4.30 (cli) (built: Jul  7 2022 15:51:43) ( NTS )

インストール出来たら、PHPファイルを作成します。

sudo mv /var/www/html/index.html /var/www/html/index.php
sudo vim /var/www/html/index.php

VIを起動して、PHPファイルを以下のように書き換えます。(※:%dコマンドで一括でテキストが削除されます)

<html>
    <head>
    </head>
    <body>
        <div>
            <?php
                echo "Hello World!!"
            ?>
        </div>
    </body>
</html>

再び、パブリックIPでアクセスして、Hello World!!が表示されれば成功です。

まとめ

IPでアクセスして、ウェブサイトが公開されているところまで確認できました。次回は、ドメインを取得して、HTTPでアクセスするところまで、見ていきたいと思います。

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

Discussion