gcloud で GCEインスタンスを起動してみる

2020/06/26

はじめに

GCE(Google Compute Engine)は、GCP(Google Cloud Computing)の IaaS(Infrastructure as a Service) な仮想PCで、AWS EC2と同じ位置付けです。

まずGCPを利用できるように、Googleアカウントでログインして、プロジェクトを作成しておいてください。

また、実際のインスタンス起動では料金が発生するため、クレジットカードの登録が必要です。

Google Cloud SDKインストール

ダウンロード

公式サイトからインストーラをダウンロードします。

https://cloud.google.com/sdk/docs/quickstart-macos?hl=ja

インストーラを解凍します。


$ tar -xvf google-cloud-sdk-280.0.0-darwin-x86_64.tar.gz

インストール

インストールは、シェルスクリプトで設問形式で行います。 デフォルトでは「.bash_profile」にパスが記述されます。


$ ./google-cloud-sdk/install.sh ... Do you want to help improve the Google Cloud SDK (y/N)? y 
... 
Do you want to continue (Y/n)? 
... 
[/Users/yoo/.bash_profile]:

インストール直後なので「.bash_profile」を再読み込みします。


$ source ~/.bash_profile

バージョンを確認


$ gcloud --version Google Cloud SDK 280.0.0 bq 2.0.53 core 2020.02.07 gsutil 4.47

Homebrew でインストールする場合

Homebrew でもインストールできますが、インストール後は主導でパスを通してください。


$ brew search google-cloud-sdk
$ brew install google-cloud-sdk

$ mkdir gcp 
$ cd gcp 
$ gcloud init

Googleログイン画面が表示されます。 利用するGCPのアカウントでログインし、内容を確認し「許可」します。


...
Pick cloud project to use: 
 [1] api-project-554441359651
 [2] voltaic-quest-272407
 [3] yoo-app
 [4] Create a new project
Please enter numeric choice or text value (must exactly match list 
item):  3
...
* Run `gcloud --help` to see the Cloud Platform services you can interact with. And run `gcloud help COMMAND` to get help on any gcloud command.
* Run `gcloud topic --help` to learn about advanced features of the SDK like arg files and output formatting

コンポーネントアップデート


$ gcloud components update
...
Do you want to continue (Y/n)?
...
Update done!

To revert your SDK to the previously installed version, you may run:
  $ gcloud components update --version 280.0.0

gcloudを使ってみる

プロジェクト一覧の確認


$ gcloud projects list
PROJECT_ID                NAME           PROJECT_NUMBER
api-project-554441359651  Houngout Test  xxxxxxxx
voltaic-quest-272407      Demo           xxxxxxxx
yoo-app                   yoo-app        xxxxxxxx

インスタンス作成&起動

インスタンス「test-instance」を作成してみます。 インスタンス起動中はここから料金がかかるので、注意が必要です。


$ gcloud compute instances create test-instance
...
Would you like to enable and retry (this will take a few minutes)? 
(y/N)?  y

暫く待つとリージョンの設問があるので、利用したい番号を入力します。
※インスタンスを一度作成するとリージョンは変更できません

東京の場合は「asia-northeast1」ですが、」無料枠を利用したい場合、「us-**」を選びます。
※コンピュータタイプ「f1-micro」であること

ロケーション別のプロダクト提供状況

Google Cloud Platform の無料枠


...
choose a zone:
...
 [7] asia-northeast1-a
 [8] asia-northeast1-b
 [9] asia-northeast1-c
...
Please enter your numeric choice: 7

テストインスタンスが作成と起動が完了しました。


Created [https://www.googleapis.com/compute/v1/projects/yoo-app/zones/asia-northeast1-a/instances/test-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS test-instance asia-northeast1-a n1-standard-1 xx.xx.xx.xx xx.xx.xx.xx RUNNING

デフォルトのインスタンスタイプは「n1-standard-1」になっています。
最小限に料金を抑えるためには、一度インスタンスを停止して、GCPで「f1-micro」に変更しましょう。


$ gcloud compute instances stop test-instance

ターミナルでインスタンスに sshログインします。

初回は認証鍵用のパスフレーズを入力します。


$ gcloud compute ssh test-instance
...
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
...
Enter passphrase for key '/Users/yoo/.ssh/google_compute_engine': 
...
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Linuxのディストリビューションは「Debian」がインストールされているようです。

Apache2をインストール

Webサーバ Apache2 をインストールします。インストール完了後、Apacheは自動起動します。


$ sudo apt-get update && sudo apt-get install apache2 -y

HTTP、HTTPSの有効

「http」「https」ポートが利用できないので、インスタンス詳細 > 編集 から設定を有効にて「保存」します。

インスタンスの再起動


$ gcloud compute instances start test-instance
...
Instance internal IP is xx.xx.xx.xx
Instance external IP is xx.xx.xx.xx

起動したら、外部IPアドレスでブラウザにアクセスします。 最後に利用しない場合は、インスタンスを停止するのを忘れないでください。

git push git pull にブランチ指定せずに実行する
git pull や git push できなくなったとき
Docker のコンテナからホストOS に接続
Mac で ローカル IP アドレス(ipv4)のみを表示する
ホストOS から Docker の MySQLコンテナに接続
caching_sha2_password のエラー
node-config で環境設定ファイルを利用する
rootパスワードを初期化(再設定)する
Git から clone したときのエラー対処
Mac に MySQL をインストール
Mac に PostgreSQL をインストール
Laravel 環境構築 - Mac ネイティブ編
Firebase 入門 - Firebase とは
Firebase 入門 - CLI インストールとデータベースの設定
AWS 無料枠(t2.micro)で容量とメモリエラー
Cloud9 を起動する -初心者編-
gcloud で GCEインスタンスを起動してみる
AWS CLI と jq でインスタンス一覧を整形して表示
React と Laravel7 のプロジェクトを作成する
Homebrewインストール-2020年版
3直線で囲まれた範囲塗りつぶし
PuLP で線形最適化問題を解く
カスタムのペジネーションを作る
node-sass を使って sass をコンパイルする
Log ファサードでSQLログを分離して書き出す
いちから始める Docker - 複数のコンテナを使う - (2020年)
いちから始める Docker - docker-compose を使う - (2020年)
AWS ECR を使ってみる
Laravel7 でマルチ認証
Mac に AWS Client を設定する
Laravel7 リリース
v-html でHTML表示する
Laravel で Nuxt.js を使ってみる(Docker環境)
Laravel で Vue コンポーネントを使う
いちから始める Docker -コンテナをビルド- (2020年)
いちから始める Docker -起動してみる- (2020年)
Mac で MySQL(8系)
composer で vendor がインストールできない
Eloquent の日付を Carbon で扱う
webpack 4 入門(npm編)
[Mac]容量を減らす
DIコンテナはじめ
freee SDKを Laravel で使ってみる
freee API を使ってみる
Segueを利用しない画面遷移
Xcode11.3 で XVim2 を利用する
Codable で JSONを読み込み
Webpack入門(yarn編)
MacからLaradock PostgreSQLで接続エラー
Mac で Laradock の構築