---
title: "RPCとは？離れたプログラムを呼び出す仕組み【基本情報技術者試験】"
description: "RPCを「ネットワーク越しに別のコンピュータ上のプログラムや手続きを呼び出す仕組み」として整理し、DNS、DHCP、NATとの違いとFE試験で選択肢を切る判断基準を解説します。"
last_modified_at: "2026-07-25"
canonical_url: "https://stemtazoo.github.io/fe/rpc/"
section: "fe"
---

## まず結論

RPCとは、**ネットワーク越しに、別のコンピュータ上のプログラムや手続きを呼び出す仕組み**です。

RPCは、Remote Procedure Call の略で、日本語では **遠隔手続呼出し** と説明されます。

基本情報技術者試験では、RPCは **サーバのIPアドレスを意識せず、プログラム名や手続き名で処理を呼び出す** という説明で判断しやすいです。

## 直感的な説明

RPCは、**離れた場所にいる人へ作業をお願いする内線電話** のようなものです。

自分のPCだけではできない処理を、別のサーバにお願いしたいとします。

普通に考えると、通信先、データ形式、送受信処理などを細かく意識する必要があります。

RPCを使うと、利用者やプログラムから見ると、まるで手元の関数を呼び出すように、遠くの処理を呼び出せます。

```text
手元のプログラム
↓ 呼び出し
別のサーバ上の処理
↓ 結果を返す
手元のプログラム
```

つまり、RPCは **遠くの処理を、近くにある処理のように呼び出す仕組み** です。

## 定義・仕組み

RPCは、ネットワーク上の別のコンピュータにあるプログラムや手続きを、呼び出し元のプログラムから利用できるようにする仕組みです。

FE試験では、細かい実装方式よりも、次の対応を押さえると十分です。

| 用語 | RPCでの意味 |
|---|---|
| Remote | 遠隔にある |
| Procedure | 手続き・処理 |
| Call | 呼び出す |
| RPC | 遠隔の手続きや処理を呼び出す仕組み |
| 呼び出し元 | 処理を依頼する側 |
| 呼び出し先 | 実際に処理を実行する側 |

例えば、手元のプログラムが、別サーバ上の計算処理を呼び出す場合を考えます。

1. 手元のプログラムが処理を呼び出す
2. ネットワーク経由でサーバに要求が送られる
3. サーバ側で処理が実行される
4. 処理結果が手元のプログラムに返る

呼び出し元から見ると、遠隔の処理でも、通常の関数や手続きに近い感覚で利用できます。

このテーマは、基本情報技術者試験の「ネットワーク」や「分散処理」と関係する内容です。公式の出題範囲やシラバスは、[IPA：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html) から確認できます。

## 科目Aでどう出る？

科目Aでは、RPCはDNS、DHCP、NATなどと並べて出題されやすいです。

判断するときは、**遠隔のプログラムや手続きを呼び出しているか** を見ます。

| キーワード | 判断 |
|---|---|
| 遠隔の手続きを呼び出す | RPC |
| サーバ上のプログラムを呼び出す | RPC |
| プログラム名を指定して呼び出す | RPC |
| ドメイン名とIPアドレスを対応付ける | DNS |
| IPアドレスを自動で割り当てる | DHCP |
| プライベートIPをグローバルIPに変換する | NAT |

例えば、次のような説明はRPCです。

```text
サーバにあるプログラムを，サーバのIPアドレスを意識することなく，
プログラム名の指定だけで呼び出すようにする。
```

この説明では、**サーバ上のプログラムを呼び出す** という点が決め手です。

一方で、次のような説明はRPCではありません。

```text
ドメイン名やホスト名などとIPアドレスとを対応付ける。
```

これは、名前解決を行うDNSの説明です。

科目Aでは、**呼び出しならRPC、名前解決ならDNS、割当ならDHCP、変換ならNAT** と考えると選択肢を切りやすいです。

## どんな場面で使う？


分散処理やクライアントサーバシステムの説明を読むときに、RPCの考え方は役立ちます。

例えば、次のような処理を考えます。

```text
クライアント側：
商品IDを指定して，価格情報を取得したい。

サーバ側：
商品IDを受け取り，価格を検索して返す。
```

RPCでは、クライアント側から見ると、サーバ側の処理を関数のように呼び出すイメージになります。

```text
getPrice(商品ID)
```

実際にはネットワーク通信が行われていますが、プログラムの見た目としては、処理を呼び出して結果を受け取る形になります。

問題文で読むときは、次の順で整理すると分かりやすいです。

1. 処理が別のコンピュータ上にあるかを見る
2. 呼び出し元が、その処理を利用しているかを見る
3. 通信相手の名前解決ではなく、処理の呼び出しかを見る
4. 結果が呼び出し元へ返ってくるかを見る

RPCは、ネットワークそのものの住所変換ではなく、**遠隔の処理を呼び出すための仕組み** と考えると理解しやすいです。

## SG試験との違い

RPCは、情報セキュリティマネジメント試験では、DNSやDHCPほど頻繁に主役になる用語ではありません。

ただし、ネットワーク越しに処理を呼び出す仕組みとして、セキュリティ上の注意点に関係することがあります。

| 試験 | 見られやすいポイント |
|---|---|
| FE | DNS、DHCP、NAT、RPCの機能を切り分ける |
| SG | 遠隔から処理を呼び出せる仕組みの利用制限やアクセス管理を見る |
| 共通 | RPCは遠隔の手続き・プログラムを呼び出す仕組み |

FEでは、用語と機能の対応を問われやすいです。

SGでは、RPCそのものの細かい仕組みより、遠隔から処理を呼び出せる機能を不用意に公開しない、アクセス制御を行う、といった運用面の理解が重要になりやすいです。

## よくある誤解・混同

RPCで混同しやすいのは、DNS、DHCP、NATです。

| 用語 | 役割 | 判断の合図 |
|---|---|---|
| RPC | 遠隔のプログラムや手続きを呼び出す | Remote Procedure Call、手続き呼出し、プログラム呼出し |
| DNS | 名前とIPアドレスを対応付ける | ドメイン名、ホスト名、名前解決 |
| DHCP | IPアドレスを自動で割り当てる | 未使用IP、割当、PCやプリンタ |
| NAT | IPアドレスを変換する | プライベートIP、グローバルIP、変換 |

RPCとDNSは、どちらもサーバに関係する説明で出ることがあります。

- RPC：サーバ上の処理を呼び出す
- DNS：サーバ名やドメイン名からIPアドレスを調べる

RPCとNATも、ネットワーク越しの通信という点では近く見えます。

- RPC：何の処理を呼び出すか
- NAT：IPアドレスをどう変換するか

RPCは、IPアドレスを割り当てたり変換したりする仕組みではありません。

## さらに注意したいひっかけ

RPCでは、次のようなひっかけにも注意します。

| ひっかけ表現 | なぜ注意する？ |
|---|---|
| ドメイン名とIPアドレスを対応付ける | DNSの説明 |
| IPアドレスを自動で割り当てる | DHCPの説明 |
| プライベートIPをグローバルIPに変換する | NATの説明 |
| 通信内容を暗号化する | RPCの中心機能ではない |
| 不正アクセスを遮断する | ファイアウォールやIPSの説明 |
| Webアプリケーションへの攻撃を防ぐ | WAFの説明 |

特に、**RPCは名前解決ではない** という点は大切です。

RPCは、遠隔のプログラムや手続きを呼び出す仕組みです。  
ドメイン名やホスト名をIPアドレスに変換する仕組みはDNSです。

また、RPCは通信を安全にする仕組みそのものではありません。  
RPCを安全に使うには、認証、アクセス制御、暗号化、不要なサービスの停止などが必要になります。

## まとめ（試験直前用）

- RPCは、遠隔のプログラムや手続きを呼び出す仕組み
- Remote Procedure Call は、遠隔手続呼出しと覚える
- 「サーバ上のプログラムを呼び出す」が出たらRPCを疑う
- 名前解決はDNS
- IPアドレスの自動割当はDHCP
- IPアドレスの変換はNAT
- FEでは、呼び出し・名前解決・割当・変換を切り分ける

## 関連記事

ネットワーク用語は、役割の違いで切り分けると覚えやすくなります。

- [DNSとは？ドメイン名とIPアドレスを対応付ける名前解決の仕組み](https://stemtazoo.github.io/fe/dns/)
- [DHCPとは？IPアドレスを自動で割り当てる仕組み](https://stemtazoo.github.io/fe/dhcp/)
- [NATとは？プライベートIPアドレスをグローバルIPアドレスへ変換する仕組み](https://stemtazoo.github.io/fe/nat/)
