🐧

初学者でもできる Google Compute Engine での VM インスタンス作成と nginx のセットアップ

2024/08/28に公開

はじめに

こんにちは、SRE 部の家野です。
今回は、Google Compute Engine(以下、GCE)の VM インスタンスの作成方法から、nginx を利用したウェブサーバーの構築までの手順を紹介します。

記事の目的と概要

私自身が新卒で Google Cloud について聞いたことはあっても、実際には何なのかよく分からなかった経験があります。
そのため、これから Google Cloud を利用する方々に新卒視点で詳しく説明したいと思い、この記事を執筆しています。GCE の基本的な概要から、具体的なインスタンスの作成方法、さらにウェブサーバーの構築手順までを解説します。この記事を通じて、初心者の方でも GCE を使って簡単に VM インスタンスを作成し、ウェブサーバーをセットアップできるようになることを目指しています。

対象読者

  • Google Cloud 初学者の方
  • GCE ってそもそも何?という方
  • GCE って何ができるの?という方

GCE の概要

GCE とは何か

GCE とは、Google Cloud で提供されている仮想マシン(VM)です。
このサービスを利用することで、Google のコンピュータ上に Linux や Windows の仮想マシンを簡単に作成できます。
VM インスタンスのスペック(CPU やメモリ)も柔軟に変更できるため、必要に応じてリソースを増減することができます。
これにより、自分のパソコンの性能に依存せずに、Google の高性能なコンピュータを利用して、様々な作業を行うことができます。

https://cloud.google.com/products/compute?hl=ja
https://cloud.google.com/compute/docs/instances?hl=ja

GCE の主な機能と特徴

  1. カスタマイズ性の高い VM インスタンスを作成可能:
    • CPU とメモリの組み合わせを自由に選べる
    • 標準的なものから高性能なものまで、多様なマシンタイプが用意されている
    • 必要に応じて、CPU 数やメモリ容量をカスタマイズ可能
  2. 高いスケーラビリティ性:
    • システムの負荷や需要に応じて、リソースを増減できる
    • インスタンステンプレートを使えば、同じ設定の VM を簡単に作成可能
    • マネージドインスタンスグループを利用すれば、自動スケーリングも可能
  3. 高いセキュリティ性:
    • デフォルトでハードウェアレベルのセキュリティが組み込まれている
    • データは自動的に暗号化され、セキュアブートを有効にすることで、マルウェアの防止やシステムの整合性を確保
    • また、Identity and Access Management(IAM)を使って、リソースへのアクセスを厳密に管理可能
  4. 他の Google 提供サービスと簡単に連携可能:
    • GCE は、Google Cloud の他のサービス(Cloud Storage、App Engine、BigQuery など)と簡単に統合可能
    • Google アカウントを使えば、他の Google サービスとの連携もスムーズに行える

https://cloud.google.com/compute/docs/machine-resource?hl=ja
https://cloud.google.com/compute/docs/autoscaler?hl=ja
https://cloud.google.com/compute/docs/about-shielded-vm?hl=ja

GCE を利用するメリット

  1. 高可用性:
    • 世界中のリージョンとゾーンで利用可能なため、地理的冗長性を確保し、災害時にもデータの損失を最小限に抑えられる
    • ライブマイグレーション機能により、メンテナンスによるダウンタイムを回避し、サービスの継続性を確保
    • ヘルスチェックと自動修復機能により、インスタンスの障害を迅速に検出し、サービスの中断を最小限に抑える
  2. コスト効率化:
    • 従量課金制により、使用したリソースにのみ料金が発生し、無駄なコストを削減
    • 継続使用割引やプリエンプティブル VM など、コスト最適化のための多様な選択肢がある
    • 用途に応じて最適な料金プランを選び、コストを抑えることが可能
  3. 簡単な管理:
    • 需要に応じてリソースの増減を自動で調整でき、運用管理の手間を削減
    • インスタンステンプレートを使えば、同じ設定の VM を簡単に作成でき、設定ミスを防ぐことができる
    • マネージドインスタンスグループを利用して、複数のインスタンスを一括管理し、効率的なリソース配分と高可用性を実現
    • Ops エージェントを利用してリソースのメトリクスを収集し、問題を迅速に検出・対応できるため、システムの安定性を向上

https://cloud.google.com/compute/docs/regions-zones?hl=ja
https://cloud.google.com/compute/vm-instance-pricing?hl=ja
https://cloud.google.com/compute/docs/instance-templates?hl=ja
https://cloud.google.com/compute/docs/instance-groups?hl=ja#benefits

GCE の作成方法 (GUI)

今回は、実際に VM インスタンスを作成します。その後、nginx をインストールし、VM インスタンスに設定された外部 IP に http 接続できるところまでを紹介します。

VM インスタンスの作成手順

  1. ダッシュボードの画面から、左上のナビゲーションメニューで、[Compute Engine] > [VM インスタンス] をクリックします。


    ナビゲーションメニューにマウスカーソルを置いた画面

  2. VM インスタンスの画面に移動したら、[インスタンスを作成]をクリックします。

  3. [インスタンスの作成]ページで、[名前]に「test-nginx」と入力します。

  4. [リージョン]に「asia-northeast1(東京)」、[ゾーン]に、「asia-northeast1-a」を選択します。

  5. [マシンタイプ]は、「e2-small」を選択します。

  6. [ファイアウォール]では、「HTTP トラフィックを許可する」を選択します。

    VM インスタンスの作成時に「HTTP トラフィックを許可する」または「HTTPS トラフィックを許可する」を選択すると、GCE は自動的に必要なネットワークタグとファイアウォールルールを設定し、外部からの HTTP および HTTPS トラフィックを許可します。

  7. [詳細オプション] > [ネットワーキング] > [ネットワークインターフェイス]では、[ネットワーク]に「default」、[サブネットワーク]に「default IPv4」を選択します。

  8. 必要な項目を選択したら、[作成]をクリックして VM インスタンスを起動します。

nginx のインストール方法

  1. VM インスタンスが作成されたら、その VM インスタンスのリストから[SSH]ボタンをクリックして、接続します。

    SSH 接続後の画面

  2. 以下のコマンドを入力し、「nginx」のパッケージが入っていることを確認します。

apt list | grep nginx


「nginx」のパッケージが入っていることを確認。

  1. 「nginx」をインストールします。
    以下のコマンドを入力し、「nginx」をインストールします。
sudo apt-get install nginx
  1. インストールした「nginx」を起動し、確認します。
sudo systemctl start nginx #起動
sudo systemctl status nginx #ステータスの確認


「nginx」の起動(active)を確認

curl localhost

この手順を実行することでも、「nginx」が正しく動作していることを確認できます。

「nginx」が起動していることを確認できました。次に、手元の端末からアクセスできることを確認します。

  1. 新しいタブを開き、VM インスタンスに設定されている外部 IP アドレスを入力してアクセスします。

    私の場合は、ブラウザに”34.85.90.166”を入力し、アクセスをします。

    外部 IP アドレスを利用してアクセスが完了した後の画面

以上で、VM インスタンスを起動して、「nginx」をインストールし、外部 IP からアクセスできるようにする作業は完了しました。

まとめ

本記事では、GCE の基本的な概要、メリット、特徴、インスタンスの作成方法、そしてウェブサーバーの導入方法について紹介しました。
まだまだ Google Compute Engine の奥は深く、私自身もすべてを網羅できているわけではありませんが、初めて触る方に、簡単にウェブサーバーのセットアップができることを伝えたかったです。本記事を通して少しでも GCE を理解していただければ嬉しいです。
ここまで読んでいただきありがとうござました。

Discussion