share facebook facebook facebook twitter twitter menu hatena pocket slack

2021.07.29 THU

Google Cloud Compute Engineを使ってみました

Shimpei Chiba

WRITTEN BY Shimpei Chiba

みなさん、Google Cloudはよくお使いになられてますか?
今回は初心者向けにCompute Engineの使い方について触れたいと思います。
AWSなど、他クラウドサービスを使った経験がある方なら、非常に触りやすいと思います。
今回は、2つの異なるゾーンに仮想マシン(VM)インスタンスを作成し、ping、ssh、HTTPを使用してこれらのマシンに接続します。

全体像

①Google Cloud Platform(GCP)Console を使用して Compute Engine 仮想マシンを作成する。

②gcloud コマンドライン インターフェースを使用して Compute Engine 仮想マシンを作成する。

③2つのインスタンス間を接続する。

①Google Cloud Platform(GCP)Console を使用して Compute Engine 仮想マシンを作成する。

左側のナビゲーション メニューで、[Compute Engine] > [VM Instance] をクリックします。

[CREATE] をクリックします。

[Name] は任意で決めます。

[Region] と [Zone] は 任意で大丈夫ですが、ここでは、us-cenral-1,us-cenral-1-a を選択します。
[Machine Type] は、デフォルトのままにします。
[Boot Disk] で、表示されるイメージが「Debian GNU/Linux 10 (Buster)」でない場合は、[Debian GNU/Linux 10 (Buster)] を選択します。

[Identity and API access] の設定は変更せずにそのままにします。
[Firewall] で、[Allow HTTP Traffic] をオンにします。
その他のデフォルト設定はすべて変更せずにそのままにします。
[CREATE]をクリックします。

これでインスタンスを作成できました。

②gcloud コマンドライン インターフェースを使用して Compute Engine 仮想マシンを作成する。

GCP Console の右上のツールバーにある「Cloud Shell をアクティブにする」ボタンをクリックします。

[Continue] をクリックします。

[Authorize]してください。

$ gcloud compute zones list | grep us-central1

リストから、vm一号機を作成したゾーン以外を選択します。
私はus-central1-aを割り当てたので、us-central1-bを選択します。
選択したゾーンをデフォルトのゾーンとして設定するには、選択したゾーンをコマンド「gcloud config set compute/zone」の後に入力します。

$ gcloud config set compute/zone us-central1-b

そのゾーンに my-vm-2 という VM インスタンスを作成するには、次のコマンドを実行します。

gcloud compute instances create "my-vm-2" \
--machine-type "n1-standard-1" \
--image-project "debian-cloud" \
--image-family "debian-10" \
--subnet "default"

注: VM が起動して完全に使用可能になるには、約 2 分かかる場合があります。
Cloud Shell を閉じるには、次のコマンドを実行します。

$ exit

③2つのインスタンス間で接続する。

ナビゲーション メニューで、[Compute Engine] > [VM Instance] をクリックします。

作成した2つのVMインスタンスが表示されます。それぞれ別のゾーン内にあります。

これらの 2 つのインスタンスの内部 IP アドレスは、最初の 3 バイトが共通しています。
これらは異なるゾーンにあっても、Google Cloud VPC の同じサブネット上に存在します。

my-vm-2インスタンスでコマンドプロンプトを開くには、VMインスタンスリストの行で[SSH]をクリックします。

次に ping コマンドを使用して、my-vm-2 がネットワークを介して my-vm-1 に到達できることを確認します。

$ ping my-vm-1.us-central1-a

ping コマンドの出力により、my-vm-1 の完全なホスト名が my-vm-1.us-central1-a.c.PROJECT_ID.internal であることがわかります。
my-vm-1.c.PROJECT_ID.internal の PROJECT_ID は、Google Cloud Platform プロジェクトの名前です。
GCPでは、VM インスタンスの内部IPアドレスのドメインネームサービス(DNS)解決が自動的に提供されます。

Ctrl+C キーを押して ping コマンドを中止します。

次の ssh コマンドを使用して、my-vm-1 のコマンド プロンプトを開きます。

$ ssh my-vm-1.us-central1-a

信頼性が不明なホストへの接続を続行するかどうかを確認するメッセージが表示されたら、「yes」を入力して続行することを確認します。

my-vm-1 のコマンド プロンプトで、Nginx ウェブサーバーをインストールします。

$ sudo apt-get install nginx-light -y

viを使用して、ウェブサーバーのホームページにカスタム メッセージを追加します。

$ sudo vi /var/www/html/index.nginx-debian.html

矢印キーを使用して、カーソルを h1 ヘッダーのすぐ下の行に移動します。
次のようなテキストを用意し、任意の文字列に置き換えます。

aを押して、入力モードにします。
Hi from Tokyo
と入力します。
:wq と押して、保存します。

ウェブサーバーが新しいページを提供していることを確認します。my-vm-1 のコマンド プロンプトで、次のコマンドを実行します。

$ curl http://localhost/

レスポンスは、ウェブサーバーのホームページの HTML ソースになります。これには先ほどのカスタム テキスト行も含まれます。

my-vm-1 のコマンド プロンプトを終了するには、次のコマンドを実行します。

$ exit

my-vm-2 のコマンド プロンプトに戻ります。

my-vm-2 が my-vm-1 のウェブサーバーに到達できることを、my-vm-2 のコマンドプロンプトで確認するには、次のコマンドを実行します。

$ curl http://my-vm-1.us-central1-a/

レスポンスはここでも、カスタム テキスト行を含むウェブサーバーのホームページの HTML ソースになります。

ナビゲーション メニューで、[Compute Engine] > [VM Instance] をクリックします。

my-vm-1 の外部 IP アドレスをコピーして、新しいブラウザタブのアドレスバーに貼り付けます。
カスタム テキストを含むウェブサーバーのホームページが表示されれば、OKです!

元記事はこちら

https://qiita.com/namely_/items/bf87b33fbd7a7d2a5b54

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。