Edited at

Google Cloud Platform の VM を Cloud Source Repositories を使える状態で利用する


はじめに

自宅で開発している時に Linux マシンが欲しくなることがあります。使い捨ての VM 環境としては Vagrant など自 PC 上で対応することも可能です。一方でクラウドの利点としては、OS イメージを手元のマシンに配置する必要がないことです。

ここでは Google Cloud Platform の VM インスタンスを使う手順を紹介します。VM を時々起動する程度であれば十分無料で使えます(念の為、公式のGCPの無料枠をご参照の上ご利用ください)。

また、Cloud Source Repositories というリポジトリも利用できます。せっかくなので、ソース類はこちらで管理するようにセットアップします。そうすれば、VM を使い捨てたとしても、ソース類をこちらに残せます。

流れとしては以下の通りです。


  1. Cloud SDK のセットアップ

  2. リポジトリ作成

  3. サービスアカウントを作成

  4. VM を起動

  5. 利用後は VM を削除


Cloud SDK のセットアップ

以降の手順では gcloud コマンドを使います。そのため、手元の PC で Cloud SDK を使える状態にする必要があります。導入手順は公式ドキュメントをご参照ください。

Cloud SDK をインストールして初期化


リポジトリ作成

gcloud コマンドを利用できるようになったら、リポジトリを作成します。

$ gcloud source repos create リポジトリ名


サービスアカウントの作成

サービスアカウントを使う目的は、VM 上から他のサービスを使えるようにすることです。今回のケースでは使いたいのは Cloud Source Repositories です。そのため、次の作業を行います。


  1. サービスアカウントを作成

  2. サービスアカウントに権限付与

  3. VM にサービスアカウントを設定

まず、今後の作業のためにプロジェクトIDを環境変数にセットしておきます。

$ export PROJECT_ID=$(gcloud config get-value project)

サービスアカウントを作成します。

$ gcloud iam service-accounts \

create gce-service-account \
--display-name "gce-service-account"

サービスアカウントに source.writer 権限を付与します。

$ gcloud projects add-iam-policy-binding ${PROJECT_ID} \

--member serviceAccount:gce-service-account@${PROJECT_ID}.iam.gserviceaccount.com \
--role roles/source.writer

[参考]


VMインスタンスの作成

では、先ほど作ったサービスアカウントを設定しつつ VM を起動します。ここでは CentOS にしています。余談ですが下記のコマンドだと 20 秒かからず起動します。速い!

$ gcloud compute instances create my-centos \

--image-family centos-7 \
--image-project centos-cloud \
--machine-type f1-micro \
--preemptible \
--service-account gce-service-account@${PROJECT_ID}.iam.gserviceaccount.com \
--scopes cloud-source-repos

[参考]


VM インスタンスに接続

VM が起動したらインスタンスに接続します。

$ gcloud compute ssh my-centos


Git インストール

実は今回起動したイメージには Git が含まれていないので、yum でインストールします。

$ sudo yum install -y git


git config

下記コマンドで git config の設定をしておく必要があります。

$ git config --global credential.'https://source.developers.google.com'.helper gcloud.sh

参考:リポジトリをリモートとして追加する


リポジトリのクローン

ここまでの作業により、リポジトリを clone できるようになっていますので、次のコマンドで clone します。

$ gcloud source repos clone リポジトリ名


利用後は VM を削除

作業後は、OS シャットダウン後に、インスタンスを削除します。

$ gcloud compute instances delete my-centos


最後に

上記の流れで使い捨ての VM を利用できます。自分の PC に色々と入れていると、ソフトのバージョン管理などが面倒だったり容量も食います。そんな時にクラウド上の VM は便利です。

追記:実際のところ、Linux ライクな環境で開発したい場合は、Cloud Shell でいいような気もします・・


参考

この記事では単に VM を Cloud Source Repositories を使えるようにしただけですが、Cloud Source Repositories はコード検索などの機能があったり、Cloud Build など GCP 上の他のサービスと連携できる効用もあります。Google Cloud Platform のブログ上で紹介されているため案内させていただきます。

新しくなった Cloud Source Repositories 、ベータ版で提供開始