いつでも無料!Google Compute Engine 常時無料枠の使い方

2017年3月24日  カテゴリー:WEB  タグ: , ,
Pocket
LINEで送る

つい先日(2017年3月9日頃)Google Cloud Platform の常時無料枠が拡大され、トライアル期間が終了しても Google Compute Engine(仮想サーバー) の f1-micro インスタンスが、USリージョンに限り月1台無料で使えるようになりました。Google Cloud Platform をこれから試そうと思っている人にも、すでに使っている人にも嬉しい仕組みですね。

そこで今回は、はじめて Google Cloud Platform を使う方向けに、Google Cloud Platform の利用登録から Compute Engine で作成したサーバーにログインするところまでの手順をまとめてみました。

Compute Engine の常時無料枠

拡大された Google Compute Engine の常時無料枠は、以下の通りです。

  • 1ヶ月あたり1台の f1-micro インスタンス(USリージョンのみ)
  • 30GB/月のHDD、5GB/月のスナップショット
  • 1GB/月のUSリージョンから全地域へのネットワーク転送(中国およびオーストラリアを除く)

Always Free Usage Limits | Google Cloud Platform Free Tier より引用して和訳

他のサービスの常時無料枠もありますが、やはり目玉はこの Google Compute Engine ではないでしょうか。f1-micro のスペックは、仮装CPUコア1つ、メモリ600MBの最小のものですが、これをずっと無料で使える仕組みは、現在(2017年3月24日現在)のところAWSやAzureなど他のクラウドサービスにはありません。

Google Cloud Platform の利用登録

まず初めに Google Cloud Platform の利用登録をします。(Compute Engine は Google Cloud Platform が提供するサービスのひとつです)登録用のGoogleアカウントを1つ用意しましょう。

Google Cloud Platform トップページの「無料トライアル」をクリックし、Googleアカウントでログインします。

Google Cloud Platform の無料トライアルの登録画面が表示されますので、住んでいる国を選択し「同意して続行」をクリックします。

次の画面で「住所」「名前」「電話番号」「クレジットカード番号」(これらの項目は必須です)を入力し、「無料トライアルを開始」をクリックします。

以上で登録完了です。しばらくすると Google Cloud Platform のコンソール(管理画面)が表示されます。

Compute Engine インスタンスの作成

ではさっそく Google Compute Engine で f1-micro インスタンス(USリージョン)を作成してみましょう。

(補足)先ほどから「インスタンス」と聞きなれない言葉が出てきますが、これは「サーバー」のことです。クラウドサービスでは慣習的にサーバーのことをインスタンスと呼びます。

コンソール左上の「≡」メニューから「Compute Engine」を選択します。

VMインスタンスの「作成」をクリックします。

適当な名前を入力し、常時無料枠の「us」から始まるゾーンを選択、マシンタイプは「micro」を選択します。

ブートディスクの「変更」をクリックします。

お好みのサーバーOSを選択します。ブートディスクのサイズは、せっかくなので常時無料枠の上限「30」を入力してみます。(そのままでも構いません)

ファイアウォールで許可するトラフィックを選択します。

標準設定の場合、IPアドレスはサーバーを再起動するたびに変わってしまう「エフェメラル(短命)」なIPアドレスが割り当てられます。サーバーに固定IPアドレスを割り当てたい場合は「管理、ディスク、ネットワーキング、SSH 認証鍵」をクリックして固定IPアドレスの設定を行います。

「ネットワーキング」をクリックし、外部IPから「新しい静的IPアドレス」を選択します。

適当な名前を入力し「予約」をクリックします。(注意:固定IPアドレスの利用は無料ですが、サーバーを削除して固定IPアドレスがどこにも割り当てられなくなると課金が発生します)

外部IPアドレスが割り当てられたことを確認し「作成」をクリックするとサーバーの作成が始まります。

1〜2分でサーバーが作成されます。SSHメニューから「ブラウザウィンドウで開く」を選択すると、ブラウザベースのSSHクライアントが起動して自動的にサーバーにログインしてくれます。

ログインユーザー名は、Googleアカウントのユーザー名(@マークの前の部分)が使われます。このユーザはパスワードなしでsudoが実行できます。

どのリージョンでサーバーを作成しても、タイムゾーンは UTC(協定世界時)になっていますので変更しておきましょう。次のコマンドで、タイムゾーンを日本(東京)に変更できます。

$ sudo timedatectl set-timezone Asia/Tokyo

f1-micro は、ほんとに常時無料枠?(ほんとでした)

少し気になるのは、1ヶ月の推定費用がしっかり表示されていることです(^^;) 本当に常時無料枠だったか追ってレポートします。

(2017年3月28日追記)f1-micro(USリージョン)を起動したまま数日後、課金情報を確認してみました。同じ時期に東京リージョンに作成した f1-micro インスタンスは課金されていましたが、USリージョンに作成した f1-micro インスタンスには課金されていません。(Googleさんうたぐってすみませんでした)

(補足)今回は課金されませんでしたが、USリージョンから中国およびオーストラリアへのネットワーク転送には課金されます。

Compute Engine への接続方法

ブラウザベースのSSHクライアントの他に、Google Compute Engine で作成したサーバーへの接続方法を2つほどご紹介します。

Cloud Shell について

Google Cloud Shell は、ブラウザから直接 Linux Shell が使えるサービスです。ブラウザベースのSSHクライアントに似ていますが Cloud Shell は、裏で Compute Engine の仮装マシン(debianベースのLinux)が起動していて、その仮装マシンをブラウザから操作できるといった仕組みです。(ややこしい説明ですみません、、)

サーバー管理用のパソコンを Google が1台用意してくれて、そいつをブラウザから操作できるのが Cloud Shell とお考えください。(Cloud Shell は無料で使えます)

また Cloud Shell には、各種サービスを管理するための Google Cloud SDK がインストールされているので、gcloud コマンドなどがすぐに使えます。クライアントのOSを気にすることが必要なく SSH鍵の登録も自動でやってくれるので、個人的には Cloud Shell を使った接続がオススメです。

Cloud Shell からの接続

SSHメニューから「gcloud コマンドを表示」を選択します。

表示されたウィンドウ右下の「CLOUD SHELL で実行する」をクリックします。(Google Cloud Shell が起動します)

SSHログイン用の gcloudコマンドが入力されていますので、そのままエンターを押します。

Welcome to Cloud Shell! Type "help" to get started.
foo@your-project-id:~$ gcloud compute --project "your-project-id" ssh --zone "us-central1-a" "sample"

初回は「SSH鍵がないよ!」と言われるので、「Y」を入力してSSH鍵を作成します。

WARNING: The public SSH key file for gcloud does not exist.
WARNING: The private SSH key file for gcloud does not exist.
WARNING: You do not have an SSH key for gcloud.
WARNING: [/usr/bin/ssh-keygen] will be executed to generate a key.
This tool needs to create the directory [/home/foo/.ssh] before
being able to generate SSH keys.
 
Do you want to continue (Y/n)? Y

SSH鍵を作成します。(パスフレーズは必要に応じて入力してください)

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): <空エンター>
Enter same passphrase again: <空エンター>
(略)

SSH鍵が作成されると自動で Compute Engine に登録され、作成したサーバーにログインしてくれます。

Last login: Wed Mar 22 20:29:33 2017 from 192.0.2.1
[foo@sample ~]$

SSHクライアントからの接続

いつも使っているSSHクラアントから接続する場合は、Compute Engine にSSH公開鍵の登録が必要になります。とは言っても、サーバー1台ごとにSSH公開鍵を登録するのではなく、「プロジェクト」という単位での登録になりますので、いちどSSH公開鍵を登録してしまえば、同じプロジェクトであれば新たに作成したサーバーにもSSH公開鍵を自動で登録してくれます。

まず Compute Engine 用にSSH鍵ペアを作成します。「-C」オプションで指定するユーザー名「foo」は Googleアカウントのユーザー名(@マークの前の部分)を指定してください。

$ ssh-keygen -t rsa -f ~/.ssh/gce-key -C foo
 
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): <空エンター>
Enter same passphrase again: <空エンター>
(略)

(補足)「-C」オプションで指定したユーザーがサーバーに存在しなかった場合は、自動的にそのユーザーが作成されます。

作成したSSH鍵ペアのうち「公開鍵(gce-key.pub)」をクリップボードにコピーします。

$ cat ~/.ssh/gce-key.pub | pbcopy

Compute Engine のコンソール画面に戻り「メタデータ」を選択します。

「SSH 認証鍵」を選択し、「編集」をクリックします。

「項目を追加」をクリックします。

クリップボードにコピーした SSH公開鍵をペーストし、「保存」をクリックします。

以上で SSH公開鍵の登録完了です。

SSHクライアントから「秘密鍵(gce-key)」を使ってサーバーにログインができるようになります。

$ ssh foo@<サーバーの外部IPアドレス> -i ~/.ssh/gce-key

お使いのパソコンがWindowsの場合は、PuTTYを使ってSSH接続ができます。詳細は公式マニュアルをご参照ください。
Windows ワークステーションでの PuTTY を使用した接続 | Compute Engine

注意!使われていない固定IPアドレスは課金される

上にも書きましたが、どのサーバーにも、どのロードバランサーにも割り当てられていない固定IPアドレスは、1時間あたり 0.01ドル(2017年3月24日現在)課金されるので注意が必要です。月額にすると 約7.2ドル なかなかバカになりません。

IP アドレスの料金体系 | Google Compute Engine の料金

Google Cloud Platform を使い始めた頃は、無料トライアル期間の300ドルのクレジットがあったので、サーバーを作りまくって色々試しました。作成したサーバーをトライアル期間終了前にしっかり削除したのところまでは良かったのですが、固定IPアドレスをそのままにして痛い目をみたことがありました(^^;)

このような目にあわないように、サーバーを削除したら不要な固定IPアドレスは必ず削除しましょう。

固定IPアドレスの削除方法

コンソール左上の「≡」メニューから「ネットワーキング」を選択します。

「外部IPアドレス」を選択します。

削除したい外部IPアドレスを選択して「静的アドレス」を解放をクリックします。確認ウィンドウが表示されます「OK」をクリックすれば、外部IPアドレスが削除され課金されないようになります。

おわりに

詳しくご紹介できませんでしたが、Google Cloud Platform には「プロジェクト」という仕組みがあります。この仕組みを使うと、その名の通りプロジェクト単位でサーバーを作成したり、ユーザーを管理したりできるのですが、特に便利なのが請求をプロジェクトごとに分けられることです。(正直これが目当てで Google Cloud Platform に乗り換えようと思っています)ちょっと地味な部分ですがAWSには無い Google Cloud Platform の魅力の1つだと思います。

スポンサーリンク
Pocket
LINEで送る

いつでも無料!Google Compute Engine 常時無料枠の使い方」への2件のフィードバック

  1. 服部

    初めまして。
    少し伺いたいのですが…
    gceでwindows serverを立てた事はございますか?
    一部不明な箇所がありまして、
    宜しければ伺いたいのですが…。

    返信
    1. あぱーブログあぱーブログ 投稿作成者

      >服部さん
      はじめまして
      残念ながらgceでWindowsServerは扱ったことがないのです。
      お役に立てなくてすみません(^^;)

      返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です