tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【GAE】Google Cloud SDKとgcloudとコンポーネント(components)とgoappをおさらい

はじめに

GAE goな環境を利用しています。
最初に環境構築して以来、google-cloud-sdk 周りにはあまり触れていませんでした。

とある事がきっかけで、

  • google-cloud-sdkgcloudgoappってそれぞれなにするやつ?
  • gcloudコンポーネントgoappってどういう関係?

という所を自分の中で整理できていないなーと思ったので、整理をかねた自分用メモです

アジェンダ

  1. Google Cloud SDKとは
  2. gcloudとは
  3. コンポーネント(components)とは
  4. goappコマンドとは

補足

だいたいの説明は公式サイトから引用させて頂いてます。
引用させて頂いたページはrefします。

1. Google Cloud SDKとは

Google Cloud SDKは、
Google Cloud Platformにホスティングされているリソースと
アプリケーションの管理に使用できる一連のツールです。
gcloud、gsutil、bqなどのコマンドライン ツールもその一部です。
 
gcloud コマンドライン ツールは Cloud SDKと一緒にダウンロードされます。
gcloud の詳しい説明はgcloudの概要にあります。
 
Google Cloud SDK ドキュメント

インストール後のディレクトリはgoogle-cloud-sdkという名前になっています。

Cloud SDK のインストール

このブログでは、それぞれが何なのかの説明にとどめます。

cloud SDK のインストール は以下をご参考ください。
* cloud SDK のインストール

2. gcloudとは

gcloudとは

gcloudは Google Cloud Platformへの
主要なコマンドライン インターフェースを提供するツールです。
 
このツールを使用すると、
コマンドラインから、またはスクリプトその他の自動化により、多くの一般的なプラットフォーム タスクを実行することができます。
 
gcloud の概要

gcloudとSDK

gcloudは Google Cloud SDKの一部です。
gcloud を使用するには、その前にシステムにSDKをダウンロードしてインストールし、初期化する必要があります。
 
デフォルトでは、リリースレベルが一般提供とプレビューのgcloudコマンドのみがインストールされます。
その他の機能は、SDKコンポーネントのalphaとbetaに含まれています。
 
これらのコンポーネントを使用すると、
Google Cloud BigtableGoogle Cloud Dataflow など、一般提供リリースレベルより前の Cloud Platform 機能を gcloud で使用できるようになります。
 
gcloud の概要

3. コンポーネント(components)とは

コンポーネントとは

コンポーネントとは SDKの一部で、個別にインストールできます。
コマンドライン ツール(gcloud、bq、gsutil)、
リリースレベルがアルファ版またはベータ版の gcloud コマンド、
SDK のツールによって使用される依存関係を含むパッケージなどがあります。
 
最も一般的なコンポーネントはデフォルトでインストールされます。
 
SDK コンポーネントの管理 > コンポーネントとは

デフォルトのコンポーネント

以下は、SDKをインストールすると
デフォルトでインストールされるコンポーネントです。

ID 名前 説明
gcloud Default gcloud Commands Google Cloud Platform を操作するためのツール。
このコンポーネントと一緒にインストールされるのは、リリースレベルが一般提供かプレビューのコマンドだけです。
その他のリリースレベルのコマンドを使用するには、gcloud alpha コマンドや gcloud beta コマンド コンポーネントを別途インストールする必要があります。
bq BigQuery Command-Line Tool Google BigQuery 内のデータを操作するためのツール。
gsutil Cloud Storage Command-Line Tool Google Cloud Storage に関連するタスクを実行するためのツール。
core Cloud SDK Core Libraries SDK ツールが内部で使用するライブラリ。

コンポーネントはIDという単位で管理されています。

componentsコマンド

componentsは、gcloudコマンドのサブコマンドのように指定して使います

componentsコマンドのhelp

以下のコマンドでhelpを見ることができます。

$ gcoud components --help

実際に叩いてみた例です

$ gcloud components --help

NAME
    gcloud components - list, install, update, or remove Google Cloud SDK
        components

SYNOPSIS
    gcloud components GROUP | COMMAND [GCLOUD_WIDE_FLAG ...]

DESCRIPTION
    The gcloud components command group lets you control which tools are
    installed in the Cloud SDK. It can be used to install, update and remove
    components of the Cloud SDK, ensuring a lean, up-to-date installation.

    gcloud components regularly checks whether updates are available for the
    tools you already have installed, and gives you the opportunity to upgrade
    to the latest version.

    Certain components have dependencies. gcloud components will install any
    dependencies, and during removal, any dependant components will be
    uninstalled automatically.

GCLOUD WIDE FLAGS
    These flags are available to all commands: --account, --configuration,
    --flatten, --format, --help, --log-http, --project, --quiet, --trace-token,
    --user-output-enabled, --verbosity. Run $ gcloud help for details.

GROUPS
    GROUP is one of the following:

     repositories
        Manage additional component repositories for Trusted Tester programs.

COMMANDS
    COMMAND is one of the following:

     install
        Install one or more Cloud SDK components.

     list
        List the status of all Cloud SDK components.

     reinstall
        Reinstall the Cloud SDK with the same components you have now.

     remove
        Remove one or more installed components.

     restore
        Restore the Cloud SDK installation to its previous state.

     update
        Update all of your installed components to the latest version.

EXAMPLES
    To see all available components:

        $ gcloud components list

    To install a component you don't have:

        $ gcloud components install COMPONENT

    To remove a component you no longer need:

        $ gcloud components remove COMPONENT

    To update all components you have to their latest version:

        $ gcloud components update

    To update all installed components to version 1.2.3:

        $ gcloud components update --version 1.2.3
components list

以下のコマンドで、提供されているcomponentsの一覧とインストール状況を見る事ができます。

$ gcoud components --help

実際に叩いてみた例です。

$ gcloud components list

Your current Cloud SDK version is: 198.0.0
The latest available version is: 200.0.0

┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                   Components                                                   │
├──────────────────┬──────────────────────────────────────────────────────┬──────────────────────────┬───────────┤
│      Status      │                         Name                         │            ID            │    Size   │
├──────────────────┼──────────────────────────────────────────────────────┼──────────────────────────┼───────────┤
│ Update Available │ BigQuery Command Line Tool                           │ bq                       │   < 1 MiB │
│ Update Available │ Cloud SDK Core Libraries                             │ core                     │   7.9 MiB │
│ Update Available │ Cloud Storage Command Line Tool                      │ gsutil                   │   3.5 MiB │
│ Not Installed    │ Cloud Bigtable Command Line Tool                     │ cbt                      │   4.6 MiB │
│ Not Installed    │ Cloud Bigtable Emulator                              │ bigtable                 │   3.8 MiB │
│ Not Installed    │ Cloud Datalab Command Line Tool                      │ datalab                  │   < 1 MiB │
│ Not Installed    │ Cloud Datastore Emulator                             │ cloud-datastore-emulator │  17.9 MiB │
│ Not Installed    │ Cloud Datastore Emulator (Legacy)                    │ gcd-emulator             │  38.1 MiB │
│ Not Installed    │ Cloud Pub/Sub Emulator                               │ pubsub-emulator          │  33.4 MiB │
│ Not Installed    │ Emulator Reverse Proxy                               │ emulator-reverse-proxy   │  14.5 MiB │
│ Not Installed    │ Google Container Local Builder                       │ container-builder-local  │   4.3 MiB │
│ Not Installed    │ Google Container Registry's Docker credential helper │ docker-credential-gcr    │   2.5 MiB │
│ Not Installed    │ gcloud app Java Extensions                           │ app-engine-java          │ 118.9 MiB │
│ Not Installed    │ gcloud app PHP Extensions                            │ app-engine-php           │  21.9 MiB │
│ Not Installed    │ gcloud app Python Extensions (Extra Libraries)       │ app-engine-python-extras │  28.5 MiB │
│ Not Installed    │ kubectl                                              │ kubectl                  │  12.2 MiB │
│ Installed        │ App Engine Go Extensions                             │ app-engine-go            │ 151.3 MiB │
│ Installed        │ gcloud Alpha Commands                                │ alpha                    │   < 1 MiB │
│ Installed        │ gcloud Beta Commands                                 │ beta                     │   < 1 MiB │
│ Installed        │ gcloud app Python Extensions                         │ app-engine-python        │   6.1 MiB │
└──────────────────┴──────────────────────────────────────────────────────┴──────────────────────────┴───────────┘
To install or remove components at your current SDK version [198.0.0], run:
  $ gcloud components install COMPONENT_ID
  $ gcloud components remove COMPONENT_ID

To update your SDK installation to the latest version [200.0.0], run:
  $ gcloud components update

アルファ版コンポーネントとベータ版コンポーネント

コンポーネントにはα版とβ版があり、
それぞれ以下のようにインストールすることで利用可能になります。

$ gcloud components install alpha
$ gcloud components install beta

詳しく知りたい場合は、公式サイトが参考になります

4. goappコマンドとは

これまでなんとなく使っていたものの
goappコマンド が何かというのは自分的に結構曖昧なままでした。

goappコマンドについては別途軽く調べてみたのでこちらもご参考ください。
* 【GAE】goappコマンドについて簡単にまとめてみた

goappコマンドとは

goappコマンドの説明です。

Google Cloud SDKの一部である
gcloudでインストールするコンポーネントの1つに含まれるコマンド

どのコンポーネント

goappコマンドは、
前述したcomponentsコマンドでインストールすることで利用可能です。

先ほどのcomponents listでいうところのapp-engine-goです

$ gcloud components list
~ 省略 ~ 

│ Installed        │ App Engine Go Extensions                             │ app-engine-go            │ 151.3 MiB │

~ 省略 ~ 

goappコマンドの使い方例

以下のように利用することで、
ローカルでGAEアプリの起動ができます。

$ goapp serve app.yaml

おわり

これで誰かに聞かれても
Google Cloud SDKとgcloudとコンポーネント(components)とgoappについて説明ができそうです
\(^o^)/