🎱

Google Cloud Shellは80番ポートを公開できるよってお話

2024/02/13に公開

Google Cloudに関する記事を書くキャンペーンがあるとのことなので、Google Cloud Shellについての小ネタを出そうかと思います。

Google Cloud Shellは文字通り、Cloud上にShellを立てて操作できるというもの。
(GCSって書くとGoogle Cloud Storageの方が出てくるので、この記事ではGCShellって書きます。)
pythonなどのメジャーどころはおおかたプリインストールされていて、環境構築とか小難しいこと考えないでいいのが便利です。
さて、Webサーバーを公開するときの80版ポートですが、GCShellでは何も考えずともアクセスできるよっていうこととアクセスするためのURLを見てみよう。そんな記事。

目次

  1. GCShellとは
  2. 80番ポートで待ち受けてみる
  3. 80番ポートにアクセスする

1. GCShellとは

GCShellは公式ではこのように紹介されています。(公式サイトの抜粋)

Cloud Shell は、ブラウザから場所を問わずにアクセスできる、オンラインの開発および運用環境です。gcloud コマンドライン ツールや kubectl などのユーティリティがプリロードされたオンライン ターミナルを使用して、リソースを管理できます。

Linux シェルの柔軟性で Google Cloud リソースを管理できます。Cloud Shell を使用すれば、ターミナル ウィンドウからコマンドラインで仮想マシン インスタンスにアクセスできます。

とのこと。
要するに、ブラウザからGoogle cloud上で動いているLinuxのシェルにアクセスできるというわけです。個人的に嬉しいのが、このシェルはiPadアプリでも起動できること。簡単なデプロイ作業するのにPC起動するのめんどくさいので。

2. 80番ポートで待ち受けてみる

本番環境で80番ポートを使うときの簡単なテストとして、GCShellにhttp通信でアクセスしてみましょう。
GCShellはPythonが入っているので、80番ポートにアクセスされたときの挙動はflaskでかんたんに作れます。

適当にflaskのタネ用リポジトリをクローンして、fraskをpipインストール。

インストールが終わったら以下のコマンドで80番ポートのアクセスを処理できるようになります。

frask run --port=80 --host=0.0.0.0

この工程、実際のマシンでやろうとすると結構面倒くさい作業が追加されます。

  • クローン用にGitをインストール
  • 実行環境としてpython3およびpipをインストール
  • 80番ポートに関連するファイアーウォール設定を編集

特にファイアーウォールは、使っているLinuxによっては仮想ファイアーウォール以外にも設定しなきゃいけない項目もあるので、合わせるために二重に手間がかかってめんどうです。

それをGCShellでは特に何も考えずとも実行できるわけです。
しかもアップデートも勝手にやっといてくれている。常に最新の状態での動作検証ができるわけです。やったね。

3. 80番ポートにアクセスする

さて、80番ポートを待ち受けたわけですが、一体どのURLの80番にアクセスすれば良いのでしょう?

GCShellの環境変数にWEB_HOSTというものがあります。
ためしに以下のコマンドで値を表示してみましょう。

echo $WEB_HOST

.devで終わるURLが出力されました。
これにhttps://をつけてブラウザでアクセスすると、Googleへのログインを求められます。

ログイン後、80番ポートにアクセスできます。
こんなかんじ。Flaskのログにも200番を返しましたという旨のログが記録されています。

アクセスするまでにやったことといえば、fraskをインストールしてちょっとだけ書いて実行しただけ。わりとそれだけで、何も考えずにhttp通信したときの挙動を確認できます。
何も考えずに環境を準備しているGCShellってありがたいなと思い、この記事はこれでおしまい。

Discussion