---
title: "Google Cloud Blockchain Node Engineの代替: Alchemyへの移行方法"
description: "Google Cloud Blockchain Node Engineは2026年12月15日に終了する。URLを変えるだけでAlchemyに移行でき、コードはそのまま、1つのキーで100以上のチェーンを使える。"
---

# Google Cloud Blockchain Node Engineの代替: Alchemyへの移行方法

<ImageBlock
  src="https://media.alchemy.com/blog/google-cloud-blockchain-node-engine-alternative-hero.png"
  alt="Google Cloud Blockchain Node EngineからAlchemyへの移行のタイトルカード"
  width={1920}
  height={900}
  priority
/>

Google Cloudは、Blockchain Node Engineとその共有サービスであるBlockchain RPCを2026年12月15日に終了する。Alchemyへの切り替えはURLの変更であり、書き直しではない。エンドポイントとAPIキーを置き換えれば、同じJSON-RPC呼び出しが同じデータを返す。

切り替えによって、自分たちが責任を負う範囲も変わる。Blockchain Node Engineが提供していたのは3つのチェーンのノードで、課金は時間単位だった。私たちが提供するのは100以上のチェーンで使える1つのAPIキーであり、プロビジョニングやアップグレードが必要なノードはない。このガイドでは、エンドポイントの取得方法、検索と置換をコーディングエージェントに任せる方法、Google Cloudの構成の各部分が何に置き換わるか、新しいエンドポイントが同一のデータを返すことを証明する方法、そしてコストの比較を取り上げる。

## 12月15日に何が変わるか

Googleの[Blockchain Node Engine終了の告知](https://docs.cloud.google.com/blockchain-node-engine/docs/release-notes)によると、2026年12月15日に、Googleは残っているすべてのBlockchain Node EngineノードとBlockchain RPCエンドポイントを削除し、それらへのリクエストはすべて失敗するようになる。それまでの間も、新しいノードやエンドポイントは作成できない。ノードの同期が遅れたり、トラフィックが増えたりした場合、対処は別のプロバイダー上で行うしかない。

Blockchain Node Engineは、Ethereum（メインネットに加え、Sepolia、Holesky、Goerliの各テストネット）、Polygon PoS、Solanaのノードを運用し、Blockchain RPCはEthereumに対応していた。私たちはこれらのチェーンをすべてサポートしているため、現在Google Cloudで動かしているワークロードには、それぞれ対応するエンドポイントがAlchemyにある。対応関係は後述のマッピングのセクションにまとめている。

移行の際に注意すべき課金上の点が1つある。Blockchain RPCエンドポイントはGoogleが自ら削除するが、Blockchain Node EngineノードはGoogle Cloudコンソールで自分で削除する必要があり、削除するまで課金が続く。

12月15日はURLが機能しなくなる日と捉え、本番トラフィックはその数週間前までに移し終えることを目指してほしい。

## Alchemyのエンドポイントはどう取得するか

[Alchemyダッシュボード](https://dashboard.alchemy.com/)でサインアップし、アプリを作成して、Google Cloudで使っていたネットワークを有効にする。ネットワークごとに個別のURLが発行され、1つのアプリのAPIキーはそのすべてで使える。

ターミナルから離れたくない場合は、[Alchemy CLI](/agents)を使えば、いくつかのコマンドでサインイン、アプリの作成、最初のテスト呼び出しまで済ませられる。

<CodeSnippet
  language="bash"
  code={`npm i -g @alchemy/cli@latest
alchemy auth                                  # browser sign-in
alchemy app create --name gcp-migration --networks ETH_MAINNET
alchemy app select <app-id>                   # use the new app's key
alchemy evm block latest -n eth-mainnet       # confirm the endpoint answers`}
/>

ブラウザのないリモートサーバーでは、代わりに`alchemy auth login --device-code`を使う。`alchemy app chains`は、PolygonやSolanaなど、アプリに追加できる他のすべてのネットワークの識別子を一覧表示する。

## コーディングエージェントに移行を任せられるか

任せられる。エンドポイントのURLが複数のサービスや設定ファイルに散らばっている場合は、これが最も速い方法だ。私たちは、コーディングエージェント（Claude Code、Cursor、Codexなど）が必要とするものを提供する3つのツールを用意している。

- [Alchemy CLI](/docs/alchemy-cli)はコマンドを実行する。アプリの作成、許可リストの設定、各ネットワークへのテスト呼び出しなどだ。
- [Alchemy Agent Skills](/docs/alchemy-agent-skills)は、私たちのエンドポイント形式、メソッド、CLIの使い方をエージェントに教える。`alchemy install skills`でインストールできる。
- [Alchemy MCP server](/docs/alchemy-mcp-server)は、100以上のネットワークにわたるチェーンデータへの直接アクセスをエージェントに与えるため、エージェントは作業しながら移行対象のネットワークを照会できる。`https://mcp.alchemy.com/mcp`でホストされており、Alchemyアカウントでサインインするので、APIキーを貼り付ける必要はない。`alchemy install mcp`で追加するか、Claude Codeでは次のように追加する。

<CodeSnippet
  language="bash"
  code={`claude mcp add alchemy --transport http https://mcp.alchemy.com/mcp`}
/>

Claude Codeでは、[Claude Code用のAlchemyプラグイン](/docs/alchemy-claude-plugin)を使えばSkillsとMCPサーバーを1ステップでインストールでき、[Claude CodeとAlchemyのセットアップ](/blog/setup-claude-code-with-alchemy)でその手順を解説している。

次に、リポジトリのルートで、次のようなプロンプトをエージェントに与える。このプロンプトでは、エージェントはまず必要な情報を確認し、ファイルに手を加える前に承認を待つ。

<CodeSnippet
  language="text"
  code={`I'm moving this project off Google Cloud Blockchain Node Engine and Blockchain RPC, which shut down on December 15, 2026. The new provider is Alchemy. Use the Alchemy CLI, Alchemy skills, and the Alchemy MCP server.
Before changing anything, ask me:
- which networks we run on, and whether any Google Cloud node was an archive node
- where our secrets live (env files, a secrets manager, CI variables)
- whether the new Alchemy app needs IP or origin allowlists
Then find every Google Cloud blockchain endpoint and every use of the Google API key (X-goog-api-key headers or ?key= parameters) across code, config, CI, Docker, and infrastructure files. Show me the list with file paths and wait.
After I approve, replace each endpoint with an environment variable that holds the Alchemy URL for that network, remove the Google key handling, and add placeholder entries to .env.example. Never commit a real API key.
Finally, run eth_chainId and eth_blockNumber against every migrated network with the Alchemy CLI and report the results.`}
/>

すべてのリポジトリを手作業で検索する代わりに、一覧と差分をレビューするだけで済む。手動で変更したい場合も、作業内容は同じだ。Googleのエンドポイントのホスト名とAPIキーを検索し、ネットワークごとにAlchemyのURLに置き換え、キーのヘッダーまたはクエリパラメータを削除する。私たちのキーはURLパスに含まれるからだ。CI変数、Terraform、スケジュールジョブなど、エンドポイントが潜んでいがちな場所も確認してほしい。

## Google Cloudの構成の各部分は何に置き換わるか

対応関係のほとんどは1対1で、いくつかの作業はまったく不要になる。

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 320, title: "Google Cloudの場合", dataType: "object" },
      { key: "2", width: 320, title: "Alchemyの場合", dataType: "object" },
    ],
    data: [
      {
        "1": {
          title: "<p>Blockchain RPCの共有エンドポイント（Ethereumのみ）</p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title:
            "<p>100以上のチェーンのいずれにも対応するRPC APIエンドポイント</p>",
          tooltip: "",
          icon: "",
        },
        id: 0,
      },
      {
        "1": {
          title: "<p>Blockchain Node Engineのフルノード</p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title:
            "<p>同じネットワークの標準エンドポイント（運用するノードは不要）</p>",
          tooltip: "",
          icon: "",
        },
        id: 1,
      },
      {
        "1": {
          title: "<p>Blockchain Node Engineのアーカイブノード</p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>同じ標準エンドポイント（履歴状態も提供）</p>",
          tooltip: "",
          icon: "",
        },
        id: 2,
      },
      {
        "1": {
          title: "<p>シングルテナント分離のための専用ノード</p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>Alchemy Dedicated Clusters</p>",
          tooltip: "",
          icon: "",
        },
        id: 3,
      },
      {
        "1": {
          title:
            "<p>ヘッダーまたはクエリパラメータで渡すGoogle Cloud APIキー</p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>URLパスに含まれるAPIキー</p>",
          tooltip: "",
          icon: "",
        },
        id: 4,
      },
      {
        "1": {
          title: "<p>APIキーの制限とVPC Service Controls</p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>アプリごとのIPおよびオリジンの許可リスト</p>",
          tooltip: "",
          icon: "",
        },
        id: 5,
      },
      {
        "1": {
          title: "<p>GoerliおよびHoleskyテストネット</p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>SepoliaとHoodi</p>", tooltip: "", icon: "" },
        id: 6,
      },
      {
        "1": {
          title: "<p>ハードフォークごとのノードのアップグレード</p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>私たちが対応</p>", tooltip: "", icon: "" },
        id: 7,
      },
    ],
  }}
/>

私たちの[RPC API](/rpc-api)は、共有エンドポイント、フルノード、アーカイブノードのケースをカバーする。シングルテナントの分離を目的にBlockchain Node Engineを選んでいた場合は、[Alchemy Dedicated Clusters](/dedicated-clusters)がワークロード専用に確保されたキャパシティを提供する。それが見合うのはどのような場合かは、[Node RPCとDedicated Clustersの選択](/overviews/dedicated-vs-shared-nodes)で解説している。許可リストはダッシュボードで設定するか、CLIから`alchemy app ip-allowlist`と`alchemy app origin-allowlist`で設定できる。

Blockchain Node Engineがサポートしていたすべてのネットワークのエンドポイントを、環境変数の形で示す。

<CodeSnippet
  language="bash"
  code={`# Ethereum
ETH_MAINNET_URL=https://eth-mainnet.g.alchemy.com/v2/<your-key>
ETH_SEPOLIA_URL=https://eth-sepolia.g.alchemy.com/v2/<your-key>
ETH_HOODI_URL=https://eth-hoodi.g.alchemy.com/v2/<your-key>
ETH_MAINNET_BEACON_URL=https://eth-mainnetbeacon.g.alchemy.com/v2/<your-key>
# Polygon PoS
POLYGON_MAINNET_URL=https://polygon-mainnet.g.alchemy.com/v2/<your-key>
POLYGON_AMOY_URL=https://polygon-amoy.g.alchemy.com/v2/<your-key>
# Solana
SOLANA_MAINNET_URL=https://solana-mainnet.g.alchemy.com/v2/<your-key>`}
/>

WebSocketを使う場合は、`https://`を`wss://`に置き換える。Beaconエンドポイントは、Ethereumノードでコンセンサスレイヤーを照会していたチーム向けだ。

ネットワークについては、いくつか確認しておくべき点がある。GoerliのトラフィックはSepoliaへ、HoleskyのトラフィックはHoodiへ移す（Holeskyも引き続き提供している）。Polygonで、アーカイブノードに対して特定のトレーサーを指定してdebugメソッドを呼び出していた場合は、そのトレーサーを[Debug API](/docs/reference/debug-api-quickstart)のドキュメントで確認してほしい。Solanaでは、標準のJSON-RPCメソッドが私たちのエンドポイントでもそのまま動作し、リアルタイムデータについては[Solana gRPCストリーミング](/solana-grpc)がポーリングに代わる。

## 新しいエンドポイントが同じデータを返すことをどう証明するか

本番トラフィックを移す前に、整合性チェックを実行する。以下のスクリプトは、両方のプロバイダーから同じファイナライズ済みブロックと同じ過去時点の残高を読み取り、結果を比較する。[viem](https://viem.sh/)を使っているが、JSON-RPCクライアントであれば何でも構わない。

<CodeSnippet
  language="typescript"
  code={`import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";
const { GCP_ETH_RPC_URL, GCP_API_KEY, ETH_MAINNET_URL, CHECK_ADDRESS } = process.env;
// Fail fast: viem's http() silently falls back to a public RPC when the URL is undefined.
if (!GCP_ETH_RPC_URL || !ETH_MAINNET_URL || !CHECK_ADDRESS) {
  throw new Error("Set GCP_ETH_RPC_URL, ETH_MAINNET_URL, and CHECK_ADDRESS first");
}
const address = CHECK_ADDRESS as \`0x\${string}\`;
const google = createPublicClient({
  chain: mainnet,
  transport: http(GCP_ETH_RPC_URL, {
    fetchOptions: { headers: { "X-goog-api-key": GCP_API_KEY ?? "" } },
  }),
});
const alchemy = createPublicClient({
  chain: mainnet,
  transport: http(ETH_MAINNET_URL),
});
async function main() {
  // 64 blocks back is past Ethereum finality, so both sides must agree.
  const head = await alchemy.getBlockNumber();
  const blockNumber = head - 64n;
  const [a, b] = await Promise.all([
    google.getBlock({ blockNumber }),
    alchemy.getBlock({ blockNumber }),
  ]);
  console.log(\`block \${blockNumber} hash match:\`, a.hash === b.hash);
  // Archive check. Skip this part if your Google Cloud node was a full node.
  const oldBlock = 15_000_000n;
  const [balA, balB] = await Promise.all([
    google.getBalance({ address, blockNumber: oldBlock }),
    alchemy.getBalance({ address, blockNumber: oldBlock }),
  ]);
  console.log(\`balance at block \${oldBlock} match:\`, balA === balB);
}
main();`}
/>

移行するネットワークごとに、アプリが実際に照会するアドレスを使って実行する。ファイナライズ済みのブロックでハッシュが一致しない場合は、何かの設定が誤っている。たいていはネットワークURLの間違いなので、先に進む前に修正してほしい。

チェックに合格したら、フィーチャーフラグや重み付けルーティングを使ってトラフィックを段階的に移し、12月まではGoogle Cloudのエンドポイントをフォールバックとして残しておく。[ダウンタイムなしでRPCプロバイダーを移行する方法](/blog/migrate-between-rpc-providers-zero-downtime)では、移行後も[バックアップのRPCエンドポイント](/overviews/alternative-rpc-endpoint)を維持する方法を含め、段階的な切り替えを詳しく解説している。トラフィックが完全に切り替わったら、課金を止めるためにGoogle CloudコンソールでBlockchain Node Engineノードを削除する。

## 切り替え後にスタックから何を取り除けるか

Blockchain Node Engineが提供していたのは素のノードだったため、JSON-RPCより上の層はすべて、チームが自ら書いて保守してきたコードだった。プロバイダーの切り替えは、その一部を廃止する良い機会だ。

- **トランザクション履歴のインデクサー**。ブロックやログをスキャンしてアドレスの履歴を再構築しているなら、[Transfers API](/docs/reference/transfers-api-quickstart)がその履歴を1回の呼び出しで返す。チェーンを自分でインデックスする必要はない。
- **入金検知のポーリングループ**。新しいブロックをポーリングして着金を検知するコードは、[Address Activity webhooks](/docs/reference/address-activity-webhook)に置き換えられる。Address Activity webhooksは、1つのwebhookあたり最大10万アドレスの送金イベントをプッシュする。
- **チェーンごとのプロビジョニング**。Blockchain Node Engineでは、Base、Arbitrum、Optimismを追加するという選択肢はそもそもなかった。Alchemyでは、同じアプリで同じキーのまま、ネットワークを有効にするだけだ。

同じキーは、トークン残高、価格、NFTデータを扱う私たちの[Data API](/docs/data)でも使える。そのため、今日移行するエンドポイントで、本来なら後から自前で構築することになる機能までカバーできる。

## コストはどう違うか

2つのプロダクトは課金方式が異なる。Blockchain Node Engineは、ノードがトラフィックを処理しているかアイドル状態かにかかわらず、ノード単位・時間単位で課金する。私たちは送信されたリクエストに対して課金し、その量はコンピュートユニット（CU）で計測される。`eth_blockNumber`のような軽い呼び出しは、重いトレースよりも少ないユニットで済む。

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 220, title: "", dataType: "object" },
      {
        key: "2",
        width: 260,
        title: "Google Cloud Blockchain Node Engine",
        dataType: "object",
      },
      { key: "3", width: 260, title: "Alchemy", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>課金モデル</p>", tooltip: "", icon: "" },
        "2": { title: "<p>ノード単位・時間単位</p>", tooltip: "", icon: "" },
        "3": {
          title: "<p>リクエスト単位（コンピュートユニットで計測）</p>",
          tooltip: "",
          icon: "",
        },
        id: 0,
      },
      {
        "1": {
          title: "<p>Ethereumフルノードのワークロード</p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>1時間あたり$0.69、月額約$504</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title:
            "<p>Freeプランは毎月3,000万CU、Pay As You Goは100万CUあたり$0.525</p>",
          tooltip: "",
          icon: "",
        },
        id: 1,
      },
      {
        "1": {
          title: "<p>Ethereumアーカイブのワークロード</p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>1時間あたり$2.74、月額約$2,000</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>同じエンドポイント、同じ料金</p>",
          tooltip: "",
          icon: "",
        },
        id: 2,
      },
      {
        "1": { title: "<p>アイドル時間</p>", tooltip: "", icon: "" },
        "2": { title: "<p>課金される</p>", tooltip: "", icon: "" },
        "3": { title: "<p>課金されない</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>チェーンの追加</p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>ノードを追加（そのチェーンがサポートされている場合）</p>",
          tooltip: "",
          icon: "",
        },
        "3": { title: "<p>同じキー、同じ料金</p>", tooltip: "", icon: "" },
        id: 4,
      },
    ],
  }}
/>

規模感で言えば、Google CloudでEthereumアーカイブノード1台にかかる月額約$2,000で、私たちのPay As You Goプランなら約38億CUを利用でき、アカウント上のすべてのチェーンで使える。冗長性のために2台目のノードを運用していたチームは、その時間単価を2倍支払っていた。私たちのエンドポイントはURLの背後にあるノード群によって提供されるため、冗長性が別の費用項目になることはない。大量のトラフィックを扱うチームは、Enterpriseプランや確約スループットについて営業チームに相談できる。

## 移行の計画にサポートが必要か

<ImageBlock
  src="https://media.alchemy.com/blog/google-cloud-blockchain-node-engine-alternative-migration-support.jpeg"
  alt="Google CloudによるBlockchain Node Engineの終了と、Alchemyによる移行サポートを伝える告知画像"
  width={3200}
  height={1800}
/>

[Alchemyの無料アカウントを作成](https://dashboard.alchemy.com/)すれば、契約も同期待ちのノードもなしに、今日から動作するエンドポイントを手に入れられる。現在の構成に対する整合性チェックを今週中に実行するには、それで十分だ。

本番ワークロード、マルチチェーンのデプロイメント、あるいは専用ノードに依存していたチームは、[営業チームに相談してほしい](/contact-sales)。Blockchain Node Engineの構成のマッピング、適切なプランの選定、そして12月15日より十分前の切り替えのスケジュール策定を支援する。

## よくある質問

### Google Cloud Blockchain Node Engineはいつ終了するか

Google Cloud Blockchain Node EngineとBlockchain RPCは2026年12月15日に終了する。その日にGoogleは残っているノードとエンドポイントを削除し、それらを呼び出しているアプリケーションはすべて失敗するため、数週間前には切り替えを済ませる計画を立てておくべきだ。

### Google Cloud Blockchain Node Engineの良い代替は何か

Alchemyはそのまま置き換えられる代替だ。Blockchain Node Engineが提供していたすべてのネットワーク（Ethereum、Polygon、Solana）を同じ標準JSON-RPCメソッドでサポートし、さらに100以上の他のチェーンを1つのAPIキーで利用できる。シングルテナントのキャパシティを必要とするチームは、専用ノードの代わりにAlchemy Dedicated Clustersを利用できる。

### Blockchain Node Engineから移行するにはアプリケーションを書き直す必要があるか

必要ない。Alchemyは標準のJSON-RPCを使うため、ethers、viem、`web3.py`などのクライアントはそのまま動作する。ネットワークごとにエンドポイントURLを変更し、Google Cloud APIキーのヘッダーまたはクエリパラメータを削除すればよい。AlchemyのAPIキーはURLの一部だからだ。

### AlchemyではBlockchain Node Engineの専用ノードを何に置き換えるか

ほとんどのワークロードでは、標準のAlchemy RPCエンドポイントがフルノードとアーカイブノードの両方を置き換え、運用やアップグレードが必要なノードはない。自分たちのワークロード専用に確保されたキャパシティを必要とするチームは、Alchemy Dedicated Clustersに移行できる。Dedicated Clustersは、1つのエンドポイントの背後でシングルテナントのインフラストラクチャを提供する。

### Alchemyに移行した後はどのチェーンを使えるか

Blockchain Node Engineがサポートしていたすべてのネットワークが利用でき、Ethereumメインネット、Sepolia、Hoodi、Polygonメインネット、Amoy、Solanaが含まれる。それ以外にも、AlchemyはBase、Arbitrum、Optimism、BNB Chainを含む100以上のチェーンをサポートしており、すべて同じAPIキーで利用できる。

### AIコーディングエージェントにエンドポイントを移行させることはできるか

できる。Alchemy CLIをインストールし、`alchemy install skills`を実行し、Alchemy MCP serverを追加したうえで、Claude CodeやCursorなどのエージェントに、リポジトリ内のすべてのGoogle CloudエンドポイントとAPIキーを見つけ、置き換え案を提示し、承認を待つよう依頼する。その後、エージェントはCLIを使って新しい各エンドポイントを検証できる。

### AlchemyはGoogle Cloud Blockchain Node Engineより安いか

ほとんどのワークロードでは安い。Blockchain Node Engineはノード単位・時間単位で課金し、アイドル状態であってもEthereumフルノードで月額約$504、アーカイブノードで約$2,000かかる。Alchemyはリクエスト単位で課金する。Freeプランには毎月3,000万コンピュートユニットが含まれ、Pay As You Goは100万コンピュートユニットあたり$0.525だ。
