Compute Engine API マルチ バージョニングの概要: 本番環境に影響を与えない予測可能な進化

Michael Murstein
Software Engineer
※この投稿は米国時間 2026 年 11 月 5 日に、Google Cloud blog に投稿されたものの抄訳です。
本番環境の安定性を損なうことなく、インフラストラクチャをモダナイズしたいとお考えですか?Compute Engine の API マルチ バージョニングが一般提供となり、まさにそれを実現できるようになりました。日付ベースの API バージョンにより、Compute Engine は /v1 API の堅牢な安定性を維持しながら、最新の API セマンティクス、強化されたレジリエンスの初期設定、改善されたデベロッパー エクスペリエンスを定期的に提供できるようになりました。
10 年以上にわたり、Google Compute Engine /v1 API は、数百万台の仮想マシン、Google Kubernetes Engine(GKE)クラスタ、大規模な AI インフラストラクチャの基盤となるコントロール プレーンとして機能してきました。Google Cloud で構築を行うプラットフォーム チームやデベロッパーにとって、この単一の /v1 エンドポイントは、一度連携システムを構築すれば、その後何年も確実に動作し続けるという、絶大な安心感を提供してきました。
しかし、クラウド アーキテクチャの規模が拡大し高度化するにつれて、インフラストラクチャ チームは大きなジレンマに直面するようになっています。まず、ミッション クリティカルな本番環境ワークロードでは、API の絶対的な安定性と厳格な後方互換性が求められます。その一方で、より安全なセキュリティの初期設定、強化されたリージョンのレジリエンス、機械で読み取り可能なエラーモデル、宣言型ツールと相性の良い最新 API などへの迅速なアクセスも求められています。しかし、こうした改善を既存の環境に直接導入すると、既存の自動化が機能しなくなるリスクがあります。新しいバージョニング モデルでは、本番環境のワークロードに手を加えることなく、独自のスケジュールで最新のセマンティクスを柔軟に導入できるため、自動化が正常に機能しなくなる事態を回避できます。
Compute Engine の日付ベースの API バージョン
これまで、Compute Engine はチャネルベースのバージョニング(CBV)を採用し、/v1(一般提供)、/beta、/alpha の 3 つの長期チャネルに依存していました。/v1 は、世界中のすべてのお客様が共有する単一の変更可能な本番環境のインターフェースであったため、動作の改善(直感的でないデフォルト設定の変更やエラー形式の最新化など)であっても、既存スクリプトが動かなくなるリスクや、複数年にわたる移行を強いるリスクを伴っていました。
Google の AIP-185 に準拠したインターフェース ベースのバージョニング(IBV)により、Compute Engine では /v1 に加え、変更不可の日付ベースの API スナップショットが導入されます。
-
安定版(YYYY-MM-DD): 予測可能な四半期ペース(
2026-09-01から開始)でリリースされます。各安定版は、一般提供されているすべての Compute Engine 機能とデフォルトの動作を、特定の時点で固定した API 仕様です。安定版は、公開後に互換性を破る変更が加えられることはありません。現時点でサポート終了日は設定されていません。 -
プレビュー版(YYYY-MM-DD-preview): 迅速なリリース サイクル(
2026-10-01-previewなど)でリリースされるプレビュー版は、親となる安定版から分岐したもので、デベロッパーは今後の機能や API 設計に早期アクセスできます。検証やフィードバックを行える有効期間はあらかじめ 1 年間と決められています。 -
継続的な /v1 のサポート: 既存の
/v1API は引き続き完全にサポートされ、日付ベースのバージョンが指定されていない場合はデフォルトとして機能します。既存のアプリケーション、スクリプト、連携システムは、変更を加えることなくそのまま動作します。
ビルダーにとっての主なメリット
1. 安定性とお客様によるアップグレードの管理
従来の単一バージョンの API では、デフォルトの動作を変更すると、プラットフォームの機能進化をとるか、お客様のシステムの安定性をとるかというトレードオフが生じます。しかし、日付ベースのマルチバージョン管理では、お客様自身がアップグレードのタイミングを以下のように完全に制御できます。
-
既知の仕様に固定: REST を直接呼び出すユーザーと SDK ユーザーは、リクエストとレスポンス スキーマが完全に固定されていることを前提に、特定のバージョン識別子(
2026-09-01など)をロックできます。 -
スケジュールに合わせたアップグレード: 四半期ごとに新しい安定版がリリースされ、デフォルト設定やリソース スキーマが更新された場合でも、チームはリリースノートを確認し、バージョン文字列を 1 か所変更してステージング環境でテストしたうえで、独自のペースで本番環境にロールアウトできます。
-
一貫したリソース URI: 日付ベースのバージョンでは、引き続き
/compute/v1/ベース URL パスが使用されます。ターゲット バージョンは、X-Goog-Api-VersionHTTP ヘッダーまたは$apiVersionクエリ パラメータで指定します。つまり、どのようなツールやサービスからアクセスしても、リソースのselfLinkURI は変わりません。
2. より安全な初期設定、強化されたレジリエンス、最新の API 標準
動作の変更を日付ベースの新しいバージョンに切り離すことで、Compute Engine はクラウド アプリケーションのレジリエンス、セキュリティ、自動化のしやすさを向上させる以下の改善を実現しています。
-
デフォルトでレジリエンスのあるグローバル クエリ: 従来の
/v1では、すべてのゾーンとリージョンを対象にAggregatedListを呼び出すと、returnPartialSuccessがデフォルトでfalseに設定されていました。つまり、呼び出し元が明示的にオプトインしていない場合、単一ゾーンで発生した一時的な問題によってグローバル リスト リクエストが失敗することがありました。新しい日付ベースのバージョンでは、一部のデータのみの取得がデフォルトで有効になっているため、局所的なメンテナンスや障害が発生しても、グローバル フリート クエリはレジリエンスを維持できます。 -
対処可能で機械読み取り可能なエラー(AIP-193): 日付ベースのバージョンでは、構造化された
reason、domain、コンテキストmetadata(無効なバージョン識別子がリクエストされた場合にsupported_versionsのリストを返すなど)を含む標準化されたgoogle.rpc.ErrorInfoペイロードが採用され、エラー文字列の脆弱な正規表現解析が不要になります。 -
セキュリティの強化と最小権限のハイジーン向上: 新しい API バージョンでは、
/v1で実行されている従来の自動化に影響を与えることなく、Compute Engine において過度に広範だった従来の IAM 権限チェックを強化し、より安全なデフォルト構成を導入できるようになります。 -
よりクリーンで宣言型ツールと相性の良い API 設計: マルチ バージョニングにより、10 年前の複雑なリソース スキーマを最新の Google API 改善提案(AIP)へと進化させる明確な移行パスが提供されます。
3. クライアント ライブラリ、gcloud、Terraform にわたるシームレスな導入
REST API を直接呼び出す場合でも、上位レベルのツールでインフラストラクチャを管理する場合でも、Compute Engine API のマルチ バージョニングは、スムーズに動作するように設計されています。
使ってみる
Compute Engine API のマルチ バージョニングは、現在すべての Google Cloud リージョンで利用可能です。最初の安定版は 2026-09-01 で、2026-10-01-preview はプレビュー テストに利用できます。
日付ベースのバージョンについて以下のリソースで確認し、ワークフローへの導入をご検討ください。
-
ドキュメントを確認する:
-
Compute Engine REST API のリファレンス(バージョン セレクタを使用して
2026-09-01と2026-10-01-previewのスキーマを確認) -
gcloud preview compute を試す:
gcloud components updateを実行し、新しいgcloud preview computeインターフェースを使用して、今後のプレビュー機能をテストします。
- ソフトウェア エンジニア、Michael Murstein



