> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/keeperpam/jp/privileged-access-manager/getting-started/gateways/scaling-and-high-availability.md).

# スケーリングと高可用性

<figure><img src="/files/c4nJKYDWqoWdFlnKBpLB" alt=""><figcaption></figcaption></figure>

Keeperゲートウェイは、[接続](/keeperpam/jp/privileged-access-manager/connections.md)、[トンネル](/keeperpam/jp/privileged-access-manager/tunnels.md)、[検出](/keeperpam/jp/privileged-access-manager/discovery.md)、[認証情報のローテーション](/keeperpam/jp/privileged-access-manager/password-rotation/rotation-overview.md)に対応します。

スケーリングにより、同一の設定で複数のゲートウェイインスタンスを稼働できます。これらのインスタンスは1つのゲートウェイプールを形成し、PAMワークロードの処理能力と可用性を高めます。

リクエストはラウンドロビン方式で、正常なインスタンスへ順に振り分けられます。

## スケーリングの仕組み <a href="#how-scaling-works" id="how-scaling-works"></a>

<figure><img src="/files/jlas9h7bRDqHkoziHBU0" alt=""><figcaption></figcaption></figure>

ゲートウェイのスケーリングが有効な場合、同一の構成を用いて複数のゲートウェイインスタンスを運用できます。これらのインスタンスは1つのゲートウェイプールを構成し、PAMワークロードをまとめて扱います。

* **ワークロードの分散:** リクエストを利用可能なゲートウェイインスタンスへ分散
* **自動フェイルオーバー:** インスタンスが利用不能になった場合、トラフィックを正常なインスタンスへ切り替え
* **上限の設定:** 同時起動できるインスタンス数の上限を指定
* **クロスプラットフォーム対応:** 対応プラットフォーム上でインスタンスを実行

{% hint style="info" %}
Keeperコマンダーの `pam gateway list` では、ゲートウェイプールが1件として表示されます。OS、マシンタイプ、デバイス名などの詳細を確認するときは `pam gateway list --verbose` を使用してください。稼働中の各インスタンスが別々の行に列挙されることはありません。
{% endhint %}

### スケールダウン <a href="#scaling-down" id="scaling-down"></a>

最大インスタンス数を下げても、すでに稼働中のゲートウェイが自動的に停止することはありません。上限を下げた場合 (例: 3 → 2) も、既存インスタンスは手動で停止するまで稼働し続けます。新しい上限に合わせるには、余分なインスタンスを手作業で停止してください。

## セットアップ <a href="#setup" id="setup"></a>

### 要件 <a href="#prerequisites" id="prerequisites"></a>

スケーリングを有効にする前に、以下を満たしていることを確認してください。

* Keeperゲートウェイ バージョン **1.7.6 以降**
* Keeperコマンダー バージョン **17.2 以降**
* Keeperゲートウェイの作成、デプロイ、管理ができるユーザー
* 既存のゲートウェイのデプロイ

### 1. ゲートウェイインスタンス数の上限を設定する <a href="#id-1-set-maximum-gateway-instances" id="id-1-set-maximum-gateway-instances"></a>

Keeperコマンダーにログインしたら、ゲートウェイの一覧を取得します。

```bash
pam gateway list
```

対象のゲートウェイにスケーリングを設定します。

```bash
pam gateway set-max-instances -g <GATEWAY_UID_OR_NAME> -m <MAX_INSTANCES>
```

`<GATEWAY_UID_OR_NAME>` にはゲートウェイの UID または名前を、`<MAX_INSTANCES>` には同時に許可するインスタンス数の上限 (最小 1) を指定します。

**例:**

```bash
pam gateway set-max-instances -g Dmg5bh63p3Yj7ov738BTAw -m 5
```

### 2. 同一構成でもう1台のゲートウェイを実行する <a href="#id-2-run-another-gateway-with-the-same-configuration" id="id-2-run-another-gateway-with-the-same-configuration"></a>

同一のゲートウェイ構成を、追加のサーバーまたは環境へデプロイします。各インスタンスは同一のゲートウェイプールに参加し、設定された上限を守ります。

既に稼働中のゲートウェイから構成を複製し、新しい各ホストで再利用します。元のゲートウェイを base64 構成オプションで作成した場合は、表示された `GATEWAY_CONFIG` の値を再利用します。

デプロイ手順の詳細は、各プラットフォーム向けガイドをご参照ください。

* [Docker上のゲートウェイ](/keeperpam/jp/privileged-access-manager/getting-started/gateways/gateway-with-docker.md)
* [Linuxネイティブ環境でのゲートウェイ](/keeperpam/jp/privileged-access-manager/getting-started/gateways/linux-installation.md)
* [Windows上のゲートウェイ](/keeperpam/jp/privileged-access-manager/getting-started/gateways/windows-installation.md)

### 新しいインスタンスのデプロイ <a href="#deploying-new-instances" id="deploying-new-instances"></a>

ゲートウェイの初期化方法は、デプロイ先のシステムによって異なります。

* WindowsネイティブおよびLinuxネイティブのゲートウェイは、ワンタイムトークンで初期化します。
* Dockerゲートウェイは、Base64構成ファイルで初期化します。

同一ゲートウェイの複数インスタンスは、Dockerデプロイでは構成ファイルが共通のため、同じコマンドで追加できます。

{% code overflow="wrap" %}

```bash
curl -fsSL https://keepersecurity.com/pam/gatewayctl/install | sudo bash -s -- -c <b64_config>
```

{% endcode %}

ワンタイムトークンで初期化するゲートウェイでは、ワンタイムトークンは新しいインスタンスのデプロイにも再利用できないため、この方法は使えません。

代わりに、ワンタイムトークンで新しい一時ゲートウェイを作成してデプロイします。インストール後、構成ファイルを置き換えます。

* Windows上の構成ファイル

{% code overflow="wrap" %}

```
C:\ProgramData\KeeperGateway\config\gateway-config.json
```

{% endcode %}

* Linux上の構成ファイル

{% code overflow="wrap" %}

```
/etc/keeper-gateway/gateway-config.json
```

{% endcode %}

再起動後、ゲートウェイはゲートウェイプールのインスタンスとして稼働し、一時ゲートウェイは安全に破棄できます。Keeperコマンダーで稼働中のインスタンスを確認できます。

{% code overflow="wrap" %}

```bash
pam gateway list
rocky9.gateway                                     pp4pwiBcR5KUV   ONLINE (2 instances)
   |- Instance 1 (connected: 2026-06-11 10:25:30)  10.0.0.57       ONLINE        1.8.1
   |- Instance 2 (connected: 2026-06-11 13:16:19)  10.0.0.47       ONLINE        1.8.1
```

{% endcode %}

### JSON構成とBase64構成ファイルの変換 <a href="#converting-json-and-base64-configuration-files" id="converting-json-and-base64-configuration-files"></a>

Linuxネイティブ / WindowsネイティブのゲートウェイとDockerゲートウェイを同一プールで稼働させる場合、構成は異なる形式で保存されます。

* Linuxでは構成をJSONで保存します
* Dockerでは構成をBase64で保存します (`docker-compose.yml` ファイル内)

両形式を扱う場合は、JSONとBase64形式の相互変換が可能です。

* JSON構成 (Linux / Windows) からBase64 (Docker) へ変換

{% code overflow="wrap" %}

```bash
cat /etc/keeper-gateway/gateway-config.json | base64
```

{% endcode %}

* Base64構成 (Docker) からJSON (Linux / Windows) へ変換

{% code overflow="wrap" %}

```bash
echo 'ewogICAgImF...' | base64 --decode > /etc/keeper-gateway/gateway-config.json
```

{% endcode %}

上記コマンドの `> /etc/keeper-gateway/gateway-config.json` は、JSONをゲートウェイ構成ファイルに直接書き込みます。stdoutにJSONを出力する場合は、この部分を削除してください。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/privileged-access-manager/getting-started/gateways/scaling-and-high-availability.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
