1. 概要
Antigravity CLI は、ローカル環境と仮想環境の両方で使用できます。Antigravity は、Gemini の機能をターミナルから直接利用できるようにします。ネットワークの観点から見ると、Antigravity CLI を使用すると、一般公開されている API IP アドレスを介して Gemini API が呼び出されます。
Google Compute Engine マシンで Antigravity CLI を使用し、API にプライベートに接続する場合はどうなるでしょうか?この Codelab では、指定した内部 IP アドレスにトラフィックを転送するように、Google API への Private Service Connect エンドポイントを構成する方法について説明します。
構成は、Terraform、gcloud、コンソールの組み合わせになります。
このラボでは、次のタスクの実行方法について学びます。
- VM インスタンスと Cloud NAT を設定する
- Antigravity CLI をインストールして認証する
- Googleapis に接続するように Private Service Connect エンドポイントを構成する
- *.googleapis への接続パスを確認する
- DNS エントリを手動で構成する
このラボでは、次のパターンを作成します。
図 1.

2. Google Cloud サービスの設定
セルフペース型の環境設定
- Google Cloud コンソール にログインして、プロジェクトを新規作成するか、既存のプロジェクトを再利用します。Gmail アカウントも Google Workspace アカウントもまだお持ちでない場合は、アカウントを作成してください。



- プロジェクト名は、このプロジェクトの参加者に表示される名称です。Google API では使用されない文字列です。いつでも更新できます。
- プロジェクト ID は、すべての Google Cloud プロジェクトにおいて一意でなければならず、不変です(設定後は変更できません)。Cloud コンソールでは一意の文字列が自動生成されます。通常は、この内容を意識する必要はありません。ほとんどの Codelab では、プロジェクト ID(通常は
PROJECT_IDと識別されます)を参照する必要があります。生成された ID が好みではない場合は、ランダムに別の ID を生成できます。または、ご自身で試して、利用可能かどうかを確認することもできます。このステップ以降は変更できず、プロジェクトを通して同じ ID になります。 - なお、3 つ目の値として、一部の API が使用するプロジェクト番号があります。これら 3 つの値について詳しくは、こちらのドキュメントをご覧ください。
- 次に、Cloud のリソースや API を使用するために、Cloud コンソールで課金を有効にする必要があります。この Codelab の操作をすべて行って、費用が生じたとしても、少額です。このチュートリアルの終了後に請求が発生しないようにリソースをシャットダウンするには、作成したリソースを削除するか、プロジェクトを削除します。Google Cloud の新規ユーザーは、300 米ドル分の無料トライアル プログラムをご利用いただけます。
Cloud Shell を起動する
Google Cloud はノートパソコンからリモートで操作できますが、この Codelab では、Google Cloud Shell(Cloud 上で動作するコマンドライン環境)を使用します。
Google Cloud コンソールで、右上のツールバーにある Cloud Shell アイコンをクリックします。

プロビジョニングと環境への接続にはそれほど時間はかかりません。完了すると、次のように表示されます。

この仮想マシンには、必要な開発ツールがすべて用意されています。永続的なホーム ディレクトリが 5 GB 用意されており、Google Cloud で稼働します。そのため、ネットワークのパフォーマンスと認証機能が大幅に向上しています。この Codelab での作業はすべて、ブラウザ内から実行できます。インストールは不要です。
3. Terraform を使用して環境を設定する
ファイアウォール ルールとサブネットを含むカスタム VPC を作成します。クラウド コンソールを開き、使用するプロジェクトを選択します。
- コンソールの右上の Cloud Shell を開き、Cloud Shell に正しいプロジェクト ID が表示されていることを確認し、アクセスを許可するプロンプトが表示されたら確認します。

- terraform-build という名前のフォルダを作成し、そのフォルダに移動します。
mkdir terraform-build && cd terraform-build
- main.tf ファイルと variable.tf ファイルを作成します。
touch main.tf variable.tf
- Cloud Shell エディタ ビューに切り替えます。[エディタ] を選択し、インターフェースを読み込めるように、必要なプロンプトをすべて許可します。
- 読み込まれたら、[File] > [Open Folder] に移動し、/home/your-user-name/terraform-build に移動して [OK] を選択し、エディタでフォルダを開きます。

- variable.tf ファイルを選択し、次の内容を追加します。
your-project-id-hereというテキストを、実際のプロジェクト ID に置き換えます(引用符で囲みます)。
variable "project_id" {
type = string
default = "your-project-id-here"
}
variable "network_id" {
type = string
default = "antigravity-vpc-net"
}
- 次に、main.tf ファイルを開きます。以下で説明するように、さまざまなアクションを実行する Terraform コードを追加します。
API を有効にする |
|
python-net という VPC を作成する |
|
サブネットを追加する |
|
2 つのファイアウォール ルールを追加する |
|
- 次の内容をコピーして main.tf ファイルに貼り付けます。
resource "google_project_service" "default" {
for_each = toset([
"dns.googleapis.com",
"aiplatform.googleapis.com",
"servicedirectory.googleapis.com"
])
service = each.value
disable_on_destroy = false
}
resource "google_compute_network" "default" {
project = var.project_id
name = var.network_id
auto_create_subnetworks = false
mtu = 1460
routing_mode = "GLOBAL"
}
resource "google_compute_subnetwork" "default" {
name = "vm1-subnet"
ip_cidr_range = "192.168.100.0/24"
region = "us-east1"
stack_type = "IPV4_ONLY"
network = google_compute_network.default.id
}
resource "google_compute_firewall" "allow_icmp" {
name = "allow-icmp-${google_compute_network.default.name}"
network = google_compute_network.default.id
project = var.project_id
allow {
protocol = "icmp"
}
source_ranges = ["0.0.0.0/0"]
target_tags = ["allow-icmp"]
}
resource "google_compute_firewall" "allow_ssh" {
name = "allow-ssh-${google_compute_network.default.name}"
network = google_compute_network.default.id
project = var.project_id
allow {
protocol = "tcp"
ports = ["22"]
}
source_ranges = ["0.0.0.0/0"]
target_tags = ["allow-ssh"]
}
- Cloud Shell ターミナルに戻り、terraform-build ディレクトリ
cd terraform-buildにいることを確認して、次のコマンドを実行します。
terraform init
作業ディレクトリを初期化します。この手順では、指定された構成に必要なプロバイダがダウンロードされます。
terraform plan
実行プランを生成し、インフラストラクチャのデプロイに Terraform が実行するアクションを表示します。
- リソースを作成するには、
terraform applyコマンドを実行し、yesと入力して実行します。
4. タスク 2. Terraform を使用して NAT ゲートウェイと VM を作成する
インターネットへのアウトバウンド外部アクセスを許可する必要があるため、Cloud NAT ゲートウェイを作成して接続します。
- Cloud Shell を開き、terraform-build フォルダに移動して、次のファイル(合計 3 つのファイル)を作成します。これらは後で編集します。
touch nat-vm.tf psc.tf dns.tf
- Cloud Shell エディタ ビューに切り替えて、nat-vm.tf ファイルを選択し、次の Terraform コードを追加します。これにより、NAT ゲートウェイと 2 つの VM が作成されます。
Terraform nat-vm.tf
resource "google_compute_router" "default" {
name = "outbound-nat"
region = "us-east1"
network = google_compute_network.default.id
bgp {
asn = 64514
}
}
resource "google_compute_router_nat" "default" {
name = "outbound-gw"
router = google_compute_router.default.name
region = google_compute_router.default.region
nat_ip_allocate_option = "AUTO_ONLY"
source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"
log_config {
enable = true
filter = "ERRORS_ONLY"
}
}
resource "google_compute_instance" "vm1" {
name = "cli-vm"
zone = "us-east1-b"
machine_type = "n2-standard-2"
boot_disk {
initialize_params {
image = "debian-cloud/debian-12"
}
}
network_interface {
subnetwork = google_compute_subnetwork.default.id
stack_type = "IPV4_ONLY"
}
tags = ["allow-ssh", "allow-icmp"]
metadata_startup_script = <<-EOF
sudo apt-get update
EOF
}
resource "google_compute_instance" "vm2" {
name = "monitor-vm"
zone = "us-east1-b"
machine_type = "n2-standard-2"
boot_disk {
initialize_params {
image = "debian-cloud/debian-12"
}
}
network_interface {
subnetwork = google_compute_subnetwork.default.id
stack_type = "IPV4_ONLY"
}
tags = ["allow-ssh", "allow-icmp"]
metadata_startup_script = <<-EOF
sudo apt-get update
sudo apt-get install python3 python3-dev python3-venv -y
sudo apt-get install tcpdump dnsutils -y
EOF
}
- Cloud Shell ターミナルに切り替え、terraform-build フォルダにいることを確認して
terraform planを実行します。これにより、4 つのアイテムが追加されることがわかります。次に、terraform applyを実行してyesと入力し、NAT ゲートウェイと 2 つの VM を作成します。
5. タスク 3. CLI VM を構成してテストする
- [VM インスタンス] に移動します。cli-vm で始まる VM を選択します。[SSH] を選択します。
- SSH 接続が確立されたら、VM にアクセスできます。Gemini CLI を実行するときに使用するフォルダを作成しましょう。
mkdir antigravitycli && cd antigravitycli
- Antigravity CLI をインストールするには、次のコマンドを使用します。
curl -fsSL https://antigravity.google/cli/install.sh | bash && source ~/.bashrc
バージョンを確認する
agy --version
- ログインして認証し、後でテストを行います。
agy
- オプション 1
Google OAuthを選択します。それでは、認証を行いましょう。
- 次に、https:// で始まる URL をコピーし、ラボのブラウザ ウィンドウで新しいタブを開いて、URL を貼り付けます。プロンプトを承認します。

- 次のメッセージが表示されたら、[クリップボードにコピー] を選択し、VM cli-vm セッションに戻ります。[Enter authorization code:] にコピーした認証コードを貼り付けて、Enter キーを押して認証します。

- vm cli-vm セッションに戻り、[認証コードを入力してください:] にコピーしたコードを貼り付けて Enter キーを押し、認証します。

- 契約をカスタマイズして同意し、ホーム ディレクトリに移動できる画面が表示されます。該当するオプションを選択して完了します。


- 完了すると、Antigravity CLI を使用できるようになります。

モニター VM を介して Gemini へのトラフィック ルートをモニタリングする
- [VM インスタンス] に移動します。monitor-vm で始まる VM を選択します。[SSH] を選択します。
- monitor-vm に SSH 接続すると、アクセスできるようになります
digコマンドを使用して、Gemini API への接続パスをテストしましょう。us-east1-aiplatform.googleapis.com を使用します。
dig us-east1-aiplatform.googleapis.com
次のような結果が表示されます(アドレスは異なります)。API はパブリック API であるため、パスはパブリック IP アドレス経由になります。
コピー不可
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> us-east1-aiplatform.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58905 ;; flags: qr rd ra; QUERY: 1, ANSWER: 14, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;us-east1-aiplatform.googleapis.com. IN A ;; ANSWER SECTION: us-east1-aiplatform.googleapis.com. 300 IN A 216.239.38.223 us-east1-aiplatform.googleapis.com. 300 IN A 216.239.34.223 us-east1-aiplatform.googleapis.com. 300 IN A 216.239.36.223 us-east1-aiplatform.googleapis.com. 300 IN A 216.239.32.223
- 次に、
pingテストを実行して、Gemini API に接続できるかどうかを確認します。このコマンドは us-east1-aiplatform.googleapis.com に 4 回の ping を使用するため、API のパブリック アドレスからレスポンスが返されます。
ping -c 4 us-east1-aiplatform.googleapis.com
- この VM のテストは後で行います。SSH セッションを閉じて、続行しましょう。
6. タスク 4. Terraform を使用して googleapis への PSC エンドポイントを作成する
Vertex API エンドポイントへのプライベート接続を有効にするには、Google API 用の Private Service Connect エンドポイントを作成します。これにより、割り当てたプライベート IP アドレスを使用して、必要な Google API(この場合は Vertex)にトラフィックを転送できます。
- Cloud Shell がまだ開いていない場合は、エディタ ビューで開きます。次のものを作成します。
- PSC エンドポイント 10.10.100.250 の IP を作成します(
resource "google_compute_global_address" "default") - Google API への PSC エンドポイントを作成する(
resource "google_compute_global_forwarding_rule" "default")
terraform-build フォルダにある psc.tf ファイルを開きます。ファイルに次のコードを追加します。
Terraform psc.tf
resource "google_compute_global_address" "default" {
name = "gemini-ip"
purpose = "PRIVATE_SERVICE_CONNECT"
network = google_compute_network.default.id
address_type = "INTERNAL"
address = "10.10.100.250"
}
resource "google_compute_global_forwarding_rule" "default" {
name = "pscgemini"
target = "all-apis"
network = google_compute_network.default.id
ip_address = google_compute_global_address.default.id
load_balancing_scheme = ""
service_directory_registrations {
namespace = "googleapis"
service_directory_region = "us-east1"
}
}
- Cloud Shell ターミナルに切り替え、
terraform-buildフォルダにいることを確認します。次にterraform initを実行します。次にterraform planを実行します。これにより、2 つのアイテムが追加されることがわかります。
次にterraform applyを実行し、yesと入力して IP と PSC Google API エンドポイントを作成します。 - エンドポイントが存在することを確認する
gcloud compute addresses list --filter="name=( 'gemini-ip' ...)"
gcloud compute forwarding-rules describe pscgemini --global
7. タスク 5. Terraform を使用して googleapis への手動 DNS エントリを作成する
プライベート DNS を使用して、PSC エンドポイントを指す手動 DNS エントリを作成できます。これは、割り当てたすべてのネットワークに影響します。
- [ネットワーク サービス] に移動して、[Cloud DNS] を選択します。
- ゾーンには、Google API 用の Private Service Connect 用に自動的に作成されたゾーンが表示されます。ゾーンタイプは Service Directory です。これは、**SERVICE-ENDPOINT.p.googleapis.com の形式で PSC エンドポイントに接続するために使用できます。例:
aiplatform-pscgemini.p.googleapis.com - この例では、限定公開 DNS エントリを手動で作成します。構成は次のようになります。
- 「googleapis.com」の「googleapis-private」という名前のプライベート DNS ゾーンを作成し、「antigravity-vpc-net」ネットワークに制限します。
- 「googleapis.com」を IP アドレス「10.10.100.250」にマッピングする A レコードを追加します。
- 「googleapis.com」のすべてのサブドメイン(www.googleapis.com など)を「googleapis.com」にリダイレクトする CNAME レコードを追加します。
- Cloud Shell がまだ開いていない場合は、エディタ ビューで開きます。terraform-build フォルダにある dns.tf ファイルを開きます。ファイルに次のコードを追加します。
Terraform dns.tf
resource "google_dns_managed_zone" "private_zone" {
name = "googleapis-private"
dns_name = "googleapis.com."
visibility = "private"
project = var.project_id
private_visibility_config {
networks {
network_url = google_compute_network.default.id
}
}
}
resource "google_dns_record_set" "a_record" {
name = "googleapis.com."
type = "A"
ttl = 300
managed_zone = google_dns_managed_zone.private_zone.name
project = var.project_id
rrdatas = ["10.10.100.250"]
}
resource "google_dns_record_set" "cname_record" {
name = "*.googleapis.com."
type = "CNAME"
ttl = 300
managed_zone = google_dns_managed_zone.private_zone.name
project = var.project_id
rrdatas = ["googleapis.com."]
}
- Cloud Shell ターミナルに切り替え、
terraform-buildフォルダにいることを確認します。次にterraform planを実行します。追加される項目が表示されます。
次にterraform applyを実行し、yesと入力してプライベート DNS エントリを作成します。 - 次のように、A レコードと CNAME が設定されていることを確認します。

- 次に、monitor-vm でこれらの変更による接続を確認します。
8. タスク 7. IP アドレスを使用してエンドポイントの接続を確認する
プライベート エンドポイントを使用して Gemini に接続しましょう。
- VM インスタンス monitor-vm に移動します。SSH を選択して VM に SSH 接続する
pingコマンドを使用して、us-east1-aiplatform.googleapis.com への接続パスを確認します。これにより、プライベート DNS の googleapis の A レコードにある IP アドレスに ping が送信されます。この IP は PSC エンドポイントであるため、ping は失敗します。
ping -c 2 us-east1-aiplatform.googleapis.com
digコマンドを使用して、us-east1-aiplatform.googleapis.com への接続パスを確認します。これは、PSC エンドポイントの IP アドレス(10.10.100.250)である必要があります。
dig us-east1-aiplatform.googleapis.com

- 完了したら、monitor-vm SSH セッションを閉じることができます。
- VM インスタンス cli-vm に移動します。SSH を選択して VM に SSH 接続する
- これで、cli-vm で TCP ダンプを実行できるようになりました。同じ VM に対して 2 つの SSH セッションを開く必要があります。1 つのセッションで tcpdump コマンドを実行し、もう 1 つのセッションで Gemini CLI を使用します。
- 次のコマンドを入力して、tcpdump で接続を確認します。
sudo tcpdump -i any port 53 -n or host us-east1-aiplatform.googleapis.com
- cli-vm の次のセッションに SSH 接続します。
- antigravitycli フォルダ
cd antigravitycliに移動します。 agyと入力して Antigravity CLI を有効にします。- 次の質問をします。
what color is the sky?。Gemini API への呼び出しが生成されます。

- Enter キーを押して実行し、結果を確認します。
- cli-vm の最初のセッションに戻ります。tcpdump の結果が表示されます。VM の送受信と IP アドレスが PSC エンドポイントの IP アドレスを使用して gemini API に接続していることがわかります。

VM インスタンスへのすべての SSH セッションを閉じる
9. クリーンアップ
- Cloud Shell に移動し、terraform-build ディレクトリ
cd terraform-buildにいることを確認して、次のコマンドterraform destroyを実行し、yesと入力します。Terraform でプロジェクトに作成したすべてのリソースが削除されます。
10. 完了
おめでとうございます。公開 API アドレスと、Google API 用の Private Service Connect エンドポイントをプライベートに使用して、Antigravity CLI に正常に接続できました。この機能により、非公開 API 接続を(Interconnect、Cross-Cloud Interconnect、VPC を介して接続されている)オンプレミス環境や他のクラウド環境に拡張できます。
次のステップと詳細情報
詳細については、Antigravity CLI のドキュメントをご覧ください。
次のラボを受講する
Google Cloud でクエストを続けるか、その他の Google Cloud ラボをご確認ください。