GeminiのDeep Researchでgcloudコマンドを網羅出来るかどうかを試す

GCP

はじまり

リサちゃん
リサちゃん

どれほどなんだろうか

135ml
135ml

お手並み拝見させていただきます。

GeminiのDeep Researchを試す。

GeminiのDeep Researchやら、ChatGPTのDeep Researchやら、PerplexityのDeep Researchやら、色々なDeep Researchに関する記事をたまに見かけますよね。(Deep ResearchなのかDeepResearchなのかもう見分けが付きません・・・。)

そこで今回は、GeminiのDeep Researchを使って、実際に調べてもらいたかったことを調べてみた結果を確認していこうと思います。ついこの間、Google Gemini上でDeep Researchを機能制限付きで無料で利用出来るようになったのでした。

Deep Researchの出力結果

早速調査結果を見てみます。「gcloud CLIで利用出来るサービスを全て列挙して解説して。」という内容で調査してもらいました。

gcloud CLI の概要  |  Google Cloud CLI Documentation

それでは出力結果をどうぞ・・・

1. はじめに

Google Cloud CLI(gcloud CLI)は、コマンドラインインターフェースを通じてGoogle Cloudリソースを作成および管理するための一連のツールです 。このツール群を利用することで、Google Cloudプラットフォーム上の多くの一般的なタスクを、コマンドラインやスクリプト、その他の自動化を通じて実行できます 。例えば、Compute Engineの仮想マシンインスタンスやその他のリソース、Cloud SQLインスタンス、Google Kubernetes Engine(GKE)クラスタ、Dataprocクラスタとジョブ、Cloud DNSの管理対象ゾーンとレコードセット、Cloud Deployment Managerのデプロイメントなどの作成と管理が可能です 。

gcloud CLIは、広範なGoogle Cloudサービスをコマンドラインインターフェースを通じて操作できる柔軟性を提供し、仮想マシンの管理からアプリケーションのデプロイ、ネットワーク構成まで、多岐にわたるタスクを効率的に実行できます 。さらに、gcloud CLIはCloud Shellと統合されており、ローカル環境にインストールすることなく、ウェブブラウザを通じてGoogle Cloudリソースを管理できる利便性も備えています 。Cloud Shellは、gcloud CLIを含む様々なツールがプリインストールされたインタラクティブなシェル環境であり、Google Cloudのリソースをすぐに試したり、管理したりすることができます 。

本レポートでは、gcloud CLIで利用可能な主要なGoogle Cloudサービスを網羅的に解説します。各サービスが提供する機能の概要と、gcloud CLIを通じてどのように管理できるかについて詳しく説明します。

2. gcloud CLIの構造

gcloud CLIのコマンドは、機能やサービスごとに階層的なグループに整理されています 。この構造により、ユーザーは目的の操作に対応するコマンドを見つけやすくなっています。例えば、gcloud computeコマンドグループはCompute Engineに関連する操作を、gcloud storageコマンドグループはCloud Storageに関連する操作を、そしてgcloud containerコマンドグループはGoogle Kubernetes Engineに関連する操作をそれぞれまとめたものです 。これらのコマンドグループは、特定のGoogle Cloudプロダクトや機能の操作を論理的にグループ化し、ユーザーがCLIをより直感的に利用できるように設計されています 。

gcloud CLIの基本的なコマンド構文は、gcloud <command_group> <sub_group> <action> [flags] [arguments] の形式をとります 。<command_group> は操作対象のGoogle Cloudサービス(例:compute, storage, container)、<sub_group> はさらに細かいカテゴリ(例:instances, buckets, clusters)、<action> は実行する操作(例:create, list, describe, delete)を示します 。[flags] はコマンドの動作を修飾するオプション(例:--zone でゾーンを指定、--project でプロジェクトを指定)、[arguments] は操作に必要な具体的なパラメータ(例:インスタンス名、バケット名)です 。

gcloud CLIには、コマンドの安定性を示すためにリリースレベルの概念があります 。General Availability(GA)レベルのコマンドは、完全に安定しており、本番環境での利用が推奨されます。Betaレベルのコマンドは、機能的には完了していますが、まだいくつかの未解決の問題が存在する可能性があり、予告なしに破壊的な変更が加えられることがあります。Alphaレベルのコマンドは、早期リリース段階であり、予告なしに変更される可能性があります 。Beta版およびAlpha版のコマンドを利用するには、対応するコンポーネントを明示的にインストールする必要があります。これは、gcloud components install alpha または gcloud components install beta コマンドを使用して行います 。

3. gcloudコマンドグループと対応するGoogle Cloudサービスの詳細リスト

以下に、gcloud CLIで利用可能な主要なGoogle Cloudサービスと、それに対応するコマンドグループ、および基本的な操作の例を詳しく解説します。

3.1. コンピューティングサービス

  • Compute Engine: 仮想マシンの作成と管理を行うサービスです 。gcloud compute コマンドグループを使用します。仮想マシンの作成 (gcloud compute instances create --zone [ZONE_NAME]) 、インスタンスの一覧表示 (gcloud compute instances list) 、特定インスタンスの詳細表示 (gcloud compute instances describe --zone [ZONE_NAME]) 、インスタンスへのSSH接続 (gcloud compute ssh --zone [ZONE_NAME]) 、ディスクのスナップショット作成 (gcloud compute disks snapshot --zone [ZONE_NAME] --snapshot-names) 、ファイアウォールルールの管理 (gcloud compute firewall-rules list, gcloud compute firewall-rules create --allow: --source-ranges) など、多岐にわたる操作が可能です。
  • App Engine: スケーラブルなウェブアプリケーションを構築およびホストするためのプラットフォームサービスです 。gcloud app コマンドグループを使用します。アプリケーションのデプロイ (gcloud app deploy) 、アプリケーションの構成管理、トラフィックのルーティングなどが可能です。
  • Google Kubernetes Engine (GKE): コンテナ化されたアプリケーションをKubernetesを使用してデプロイ、管理、スケーリングするためのマネージドサービスです 。gcloud container コマンドグループを使用します。クラスタの作成 (gcloud container clusters create --zone [ZONE_NAME] --num-nodes) 、クラスタの一覧表示 (gcloud container clusters list) 、クラスタへの接続に必要な認証情報の取得 (gcloud container clusters get-credentials --zone [ZONE_NAME]) 、ノードプールの管理、クラスタのスケーリング (gcloud container clusters resize --node-count --zone [ZONE_NAME]) などが可能です。
  • Cloud Functions: サーバーレスでイベントドリブンな関数を実行できるコンピューティングサービスです 。gcloud functions コマンドグループを使用します。関数のデプロイ (gcloud functions deploy --runtime --trigger-http --entry-point --region) 、関数の呼び出し、ログの表示などが可能です。
  • Cloud Run: コンテナ化されたアプリケーションをフルマネージドなサーバーレスプラットフォームで実行および管理できるサービスです 。gcloud run コマンドグループを使用します。サービスのデプロイ (gcloud run deploy --image --region)、トラフィックの管理、カスタムドメインの設定などが可能です。

3.2. ストレージとデータベースサービス

  • Cloud Storage: スケーラブルで耐久性のあるオブジェクトストレージサービスです 。gcloud storage コマンドグループ(以前は gsutil)を使用します。バケットの作成 (gcloud storage buckets create gs:// --location=) 、ファイルやフォルダのアップロード (gcloud storage cp gs:///) 、ダウンロード (gcloud storage cp gs:///)、削除 (gcloud storage rm gs:///) 、バケットやオブジェクトのIAMポリシー管理 (gcloud storage buckets add-iam-policy-binding gs:// --member=user:[EMAIL] --role=, gcloud storage buckets get-iam-policy gs://) などが可能です。
  • Cloud SQL: MySQL、PostgreSQL、SQL Serverのフルマネージドなリレーショナルデータベースサービスです 。gcloud sql コマンドグループを使用します。インスタンスの作成 (gcloud sql instances create --database-version= --region= --tier=)、インスタンスの一覧表示 (gcloud sql instances list)、データベースの作成、バックアップの管理 (gcloud sql backups list, gcloud sql backups describe --instance=) 、データのインポート/エクスポート (gcloud sql export sql --database= --uri=gs:///[FILE_NAME].sql) などが可能です。
  • Cloud Bigtable: 高速でスケーラブルなNoSQLデータベースサービスです 。gcloud bigtable コマンドグループは、alpha および beta コンポーネントを通じて提供されます 。テーブルの作成、データの読み書き、インスタンスの管理などが可能です。
  • Cloud Spanner: グローバルにスケーラブルで、トランザクション整合性を保証するリレーショナルデータベースサービスです 。gcloud spanner コマンドグループを使用します。インスタンスの作成、データベースの管理、データの操作などが可能です。
  • Firestore: モバイルおよびウェブアプリケーション向けのNoSQLドキュメントデータベースです 。gcloud firestore コマンドグループを使用します。データの追加、クエリ、インデックスの管理などが可能です。
  • Memorystore: RedisおよびMemcachedのフルマネージドなインメモリデータストアサービスです 。gcloud memorystore redis および gcloud memorystore memcached コマンドグループを使用します。インスタンスの作成、構成、スケーリングなどが可能です。

3.3. ネットワークサービス

  • Virtual Private Cloud (VPC): Google Cloudリソースをホストするためのプライベートネットワークを提供します 。gcloud compute networks コマンドグループを使用します。ネットワークの作成 (gcloud compute networks create --subnet-mode custom) 、サブネットの作成 (gcloud compute networks subnets create --network --region --range) 、ファイアウォールルールの管理 (gcloud compute firewall-rules list, gcloud compute firewall-rules create --network --allow: --source-ranges) 、ルーティングの管理などが可能です。
  • Cloud Load Balancing: アプリケーションやサービスへのトラフィックを分散するためのフルマネージドでスケーラブルなロードバランシングソリューションです 。gcloud compute forwarding-rulesgcloud compute backend-services などのコマンドグループを使用します。ロードバランサーの作成、バックエンドサービスの構成、ヘルスチェックの設定などが可能です。
  • Cloud CDN: Googleのグローバルに分散されたエッジロケーションを使用してコンテンツをユーザーに近い場所にキャッシュするコンテンツ配信ネットワークです 。gcloud compute cdn-policiesgcloud compute backend-buckets などのコマンドグループを使用します。CDNポリシーの作成、オリジンサーバーの構成などが可能です。
  • Cloud DNS: スケーラブルで高性能なDNSサービスで、アプリケーションのドメイン名解決を管理します 。gcloud dns managed-zonesgcloud dns record-sets コマンドグループを使用します。管理対象ゾーンの作成、DNSレコードの追加/削除などが可能です 。
  • Cloud Interconnect: オンプレミスインフラストラクチャとGoogle Cloud間のプライベートで高性能な接続を可能にします 。gcloud compute interconnectsgcloud compute routers などのコマンドグループを使用します。インターコネクト接続の作成、ルーターの設定などが可能です。

3.4. ビッグデータと分析サービス

  • BigQuery: 高速なSQLクエリを大規模データセットに対して実行できるフルマネージドなサーバーレスデータウェアハウスです 。bq コマンドラインツールを使用します 。データセットの作成 (bq mk)、テーブルの作成 (bq mk.)、クエリの実行 (bq query --use_legacy_sql=false '')、データのロード (bq load --source_format=.) などが可能です。gcloud beta bq コマンドグループも存在し、beta コンポーネントをインストールすることで利用できます 。
  • Dataproc: Apache HadoopおよびApache Sparkクラスタを実行するためのフルマネージドなクラウドサービスです 。gcloud dataproc clustersgcloud dataproc jobs コマンドグループを使用します 。クラスタの作成 (gcloud dataproc clusters create --region --zone [ZONE_NAME] --master-machine-type --worker-machine-type --num-workers)、ジョブの実行 (gcloud dataproc jobs submit --cluster= --region= --)、クラスタの管理などが可能です。
  • Dataflow: Apache Beamを使用したストリーミングおよびバッチデータ処理のためのフルマネージドサービスです 。gcloud dataflow jobs コマンドグループは、alpha および beta コンポーネントを通じて提供されます 。ジョブの実行、監視などが可能です。
  • Pub/Sub: イベントドリブンなアーキテクチャとリアルタイム分析パイプラインを構築するためのメッセージングサービスです 。gcloud pubsub topicsgcloud pubsub subscriptions コマンドグループを使用します。トピックの作成 (gcloud pubsub topics create)、サブスクリプションの作成 (gcloud pubsub subscriptions create --topic)、メッセージのパブリッシュ/サブスクライブなどが可能です。

3.5. AIと機械学習サービス

  • Vertex AI / AI Platform: 機械学習モデルの構築、トレーニング、デプロイのための統合プラットフォームです 。gcloud ai および gcloud ai-platform コマンドグループを使用します。モデルのトレーニング (gcloud ai-platform jobs submit training --module-name [MODULE_NAME] --package-path --region --staging-bucket gs:// --)、モデルのデプロイ、予測の実行などが可能です。
  • Cloud TPUs: 機械学習アプリケーション向けのTensor Processing Unitです 。Compute Engineのオプションとして利用でき、gcloud compute tpus コマンドグループを通じて管理できます。TPUノードの作成、管理などが可能です。

3.6. セキュリティとIDサービス

  • IAM (Identity and Access Management): Google Cloudリソースへのアクセス制御を管理するためのサービスです 。gcloud iam コマンドグループを使用します。プロジェクトのIAMポリシーの取得 (gcloud projects get-iam-policy) 、IAMポリシーへのバインディングの追加 (gcloud projects add-iam-policy-binding --member=user:[EMAIL] --role=) 、IAMポリシーからのバインディングの削除 (gcloud projects remove-iam-policy-binding --member=user:[EMAIL] --role=) 、カスタムロールの作成 (gcloud iam roles create --project= --permissions=, --title=) 、サービスアカウントの作成 (gcloud iam service-accounts create --display-name= --project=) 、サービスアカウントのキーのリスト表示 (gcloud iam service-accounts keys list --iam-account= --project=) など、詳細なアクセス制御管理が可能です 。
  • Cloud Identity: GoogleのIDaaS(Identity as a Service)です 。gcloud identity groups コマンドグループを使用します。グループの作成 (gcloud identity groups create --parent= --group-id= --display-name=) 、グループの削除 (gcloud identity groups delete) 、グループメンバーシップのリスト表示 (gcloud identity groups memberships list --group-email=) 、グループへのメンバーの追加 (gcloud identity groups memberships add --group-email= --member-email=) 、グループからのメンバーの削除 (gcloud identity groups memberships delete --group-email= --member-email=) など、グループとメンバーシップの管理が可能です 。
  • Security Command Center: Google Cloudのセキュリティとリスク管理プラットフォームです 。gcloud scc コマンドグループを使用します。セキュリティ検出結果のリスト表示、アセットの調査、セキュリティ設定の管理などが可能です。
  • Cloud KMS (Key Management Service): 暗号化キーを安全に管理するためのサービスです 。gcloud kms コマンドグループを使用します。キーリングの作成、暗号化キーの作成、暗号化 (gcloud kms encrypt --keyring= --key=[KEY_NAME] --location= --plaintext-file= --ciphertext-file=)、復号 (gcloud kms decrypt --keyring= --key=[KEY_NAME] --location= --ciphertext-file= --plaintext-file=) などが可能です。

3.7. 管理ツール

  • Cloud Monitoring: Google Cloudリソースとアプリケーションのパフォーマンスと可用性を監視するためのフルマネージドサービスです 。gcloud monitoring コマンドグループを使用します。メトリクスのリスト表示、アラートの作成、ダッシュボードの管理などが可能です。
  • Cloud Logging: ログデータの保存、検索、分析、監視を行うためのフルマネージドサービスです 。gcloud logging コマンドグループを使用します。ログのリスト表示 (gcloud logging logs list) 、ログの読み取り (gcloud logging read "resource.type=gce_instance" --limit 5) 、シンクの作成などが可能です。
  • Cloud Deployment Manager: インフラストラクチャをコードとして管理するためのサービスです 。gcloud deployment-manager deployments コマンドグループを使用します。デプロイメントの作成 (gcloud deployment-manager deployments create --config [CONFIG_FILE]) 、デプロイメントの更新 (gcloud deployment-manager deployments update --config [CONFIG_FILE]) 、デプロイメントの削除などが可能です。
  • Cloud Shell: ウェブブラウザからアクセスできるコマンドライン環境です 。直接的な gcloud cloud-shell コマンドグループはありませんが、gcloud CLI自体がCloud Shell内でプリインストールされ、利用可能です。

3.8. その他のgcloudでアクセス可能な関連サービス

  • Cloud Build: Google Cloudインフラストラクチャ上でビルドを実行するサービスです 。gcloud builds コマンドグループを使用します。ビルドの送信 (gcloud builds submit --config)、ビルドのリスト表示、ビルドの詳細表示などが可能です。
  • Artifact Registry: コンテナイメージや言語パッケージを保存、管理、保護するためのフルマネージドサービスです 。gcloud artifacts repositoriesgcloud artifacts packagesgcloud artifacts versions などのコマンドグループを使用します。リポジトリの作成、イメージのプッシュ/プル、パッケージの管理などが可能です。
  • Cloud Tasks: 非同期タスクの実行を管理するためのフルマネージドサービスです 。gcloud tasks queuesgcloud tasks tasks コマンドグループを使用します。キューの作成、タスクの作成、タスクの実行などが可能です。
  • Secret Manager: 機密情報を安全に保存およびアクセスするためのサービスです 。gcloud secrets コマンドグループを使用します。シークレットの作成 (gcloud secrets create --replication-policy automatic)、シークレットへのバージョンの追加 (gcloud secrets versions add --data-file)、シークレットのバージョンのアクセス (gcloud secrets versions access --secret=) などが可能です。
  • Service Directory: サービスの検出、公開、接続を行うためのスケーラブルで可用性の高いサービスです 。gcloud service-directory namespacesgcloud service-directory servicesgcloud service-directory endpoints などのコマンドグループを使用します。名前空間の作成、サービスの登録、エンドポイントの管理などが可能です。

Table 1: gcloudコマンドグループと対応するGoogle Cloudサービス (一部抜粋)

gcloudコマンドグループ対応するGoogle Cloud サービス説明主な操作(例)
gcloud computeCompute Engine仮想マシンの作成と管理インスタンスの作成(create)、一覧表示(list)、SSH接続(ssh)
gcloud appApp Engineスケーラブルなウェブアプリケーションのホスティングアプリケーションのデプロイ (deploy)
gcloud containerGoogle Kubernetes Engine (GKE)Kubernetesクラスタの管理クラスタの作成(create)、一覧表示(list)、認証情報の取得(get-credentials)
gcloud storageCloud Storageオブジェクトストレージバケットの作成(buckets create)、ファイルのアップロード(cp)、ダウンロード(cp)
gcloud sqlCloud SQLマネージドリレーショナルデータベースインスタンスの一覧表示(instances list)、バックアップのリスト表示(backups list)
gcloud iamIdentity and Access Management (IAM)アクセス制御と権限管理IAMポリシーの取得(projects get-iam-policy)、ロールの付与(projects add-iam-policy-binding)
gcloud identity groupsCloud Identityグループとメンバーシップの管理グループの作成(create)、メンバーの追加 (memberships add)
gcloud loggingCloud Loggingログデータの管理と分析ログのリスト表示(logs list)、ログの読み取り(read)
gcloud deployment-manager deploymentsCloud Deployment Managerインフラストラクチャのコード管理デプロイメントの作成(create)、更新(update)
bqBigQueryサーバーレスデータウェアハウスデータセットの作成(mk)、クエリの実行(query)

4. 結論

本レポートでは、gcloud CLIを通じて利用可能な主要なGoogle Cloudサービスについて、その機能概要と基本的な操作方法を解説しました。gcloud CLIは、Compute EngineやCloud Storageといった基本的なインフラストラクチャサービスから、App EngineやGKEのようなプラットフォームサービス、さらにはBigQueryやVertex AIといった高度なデータ分析や機械学習サービスまで、広範なGoogle Cloudの機能をコマンドラインから効率的に管理するための強力なツールであることが示されました。

gcloud CLIのコマンドグループ構造を理解し、各サービスに対応するコマンドとそのオプションを適切に利用することで、ユーザーはGoogle Cloud環境を柔軟かつ効果的に制御できます。また、Cloud Shellとの統合により、環境構築の手間を省き、すぐにコマンドラインでの操作を開始できる点も大きな利点です。gcloud CLIは、Google Cloudを活用するすべての技術者にとって、習得と活用が推奨される重要なツールと言えるでしょう。

レポートで使用されているソース

・・・

評価してみます。

概ねのgcloudコマンドは網羅できていそうですね。流石はGoogle様のGemini様といったところでしょうか。

しかし、満足かと言われると微妙なところでした。

気になった部分。

個人的には以下の部分が気になりました。

  • gcloud schedulerが無い。bqとかgsutilとかはあるけど。gcloud schedulerコマンドは、gcloud CLI referenceに載ってないんですね・・・。ジョブを登録するときとかに使うのに・・・。
  • gcloud pubsubが解説文には記載されているのに、一覧のテーブルには載せてくれていない。解説したものは全て網羅してまとめて欲しい。
  • 調査結果の出力の仕方がちょっと微妙。テーブル形式にした部分とリンク付きのテキストをMarkdownと整合性が取れるように貼り付けることが出来ませんでした。
    • テーブル形式にした部分はスプレッドシートとして出力することが可能なのですが、それだとインラインコードとして記述されている部分が普通のテキストになってしまうんですよね・・・。それはちょっと可読性が低い。なので、テーブルの部分だけはスクショして、Vertex AIでOCRしてMarkdownのテーブル形式にしてもらったら、イイ感じになりました。こうしないとNotionに貼り付けられないんですよね。
    • リンク付きのテキストに関しては、最初レポートで使用されているソースのリンクが、ただリンクが貼ってあっただけだったので、ウェブページの題名にリンクを貼り付けるように指示しました。しかし、出力の質は微妙・・・。
      • あと、Internal Server Errorのサイトを載せていたりもしました。まあ少しぐらいの綻びはしょうがないか。

網羅し切れていない部分があったのは少し残念でした。Google検索すればちゃんと出てきますしね。

修正箇所が多い。

また、修正する場所と、コピペで引用できない部分があって困りました。

Geminiからの下記のようなテーブル形式の出力は、コピペでNotionとかに貼り付けられませんでした。スプレッドシートで出力し直すことも可能なのですが、そうするとテーブルの中のインラインコードの書式は消えてしまい、見づらい表になってしまいます・・・。なんだかなあ・・・。

なので、仕方なくテーブルをスクショしてVertex AIでOCRしてもらう処理が必要だったりしました。

さらに、Deep Researchでは引用元のソースを列挙してくれるのですが、このソースをURLのみで出力してきました。どうせならページの題名に埋め込んでほしかったなあ・・・。

埋め込むようにお願いすると、なんかチグハグな出力になったりします。うーんこの。

Clineに聞いたらどうまとまる?

Deep Researchで抜けがあるのであれば、事前学習モデルだけのClineだとちょっと厳しい?

Claude 3.7 Sonnetで試してみます。

プロンプトの際に、以前に作った僕のブログ記事の文体を分析した資料を踏まえてまとめてもらいます。

それでは出力結果をどうぞ・・・

すみません。

出力されたボリュームがなかなかに多いので別記事にしました。

Cline(Claude 3.7 Sonnet)にgcloudコマンドを網羅してもらった
Google Cloud内のリソースをCLI上で操作するためのツールであるgcloud CLIのコマンドをClineでどれぐらい網羅出来るかどうかを試した記事です。

まとめ

GeminiのDeep ResearchとClineで、以下の点で差異があったと思います。

GeminiCline
記述形式文章を多用。コードブロックを多用。
まとめ本文内の項目を表形式でまとめた。本文内の項目には触れず、ヘルプコマンドで網羅可能である事を紹介した。
過不足漏れあり非推奨のサービスによる過剰あり
人間による修正多い殆ど無い
情報のソースありなし
ボリューム(扱ったサービス)3430
ボリューム(扱ったスニペット)50ぐらい?136
価格$0(今回は無料版でした。)$0.29(API従量課金のみ)
拡張性低い高い

個人的に、まとめ方はClineの方が見やすくて良かったですね。最後にヘルプコマンドを教えてくれるのも柔軟性が有ました。これに、BraveとかのMCPサーバ建てたら、Deep Researchを超えるかもしれない・・・。

Geminiにも、Clineに読み込ませた僕のブログ記事の文体を分析した資料を読ませましたが、途中の記述の仕方が少しだけ変わりましたが、全体的な構成は殆ど変わりませんでした。

おしまい

リサちゃん
リサちゃん

やはり沢山書いてくれますねぇ

135ml
135ml

これが無料になったのはデカイ。

以上になります!

コメント

タイトルとURLをコピーしました