*

15分でできる!GCE上でGO言語を動作させるための手順

公開日: : 投稿者: GCE, GCP, GO言語

GCP上でGO言語を動かす場合、一番最初に思い浮かぶのはGAE/GOだと思いますが、中にはGCE上で一からGO言語の環境を設定したいという開発者もいるかと思います。今回はGoogle Compute Engine(以下GCE)上でGO言語を動作させるための手順について説明します(※1)。

※1 GAE上でGOを動作させるための手順については以下をご参考ください。

「PaaS最前線!たったの15分でできるGAE/GO入門!」
http://www.apps-gcp.com/gae-go-gettingstart-01/

GCPプロジェクトの作成

GCEを利用する場合、GCPプロジェクトの作成をおこなう必要があります。以下URLの「GCPプロジェクトの作成(1)~(3)」を参考にプロジェクトの作成をおこなってください。

-GCPプロジェクトの作成
http://www.apps-gcp.com/bigquery-introduction/#GCP

GCEインスタンスの作成

GCEインスタンスの作成方法について説明します。以下の手順に従って、GCPの管理コンソールからVMインスタンスの作成をおこなってください(※2)。

※2 VMインスタンスの作成は後述するGoogle Cloud SDKのgcloudコマンドでも作成可能ですが本記事ではGCP管理コンソール上での作成方法を説明します。

  1. GCP管理コンソールにアクセスしGoogleアカウントでログインします。
    https://console.cloud.google.com/
  2. 画面左上のメニューアイコンをクリックし、メニューが開いたら「Compute Engine」を選択します。
    image04
  3. VMインスタンスの管理画面に遷移後、「Create Instance」ボタンを押下します。
    image00
  4. VMインスタンス作成画面に遷移したら、以下項目を入力します。
    • インスタンス名(Name)
      VMインスタンスの名称を入力します。任意の文字列を入力してください。
    • Zone
      VMインスタンスが作成されるZoneを選択します。例として「asia-east1-a」を選択します。
    • マシンタイプ
      VMインスタンスのマシンタイプを選択します。例として「n1-standard-1」(1vCPU/3.75GB memory)を選択します。
      image06
  5. 「Boot disk」の「Change」ボタンを押下してOSの変更をおこないます。デフォルトでは「Debian GNU/Linux 8」となっています。
    image02
  6. Boot diskに「CentOS 7」を選択し「Select」ボタンを押下します。
    image01
  7. OSの選択が完了したら画面下にある「Create」ボタンを押下して、VMインスタンスの作成を実行してください(※3)。
    ※3 追加ディスク・ネットワーク・SSHキー設定等、VMインスタンスの作成画面ではさまざまな設定をおこなうことができますが、本記事の内容では不要な設定のためデフォルト設定のままVMインスタンスの作成を実行します。
    image03
  8. インスタンスの作成が完了すると、さきほど作成したVMインスタンスが一覧として表示されます。
    image05

以上でVMインスタンスの作成は完了となります。

GCEインスタンスにSSH接続する

GCPユーザは、Google Cloud SDKのgcloudコマンドによってVMインスタンスに対するSSH接続を実行することができます。本章ではgcloudコマンドによるSSH接続の手順について説明します。

  1. Google Cloud SDKのインストール
    以下のURLからSDKのダウンロードをおこなってください。SDKの対応OSは3種類ありますので、環境に合わせてダウンロードをおこなってください。

  2. SDKのインストールが完了したらターミナルを立ち上げ以下のコマンドを実行してください。
    $ gcloud auth login
  3. コマンドを実行すると、認証URLが発行されますので、ブラウザから認証URLにアクセスし、「許可」ボタンを押下してください。
    $ gcloud auth login

    Your browser has been opened to visit:
    https://accounts.google.com/o/oauth2/auth?redirect_uri=http%3A%2F%2Flocalhost%3A8085%2F&prompt=select_account&response_type=code&client_id=32555940559.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fappengine.admin+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcompute&access_type=offline

  4. 認証の完了
    「You are now logged in as [******@gmail.com].」というようなメッセージがコマンドライン上に出力されれば認証は成功となります。

    $ gcloud auth login

    Your browser has been opened to visit:
    https://accounts.google.com/o/oauth2/auth?redirect_uri=http%3A%2F%2Flocalhost%3A8085%2F&prompt=select_account&response_type=code&client_id=32555940559.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fappengine.admin+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcompute&access_type=offline

    Saved Application Default Credentials.
    You are now logged in as [******@gmail.com].

  5. 次はgcloudコマンドで操作するプロジェクトを設定します。以下のコマンドを実行し、操作対象のプロジェクトを設定してください。<project>に指定するのは、あなたが作成したプロジェクトのIDとなります。
    $ gcloud config set project <project>
  6. 以下のコマンドを実行しVMインスタンスにSSH接続してください。「instance-1」はインスタンス名で、「asia-east1-a」は接続するVMインスタンスのZoneとなります。
    $ gcloud compute ssh instance-1 –zone asia-east1-a

以上でVMインスタンスへの接続手順は完了です。

GOのインストールと環境設定

CentOSにGOをインストール手順について説明します。以下の手順に従ってGOのインストールを完了させてください。

  1. 任意のインストール先フォルダに移動後、wgetコマンドでGO言語のダウンロードをおこないます。
    $ cd /usr/local/src

    $ sudo wget https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz

  2. 以下のコマンドからダウンロードファイルの展開をおこないます。
    $ sudo tar -C /usr/local/ -xzf go1.6.2.linux-amd64.tar.gz
  3. 展開したら、PATHの設定をおこないます。
    $ export PATH=$PATH:/usr/local/go/bin
  4. 以下のコマンドを実行しGO言語のバージョンが表示されればインストールは完了です。
    $ $ go version

    go version go1.6.2 linux/amd64

GOを実行する

最後は実際にGOのプログラムを実行してみます。以下の手順に従ってGOの実行をおこなってみましょう。

  1. viコマンドで以下のサンプルファイルを作成します。
    package main
    import “fmt”
    func main() { ???fmt.Printf(“hello, world\n”)}
  2. runコマンドを実行して(1)のサンプルコードを実行します。
    $ go run hello.go
  3. 以下のように「hello, world」と表示されれば実行は成功となります。
    $ go run hello.go

    hello, world

まとめ

以上でGCE上でGO言語を動作させるための手順は完了となります。次回は応用編として、今回作成したGCEインスタンスとLINE BOT APIを連携するための手順について説明します。次回記事は予告なしにリリースされますので、ぜひapps-gcpを定期的にチェックしてください!!

この記事を書いた人

tomorier
tomorier
普段はGCP専門のエンジニアをやっています。
最近は個人的な活動としてGOとswiftでアプリ作ってます。

関連記事

ポケモンGOのバックエンドサーバはやっぱりGCPだった!

ポケモンGO公式サイトより ポケモンGO大人気ですね、恐ろしい程の過熱ぶりで、昨夜も近所の噴水

記事を読む

2016/2/24 GCE vs AWS vs Azure ベンチマーク

2016/02/24 GCE vs EC2 vs Azureベンチマーク 本シリ

記事を読む

2016年 GCE vs AWS:何故Amazonを絶対使ってはイケナイのか!

本文章は以下の記事の超訳(著者の許可を得て)に一部私のコメントを付加したものになります。 GC

記事を読む

GCEの東京リージョンのネットワーク性能調査(台湾リージョンとの比較)

遂に11月8日、GCPの東京リージョンが発表されましたので、取り急ぎ気になるGCEについてネットワー

記事を読む

15分でできる!!GAE/GOで高速REST APIを構築するための簡単手順 〜前編〜

iOSやAndroid等のクライアントアプリを開発する場合、サーバ側の開発も必要となるケースは多

記事を読む

GCEディスクのオンライン拡張を試してみた

GCEではなんと、ディスクを割り当てしたまま拡張することが可能です。 通常良くあるクラウド等では一

記事を読む

2016/05/09 GCE vs AWS vs Azure ベンチマーク

2016/05/09 GCE vs EC2 vs Azureベンチマーク 本シリ

記事を読む

GCEのネットワーク性能調査(iperf3でゾーン間やEC2と比較もしてみる)

GCEとEC2の同一ゾーン間と同一リージョン別ゾーン間でのネットワーク性能(ping遅延、iperf

記事を読む

2015/04/30 GCE vs AWS ベンチマーク

2015/04/30 GCE vs AWS ベンチマーク 本シリーズでは定期的にGCEとEC2のベ

記事を読む

2016/08/12 GCE vs AWS vs Azure ベンチマーク

2016/08/12 GCE vs EC2 vs Azureベンチマーク 本シリー

記事を読む

PAGE TOP ↑