Cloud Service
Cloud Code
使い慣れた IDE のまま Kubernetes や Cloud Run 向けアプリの作成・デバッグ・デプロイを支援する Cloud Code。GCP 開発を加速する無償の IDE 拡張機能。AWS の Toolkit for VS Code に近い位置づけ。
- 1.VS Code・JetBrains 系 IDE・Cloud Shell Editor に入れて使う、GCP 開発支援の拡張機能(プラグイン)。
- 2.Kubernetes や Cloud Run へのデプロイ・デバッグを skaffold と連携して IDE から直接行える。
- 3.GKE や Cloud Run のリソース閲覧、サンプルからの雛形生成、API クライアントライブラリ補完などを統合する。
解決する課題
クラウドネイティブなアプリ(Kubernetes や Cloud Run 向け)の開発で、コーディングからビルド・デプロイ・デバッグまでを、使い慣れた IDE から離れずに行えるようになります。CLI とコンソールを行き来する手間を減らせます。
- ローカルで書いたコードを GKE や Cloud Run へデプロイして動作確認するまでの往復を速くしたい
- クラスタ上で動くコンテナを、ローカルのコードのように IDE のデバッガでステップ実行したい
- Kubernetes マニフェストや skaffold 設定を手書きせず、雛形やスキャフォールドから始めたい
- GCP の API クライアントライブラリを使うとき、補完やサンプルを IDE 内で参照したい
- クラスタやデプロイ済みリソースの状態を、IDE のパネルから直接確認したい
主要概念と用語
- 拡張機能 / プラグイン(extension / plugin): Cloud Code 本体。VS Code には Marketplace から、JetBrains には Plugins から導入する。Cloud Shell Editor には最初から組み込まれている
- 対応 IDE: VS Code、IntelliJ IDEA などの JetBrains 系 IDE、そしてブラウザで動く Cloud Shell Editor
- skaffold(スキャフォールド): ソースの変更を検知してビルド・タグ付け・デプロイを繰り返す、コンテナアプリ向けの開発フローツール。Cloud Code はこの skaffold を内部で利用してデプロイやホットリロードを実現する
- Cloud Run 連携: ローカルでの実行(エミュレーション)と、本番の Cloud Run へのデプロイの両方を IDE から扱える機能
- Kubernetes Explorer: 接続中のクラスタや名前空間、Pod などのリソースを IDE のツリーで閲覧し、ログ表示やストリーミングができるパネル
- サンプル / テンプレート: Hello World 相当の構成済みプロジェクトを生成し、Dockerfile・マニフェスト・skaffold 設定が一式そろった状態から始められる雛形
仕様・制限・クォータ
- Cloud Code 自体は無償の IDE 拡張機能で、ライセンス費用はかからない。課金は連携先の GCP リソース(GKE クラスタ、Cloud Run、ビルドなど)の利用に対して発生する
- 動作には対応 IDE に加え、ローカルで Docker・kubectl・skaffold・gcloud などのツールが必要になる。多くは拡張機能が導入を案内・補助する
- デプロイやデバッグの対象は主にコンテナ化されたアプリ(Kubernetes / Cloud Run)。任意の言語の任意構成すべてを自動化するものではない
- Cloud Shell Editor 版はブラウザ完結で追加セットアップが少ない一方、ローカル IDE 版は手元の環境準備が前提になる
- クォータという概念は拡張機能側にはなく、連携先サービス(GKE・Cloud Run・Cloud Build など)側の制限・クォータに従う
内部の仕組み
Cloud Code は IDE 内で動く拡張機能であり、それ自体がクラウド上で何かを常時動かすわけではありません。実体としては、skaffold・kubectl・gcloud・Docker といった既存のツールを IDE から束ねて呼び出す統合レイヤーです。
- 「デプロイ」や「実行・デバッグ」を押すと、Cloud Code は内部で skaffold を起動し、コンテナイメージのビルド → レジストリへの push → クラスタや Cloud Run への適用、までを連続して実行する
- デバッグ時は、デプロイしたコンテナへデバッガを接続し、ブレークポイントやステップ実行をローカルのコードと対応付ける。ソース変更を検知して再ビルド・再反映するホットリロード的な開発も行える
- Kubernetes Explorer は、設定済みの **kubeconfig(接続情報)**を通じてクラスタ API に問い合わせ、リソース一覧やログを IDE のパネルに表示する
- GCP への認証は **gcloud(Application Default Credentials など)**の仕組みを利用し、拡張機能はその資格情報を使って GCP API を呼ぶ
AWS でいえば、VS Code などに入れて AWS リソースの操作・デバッグを支援する AWS Toolkit for VS Code が近い相当物です。ただし Cloud Code は **Kubernetes / Cloud Run への継続的なデプロイ・デバッグ(skaffold 連携)**に重心がある点が特徴です。
設計パターン / ベストプラクティス
- 新規アプリは Cloud Code のサンプル / テンプレートから起こし、Dockerfile・マニフェスト・skaffold 設定がそろった状態を出発点にする
- 日常の内側ループ(コードを書いて即確認)は Cloud Code + skaffold のホットリロードで回し、本番リリースは Cloud Build や Cloud Deploy など別の CI/CD に任せて役割を分ける
- ローカル検証では minikube などのローカルクラスタや Cloud Run エミュレーションを使い、クラウド課金を抑えつつ素早く確認する
- skaffold 設定やマニフェストはリポジトリでコード管理し、IDE が生成したものをそのまま CI/CD でも再利用して環境差をなくす
- チームでは対応 IDE と必要ツールのバージョンをそろえ、「自分の環境だけ動く」状態を避ける
運用・監視
- Cloud Code 自体は IDE 内ツールのため、監視対象は連携先のサービス側(GKE・Cloud Run など)になる。デプロイ後の挙動は Cloud Monitoring / Cloud Logging で追う
- デプロイ失敗時は、IDE の出力パネルに表示される skaffold / kubectl のログを確認する。多くは認証、レジストリ権限、マニフェストの不備が原因
- クラスタに接続できない場合は **kubeconfig(接続先・コンテキスト)**と、IAM・ネットワーク到達性を見直す
- 認証エラーが出る場合は gcloud のログイン状態と Application Default Credentials、対象プロジェクトの設定を確認する
- 拡張機能・依存ツール(skaffold など)は更新で挙動が変わることがあるため、バージョンを把握し定期的に更新する
コスト
Cloud Code の拡張機能そのものは無償で、利用に追加料金はかかりません。費用が発生するのは、Cloud Code を通じて使う GCP リソース側です。具体的には、デプロイ先の GKE クラスタや Cloud Run の実行、イメージビルド、コンテナレジストリの保管などに対して、それぞれのサービスの料金体系で課金されます。
内側の開発ループはローカルクラスタや Cloud Run のローカル実行で回し、クラウド上のクラスタは検証・本番に絞ると、開発中の常時稼働コストを抑えられます。検証用に立てた一時的なクラスタやデプロイの消し忘れにも注意します。
セキュリティ
- GCP へのアクセスは **gcloud の資格情報(Application Default Credentials など)**を介する。開発者個人の権限は IAM で最小権限に絞る
- クラスタ操作の範囲は kubeconfig のコンテキストと RBACに従う。本番クラスタへ無自覚にデプロイしないよう、接続先コンテキストの取り違えに注意する
- イメージの push 先レジストリ(Artifact Registry など)への権限は必要分のみ付与し、サービスアカウント鍵の不用意な配布を避ける
- ローカルにダウンロードされる依存ツールやサンプルは、信頼できる公式の入手元から導入する
- 機密情報はマニフェストへ直書きせず、Secret や Secret Manager を利用して管理する
本番クラスタへ接続したコンテキストのまま、開発中のコードを Cloud Code から直接デプロイしてしまうのは危険。 内側の開発ループはローカルや検証環境に向け、本番反映は Cloud Build / Cloud Deploy などの承認を伴う CI/CD 経由に統一します。
Well-Architected の観点
- 運用上の優秀性: コーディングからデプロイ・デバッグまでを IDE に統合し、skaffold 連携で内側の開発ループを短縮。サンプルやテンプレートで環境構成を標準化でき、オンボーディングと反復のスピードを高められる
試験で問われるポイント
- Cloud Code は **IDE 拡張機能(プラグイン)**であり、VS Code・JetBrains 系・Cloud Shell Editor で使える無償ツール
- 主目的は Kubernetes / Cloud Run 向けアプリの作成・デバッグ・デプロイ支援で、内部では skaffold を利用する
- 課金は拡張機能側ではなく、連携先の GCP リソース(GKE・Cloud Run・ビルドなど)に対して発生する
- AWS では Toolkit for VS Code に近い位置づけだが、コンテナの継続デプロイ・デバッグに重心がある
- 本番反映は Cloud Code 単体ではなく、Cloud Build / Cloud Deploy など CI/CD と役割分担するのが定石
関連サービス・比較
Cloud Code は IDE での内側ループを担い、本番への配信は Cloud Deploy(マネージドな継続的デリバリー)が担う、という棲み分けがよく取られます。
| 観点 | Cloud Code | Cloud Deploy |
|---|---|---|
| 位置づけ | IDE 拡張による開発支援 | マネージドな継続的デリバリー |
| 主な利用者 | 開発者(コーディング時) | リリース・運用担当 |
| 扱う範囲 | 作成・デバッグ・デプロイ補助 | 環境を段階的に昇格させる配信 |
| 実行場所 | ローカル IDE / Cloud Shell | GCP のマネージド基盤 |
| 内側か外側か | 内側の開発ループ | 外側のリリースパイプライン |
| 料金 | 拡張機能は無償 | サービス利用に応じて課金 |
ハンズオン / CLI例
Cloud Code は基本的に IDE 上で操作しますが、内部で使う skaffold を gcloud のコンポーネントとして導入・確認できます。
# 1. gcloud に含まれる skaffold コンポーネントを追加(Cloud Code が内部で利用)
gcloud components install skaffold
# 2. ログインし、対象プロジェクトを設定
gcloud auth login
gcloud config set project PROJECT_ID
# 3. GKE クラスタの接続情報を取得(kubeconfig に登録)
# これにより Cloud Code の Kubernetes Explorer から参照できる
gcloud container clusters get-credentials my-cluster \
--region=asia-northeast1
# 4. 接続先コンテキストを確認(本番への誤デプロイを防ぐ)
kubectl config current-context
# 5. アプリのデプロイ自体は IDE の Cloud Code から実行する
# (内部で skaffold によるビルド→push→デプロイが走る)
Google Cloud Service
Cloud Codeを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
開発者ツール
比較で見る軸
クラウド: Google Cloud / カテゴリ: 開発者ツール / 難易度: basic
導入後に効く点
Kubernetes や Cloud Run へのデプロイ・デバッグを skaffold と連携して IDE から直接行える。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- 開発者ツール
- 難易度
- basic
- 関連資格
- —
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「開発者ツール / operational」に近いか確認する。
- 強みである「VS Code・JetBrains 系 IDE・Cloud Shell Editor に入れて使う、GCP 開発支援の拡張機能(プラグイン)。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。