まずは、Hello World
今回はGoogle Cloudを使って、初心者でも簡単にクラウド環境に触れられるよう、Compute Engineを利用して「Hello World」を表示する方法を紹介します。
Google Cloudとは、Googleが提供するクラウドコンピューティングサービスの総称で、多種多様なクラウドサービスを提供しています。その中でもCompute Engineは、仮想マシン(VM)を使ってアプリケーションを実行するためのサービスです。簡単に言うと、インターネット上に自分のコンピュータを作ることができるサービスです。
この記事の目的
Google Cloudの基礎を学びながら、Compute Engineを利用して簡単なアプリケーションをデプロイする方法を実践することです。具体的には、「Hello World」と表示するウェブページを作成し、クラウド上で動作させる手順をステップバイステップで説明します。これを通じて、Google CloudとCompute Engineの基本的な使い方を理解し、将来的により複雑なプロジェクトに応用できるようになることを目指します。
対象読者は、クラウドの初心者であり、Google CloudをTerraformを使用してみたい方を想定しています。それでは、始めていきましょう!
Terraformの導入方法についてはこちらの記事をご参照ください。
https://envader.plus/article/162
環境セットアップ
このセクションでは、Google Cloudを利用するための基本的な環境設定を行います。まず、Google Cloudアカウントの作成方法について説明し、次に必要なツールであるGoogle Cloud SDKのインストールと初期設定を行います。
Google Cloudアカウントの作成方法
Google Cloudを利用するためには、まずGoogle Cloudアカウントを作成する必要があります。以下の手順に従って、アカウントを作成してください。
- Google Cloudの公式サイトにアクセスします。
- 右上にある「無料で始める」ボタンをクリックし、Googleアカウントでサインインします。Googleアカウントを持っていない場合は、先にアカウントを作成してください。
- 必要な情報を入力し、アカウントを作成します。この際、クレジットカード情報の入力が必要です。無料トライアル期間中に費用が発生することはありませんが、クレジットカード情報はアカウントの認証に使用されます。
- 無料トライアルに登録すると、初期クレジットを獲得できます。このクレジットを使用して、無料でGoogle Cloudのサービスを試すことができます。
Google Cloud SDKのインストールと初期設定
Google Cloud SDKは、Google Cloudを操作するためのコマンドラインツールです。以下の手順でインストールと初期設定を行います。
- Google Cloud SDKのダウンロードページにアクセスし、自分のOSに合ったインストーラーをダウンロードします。
- ダウンロードしたインストーラーを実行し、指示に従ってインストールを完了させます。
- インストールが完了したら、ターミナル(またはコマンドプロンプト)を開き、以下のコマンドを実行して初期設定を行います。
gcloud init
gcloud init
コマンドを実行すると、以下のような手順で設定が進みます。- Googleアカウントでログインします。ブラウザが自動的に開き、Googleアカウントでの認証を行います。
- 新規プロジェクトを選択または作成します。プロジェクトは、Google Cloud上でリソースを管理するための単位です。
- デフォルトのリージョンを設定します。リージョンは、リソースを作成する地理的な場所を指定します。初めての場合は、デフォルトのリージョンをそのまま使用して問題ありません。
プロジェクトの作成
ここでは、Google Cloudで新しいプロジェクトを作成する方法について説明します。プロジェクトは、Google Cloud上でリソースを管理するための単位です。
新しいプロジェクトの作成
Google Cloudでの作業を開始するには、まず新しいプロジェクトを作成する必要があります。以下の手順に従って進めてください。
まず、Google Cloudコンソールにアクセスし、Googleアカウントでログインします。
次に、ナビゲーションメニューから「IAM と管理」を選択し、その中の「プロジェクトの作成」をクリックします。
プロジェクト名を入力します。プロジェクト名は自由に設定できますが、[MyFirstProject]など、わかりやすい名前を付けることをお勧めします。そして、「作成」ボタンをクリックして、新しいプロジェクトを作成します。
プロジェクトが作成されると、自動的にプロジェクトIDが割り当てられます。このプロジェクトIDは、Google Cloud内で一意の識別子として使用されるため、メモしておいてください。
サービスの有効化
Google Cloudで必要なサービスを有効化する方法について説明します。今回は、Compute Engine APIを有効化します。
Compute Engine APIの有効化
Google Cloudでは、各サービスを利用するためにそのサービスのAPI(Application Programming Interface)を有効化する必要があります。APIを有効化することで、そのサービスの機能をプロジェクト内で使用できるようになります。これは、AWSとは異なるGoogle Cloud独自の手順です。
まず、Google Cloudコンソールにアクセスし、ナビゲーションメニューから「API とサービス」を選択します。
次に、「ライブラリ」をクリックします。
検索バーに「Compute Engine」と入力し、表示されたCompute Engine APIを選択します。
最後に、「有効にする」ボタンをクリックして、APIを有効化します。
必要な権限の確認と設定
Compute Engine APIを有効にした後、自分のアカウントが適切な権限を持っていることを確認する必要があります。
まず、Google Cloudコンソールで、ナビゲーションメニューから「IAM と管理」を選択します。
次に、「IAM」をクリックします。
ここで、自分のアカウントが適切なロール(例えば「Compute Admin」)を持っていることを確認します。適切なロールを持っていない場合は、プロジェクトオーナーにロールの追加を依頼するか、自分で追加します。
Terraform設定ファイルの準備
Terraformを使用してGoogle Cloud上にCompute Engineインスタンスを作成するための設定ファイルを準備します。
Terraformの基本的な設定ファイルの構成
まず、作業ディレクトリを作成します。ここでは、プロジェクト名をMyFirstProject
としています。
作業ディレクトリを作成するために、以下のコマンドをターミナルで実行します。
mkdir myfirstproject
cd myfirstproject
次に、このディレクトリ内にmain.tf
ファイルを作成し、以下の内容を記述します。
provider "google" {
project = "<YOUR_PROJECT_ID>"
region = "asia-northeast1" # 日本リージョン
}
resource "google_compute_instance" "default" {
name = "hello-world-instance"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-12"
}
}
network_interface {
network = "default"
access_config {}
}
metadata_startup_script = <<-EOT
#!/bin/bash
echo "Hello, World!" > /var/www/html/index.html
EOT
}
<YOUR_PROJECT_ID>
には、先ほどメモしたプロジェクトIDを入力します。これにより、Terraformは指定されたプロジェクトとリージョンでリソースを作成します。
Compute Engineインスタンスの作成
このセクションでは、Terraformを使用してGoogle Cloud上にCompute Engineインスタンスを作成する方法について説明します。
インスタンスの設定
main.tf
ファイルには、Compute Engineインスタンスのリソースが定義されています。このインスタンスは、最新の安定版であるDebian 12のイメージを使用し、起動時に「Hello, World!」というテキストをウェブサーバーのルートディレクトリに配置するスクリプトを実行します。
インスタンスの詳細設定
-
マシンタイプ
e2-micro
(Google Cloudの無料枠で使用可能) -
ブートディスク
Debian 12のイメージ(追加料金なしで利用可能)
-
ネットワークインターフェース
デフォルトのネットワークを使用し、外部からのアクセスを許可するために
access_config
を設定 -
メタデータスタートアップスクリプト
インスタンス起動時に
/var/www/html/index.html
に「Hello, World!」というテキストを配置
デプロイと確認
このセクションでは、Terraformを使用して設定ファイルからリソースをデプロイし、作成されたCompute Engineインスタンスを確認する方法について説明します。
Terraformの実行とリソースのデプロイ
まず、ターミナルで作業ディレクトリ(myfirstproject
)に移動し、以下のコマンドを実行してTerraformを初期化および適用します。
cd myfirstproject
terraform init
terraform apply
terraform apply
コマンド実行時には、変更内容の確認プロンプトが表示されるので、「yes」と入力して続行します。これにより、設定ファイルに基づいてリソースが作成されます。
インスタンスの確認と接続方法
デプロイが完了したら、Google Cloudコンソールで作成されたCompute Engineインスタンスを確認します。
- Google Cloudコンソールにログインし、ナビゲーションメニューから「Compute Engine」→「VMインスタンス」を選択します。
- 作成されたインスタンスの外部IPアドレスを確認します。
- ブラウザでこのIPアドレスにアクセスし、「Hello, World!」が表示されることを確認します。
これで、Google Cloud上にTerraformを使用してCompute Engineインスタンスを作成し、ウェブブラウザで「Hello, World!」を表示するまでの一連の手順が完了しました。
まとめ
この記事では、Google CloudのCompute Engineを使用して、Terraformで「Hello, World!」のアプリケーションをデプロイする方法を学びました。以下に、記事の内容を振り返ります。
記事の振り返り
まず、Google Cloudアカウントの作成方法と、Google Cloud SDKのインストールおよび初期設定方法を学びました。次に、新しいプロジェクトの作成手順を説明し、Compute Engine APIの有効化方法と必要な権限の確認および設定方法を学びました。
続いて、Terraformを使用してCompute Engineインスタンスを作成するための設定ファイルの内容を説明しました。その後、Terraform設定ファイルに基づいてインスタンスを設定し、詳細な設定内容を確認しました。最後に、Terraformを実行してリソースをデプロイし、作成されたインスタンスの外部IPアドレスにブラウザでアクセスして「Hello, World!」が表示されることを確認しました。
次のステップ
次のステップとして、さらに複雑なインフラのデプロイや、他のGoogle Cloudサービス(例えば、Cloud Storage、BigQuery、Kubernetes Engineなど)の利用を検討してみてください。これにより、Google Cloudの幅広い機能を活用できるようになります。
参考資料
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.06.25
初心者向け!CloudFunctionで簡単アプリをデプロイしよう
CloudFunctionは、一言で言えば「サーバーレスコンピューティングサービス」です。AWSのLambdaに相当するサービスで、インフラの管理を気にせずにコードを実行することができます。
- GCP
2024.08.26
Azureサブスクリプションの理解とAWS・Google Cloudの管理単位の違い
この記事は、Azure、AWS、Google Cloudといった主要なクラウドプラットフォームを利用する方々、特にこれからクラウドを導入しようとしている企業のIT担当者やエンジニアを対象にしています。
- AWS
- GCP
- Azure
2024.06.23
簡単ステップで学ぶ!Google CloudRunの基礎とデプロイ方法
この記事では、CloudRunの基本的な概念と機能を理解し、簡単な「Hello World」アプリをデプロイする方法を紹介します。対象読者は、CloudRunやサーバーレスコンピューティングに初めて触れる方です。
- GCP