GCPを使ってHTTPSのウェブサイトを公開する(前編)
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でアクセスするところまで、見ていきたいと思います。
Discussion