Google Cloudの利用(1) ー VMインスタンス

  • 2023.05.03
  • GCP

Google Cloudとは

 Google Cloud(旧Google Cloud Platform (GCP)はそのサービスの一部であるが、本稿では以後、Google Cloudを「GCP」と表記する。)はGoogle社が提供するクラウドコンピューティングサービスの総称である。
 種々のコンピュータ・テクノロジーに対応するために多くのサービスが提供されており、無料枠(後述)でも20種類以上ものサービスが利用可能である。
 GCPを利用するためには、はじめにGCPの無料トライアルに登録する。なお、GCPを利用するための前提条件は以下の二つである。

  • Googleアカウント
  • クレジットカード

 準備ができたら、まずはGoogle Cloudにアクセスし、「無料で使ってみる」をクリックする。登録作業の実際については他の記事を参照のこと。(例えば、「これから始めるGCP(GCE)安全に無料枠を使い倒せ」が参考になる。)
 登録作業の途中で、本人確認のためにクレジットカードの情報や住所、氏名の入力を求められ、ハードルの高い作業となるが、明示的に「課金の有効化」を選択しなければ、クレジットからの支払いは行われないということである。
 登録完了後、GCPのコンソール画面が表示される。

GCPの無料利用

 GCPのサービスには、一定の条件下で利用可能な無料プログラムが設定されており、一部の利用範囲に限り無料でGCPを利用することができる。無料プログラムは次の二つである。

  • 90 日間 $300相当(39,750円程度)の無料トライアル
     新規登録利用者に限り90日間の期間限定で$300相当のボーナスが付与される。利用者はこの期間内であれば、種々のサービスの支払いに利用することができる。
  • 無料枠
     無料トライアルと違って利用期限がなく、1ヶ月間隔で無料枠が付与される無期限の仕組みである。月あたりの設定上限の範囲に限り一部のプロダクトやサービスを無料利用できる。上限の範囲内でやり繰りしている分には課金が発生しないため、上手に活用することで利用料金を抑えることが可能となる。
 明示的に「課金の有効化」を選択しなければ、クレジットからの支払いは行われないが、90 日間 の無料トライアルの期間内に「有効化」を選択しないと、それまでに構築したインスタンス(ざっくりと言えば、立ち上げたサーバーの機能のこと。)は削除されてしまうとのことである。
 90日のトライアル期間中に利用するサービスの内容と無料枠内かどうかや追加で発生する費用等を十分に検証しておくことが必要である。

VMインスタンス(Ubuntu Linux)の作成

 GCPの利用として、本稿ではVMインスタンスでUbuntu Linuxを立ち上げ、無料枠の範囲で運用する。VMインスタンスとは、インターネット上に立ち上げたサーバー機のことで、物理的には1台のコンピュータを複数の利用者があたかも一人1台を占有して使っているかのように扱うのでVM(Virtual Machine)と称される。
 はじめにGCPのコンソールからプロジェクトの選択画面表示後、[新しいプロジェクト]をクリックしてプロジェクトを作成する。プロジェクトとは、例えば会社組織を想定すると、各部署ごとにGCPのサービスや課金管理を行う場合の構成単位と考えればよい。
 個人利用の場合は、一つのプロジェクトでよいので、既定の ‘My First Project’のままで次に進む。
 コンピューティングから、[Compute Engine]ー[VM インスタンス]を選択して「インスタンスを作成」をクリックする。
 無料枠でVMインスタンスを利用するためにはいくつか条件がある。例えば、次のような条件である。

  • マシンタイプは ‘e2-micro (2 vCPU 1 GB メモリ)
  • オレゴン: us-west1、アイオワ: us-central1などの米国リジョンを指定
  • ブートディスクの種類は30 GB/月までの標準永続ディスク

 詳しくは「これから始めるGCP(GCE)安全に無料枠を使い倒せ」を参照するのがよいが、いくつか補足する。

  • 標準永続ディスクサイズの設定
     通常は無料枠の上限である30GBを設定するが、30GB未満で設定すれば別のVMインスタンスを無料枠の範囲で作成することも可能である。
  • 本稿ではブートディスクのイメージとして、使用経験のある ’ubuntu-1804-bionic-v20230418′ を選択したが、イメージサイズの小さい ‘Ubuntu 18.04 LTS Minimal’ を指定して占有メモリを軽減する選択肢もある。(『「Minimal Ubuntu」とは?Google Compute Engineで早速試してみた!』参照)

 最後に[作成]をクリックして、VM インスタンスを作成する。作成されたVMインスタンスを示す。

SSH(ブラウザ ウィンドウで開く)によるサーバーへの接続と最低限の設定

 作成したVMインスタンスからSSH(ブラウザ経由)でUbuntuサーバに接続する。 

 Ubuntuサーバーに接続出来たら以下の設定を行う。

  • スワップメモリの設定
     GCPの無料枠利用の条件として、VMインスタンスのマシンタイプは ‘e2-micro (2 vCPU 1 GB メモリ)を選択している。1GBのメモリではさすがに厳しいのでスワップメモリを設定して操作性を改善する。具体的な操作手順は「GCP VM インスタンス に SWAP (スワップ) を設定する」がわかりやすいが、ここでは、この後のリモートデスクトップ接続での利用を想定して4GBのスワップメモリを設定する。

 次の設定では「【初心者向け】GCPでサーバーを作成したら最初にやるべき設定/Debian系」が参考になる。

  • Ubuntu Linuxパッケージのアップデート
  • 日本語環境の設定
  • タイムゾーンの設定
  • 固定IPアドレスの設定
     VMインスタンスを作成した直後の外部IPアドレスは動的に割り当てられるIPアドレスなので、VMインスタンスを「停止」→「開始/再開」するとIPアドレスが変わってしまう。(「リセット」では変わらない。)それを回避するために、IPアドレスを静的なIPアドレスに変更する。
 将来インスタンスを削除した際、静的なIPアドレスを設定したままの状態だと、無料枠の範囲であっても課金が発生する。したがって、インスタンスを削除する際には必ず静的なIPアドレスを開放しておく必要がある。(インスタンスの停止状態で課金が発生するかどうかは不明。)

リモートデスクトップ接続の設定

 VMインスタンスは、通常、サーバーとして運用するものであり、ウインドウ・マネージャによるGUIの操作環境は不要であるが、各種サーバー(例えばMySQLデータベース)の設定時にはGUIの操作環境が使いやすい。
 リモートデスクトップ接続の設定では、次の項目を設定する。

  • コンソールから必要パッケージのインストール
     「Ubuntu on GCP にリモートデスクトップ接続」を参照して、リモートデスクトップ接続に必要なパッケージを追加インストールとリモートデスクトップで接続するためのユーザーを作成する。
  • ファイアウオールの設定
     GCPのファイアウオールの上り(インターネット→GCP)にrdpポート番号tcp:3389の許可を設定する。
     GCPでは「VPC ファイアウォール ルール」にrdpポート番号tcp:3389を許可する設定があらかじめ用意されているので、この項目を確認する。ナビゲーションメニュー〔三〕から [VPC ネットワーク]→[ファイアウォール]で ‘default-allow-rdp’ の項目を確認して名前を記憶しておく。
      [Compute Engine]→[VMインスタンス]でインスタンスを表示し、インスタンスの名前(通常は ‘instance-1’ )をクリックしてログを表示する。
     上部の「編集」をクリックして「ネットワーキング」のネットワーク タグに先ほど確認した ‘default-allow-rdp’ を追加し、「保存」をクリックして編集を終了する。    
  • ローカルPCからの接続確認
     Windows系OSの場合は「リモートデスクトップ接続」というプログラムが標準で用意されているので、このプログラムを使ってリモートデスクトップ接続を行う。

     「コンピューター」にはVMサーバーの外部IPアドレスを指定する。また、「オプションの表示」を選択するとユーザー名の指定/保存や画面サイズ、色深度を選択することができる。再度、認証画面が出た場合は「Cancel」で次に進む。この認証画面を回避するためには、「GCP Ubuntu VMにリモートデスクトップ接続する」の[認証ダイアログを繰り返し表示させないようにする。]の項目に沿って設定を行う。

 リモートデスクトップ接続を行った画面のスクリーンショットを以下に示す。

MySQLデータベースサーバーの構築

 インターネット上に立ち上げたGCPのVMサーバーにMySQLデータベースサーバーを構築し、gengoデータベースを利用可能にする。

  • MySQLのインストールとgengoデータベースの作成
     構築の手順は、別稿で紹介した「Ubuntu MATEでMySQLを使う」と全く同様である。
  • ファイアウオールの設定
     利用者がGCP上のMySQLサーバーと通信が可能となるように、ファイアウオールの上り(インターネット→GCP)にMySQLのポート番号tcp:3306の許可を設定する。( ‘下り:GCP→インターネット’ は、標準ですべてのポートが解放されているので設定は不要。)
     設定の手順は、「Google Cloud Platformのファイアウォール設定方法」が参考になる。

 これで、以前紹介したPythonプログラムで、各自のインターネット環境から、筆者がGCP上に構築したMySQLデータベースを利用することが可能になった。

 Pythonプログラムの変更部分は、次の2ヶ所である。

conn = mysql.connector.connect(    # 接続パラメータの指定
        host='34.83.39.170',   # ← 変更(VMサーバーのIPアドレス)
        user='myuser',
        password='myuser,   # ← 変更
        database='gengo'
)

参考URL

inserted by FC2 system