Vaultのスループットが地域ごとに頭打ちになってきた、あるいはリージョンを跨いだ待ち時間がボトルネックになっているなら、Performance Replicationは最有力の選択肢です。
本稿では、試験対策(HashiCorp Security Automation系の出題範囲を意識)と実務の両面から、設計判断、セットアップ、運用・監視、トラブルシュートまでを一気通貫で解説します。
Performance Replicationは、Vault Enterpriseが提供するスケールアウト機能で、読み取りを各リージョンのセカンダリでローカル処理し、書き込みはプライマリで一元適用します。これにより、待ち時間の短縮とスループットの安定化が実現できます。
重要な前提は次の3点です。1) レプリケーションは非同期で行われるため、非常に短い複製遅延は発生し得る。2) セカンダリでの認証・トークンは各クラスターにローカルで、グローバルなセッション共有は行わない。3) 障害時のフェイルオーバーはDR Replicationが担い、Performance Replicationは主にスケールとレイテンシ最適化を目的とする、という役割分担です。
ストレージとしてはConsulまたはIntegrated Storage(Raft)が利用可能ですが、近年は運用単純性と一体運用の観点からIntegrated Storageが推奨される傾向です。
典型構成は1つのPerformanceプライマリと、地域ごとの複数Performanceセカンダリです。各クラスターは内部で高可用(HA)構成を取り、外部からは地域ごとのロードバランサ経由でアクセスします。
クライアント読み取りは最寄りのセカンダリに到達し、書き込みはセカンダリ経由でプライマリへフォワードされ、プライマリでコミット後に応答します。データは非同期で各セカンダリへ複製されます。短いレプリケーション遅延があるため、厳密なローカルのread-after-write一貫性は保証されません(多くのケースで実用上問題はありませんが、要件が厳しい場合は設計で緩和策を取ります)。
ネットワーク要件として、クラスター間のレプリケーションはVaultのclusterアドレス(標準ではTCP 8201/TLS)で疎通が必要です。APIアクセス(8200/TLS)はクライアントとロードバランサに対して公開します。
グローバルPerformance Replicationの概念図
スケール・可用性・運用コストのバランスを取るには、Replicationモードの役割を正しく理解することが近道です。Performanceはレイテンシ短縮と読み取りスループットのため、DRは災害復旧のため、と覚えておくと試験でも迷いません。
以下の比較表は、要件整理の初期段階で有用です。
| 観点 | Performance Replication | DR Replication | 単一クラスタ |
|---|---|---|---|
| 主目的 | 読み取り分散・待ち時間短縮・水平スケール | 災害復旧とプライマリ代替 | シンプル運用 |
| 読み取り | 各セカンダリでローカル処理 | DR側は通常待機(フェイルオーバー時に有効化) | 単一拠点のみ |
| 書き込み | プライマリに一元適用(セカンダリからフォワード可) | DR側では不可(昇格時に可) | 単一拠点で処理 |
| 一貫性 | 非同期複製(短い遅延あり) | 昇格までは非適用 | ローカル一貫性のみ |
| フェイルオーバー | 目的外。DR併用が前提 | 明確にサポート(昇格) | サーバ障害に弱い |
| 認証/トークン | 各クラスターで独立 | 昇格後は新プライマリで有効 | 単一管理 |
ここでは既にプライマリ/セカンダリともにVault Enterpriseが初期化・アンシール済みで、TLS設定も完了している前提です。ストレージはIntegrated Storage(Raft)例で説明します。
セカンダリ登録はワンタイムのアクティベーション・トークンで行い、登録後にバックグラウンドでフル同期が走ります。
CLI例: 有効化からステータス確認まで
# 1) プライマリでPerformance Replicationを有効化
vault write -f sys/replication/performance/primary/enable
# 2) セカンダリ参加用のワンタイム・トークンを生成(識別子を付与)
vault write sys/replication/performance/primary/secondary-token id="sec-eu-001"
# 出力の token フィールドを控える(単回使用)
# 3) セカンダリでPerformance Replicationを有効化(プライマリ発行のトークンを利用)
vault write sys/replication/performance/secondary/enable token="s.xxxxx..."
# 4) ステータス確認(両側で確認すると安心)
vault read sys/replication/status
vault read sys/replication/performance/status
# 5) (任意)Integrated Storageのスナップショット取得(退避・検証用)
# 運用上は定期取得と安全な保管が推奨
vault operator raft snapshot save /tmp/vault_raft.snapLB設計: 各リージョンのLBはアクティブノードを優先しつつ、必要に応じてperformance-standby-ok=trueでスタンバイも可とするヘルスチェックを使います。クラスター障害時に他リージョンへ振り向けるポリシーは、Performance単独ではなくDRと組み合わせるのが定石です。
認証・トークン: 各クラスターで独立運用されます。ユーザー/アプリは最寄りのセカンダリでログインし、得たトークンはそのクラスター内でのみ有効です。グローバル共通トークン前提の設計は避けます。
書き込みフォワード: セカンダリに対する書き込み要求はプライマリへフォワードされ、プライマリでコミット後に応答します。返答成功後も、セカンダリへの反映にはわずかな遅延があり得る点を、APIクライアントのリトライや整合性要件に織り込みます。
ヘルスチェック例(curl)とスナップショット
# LBヘルスチェック(スタンバイ許容)
curl -sS "https://vault-eu.example.com:8200/v1/sys/health?standbycode=200&performance-standby-ok=true" -o /dev/null -w "%{http_code}\n"
# Raftスナップショット保存(要認証)
vault login s.xxxxx...
vault operator raft snapshot save /backups/vault-`date +%F`.snap試験対策: Performanceはスケール用、DRはフェイルオーバー用。トークン/リースはクラスターごと。セカンダリ書き込みはフォワードでプライマリに適用。この3点をまず落とさないこと。
初期同期が進まない、遅延が解消しないといった相談はネットワーク/TLS/時刻同期が原因のことが多いです。基本の疎通、証明書チェーン、NTPを確認してから深掘りします。
基本ステータスとヘルスのチェック
# レプリケーションの状態
vault read sys/replication/status
vault read sys/replication/performance/status
# ヘルスチェック(プライマリ/セカンダリで)
curl -sS https://vault-primary.example.com:8200/v1/sys/health | jq .
curl -sS "https://vault-eu.example.com:8200/v1/sys/health?performance-standby-ok=true" | jq .Ops
問題 1
Vault EnterpriseのPerformance Replicationに関する説明として最も適切なのはどれか。
正解: B
Performance Replicationは読み取りを各セカンダリでローカル処理し、書き込みはセカンダリからプライマリへフォワードしてプライマリで適用します。トークン/リースはクラスターごとに独立であり、DR用途はDR Replicationの役割です。
セカンダリに対して書き込みリクエストを送っても良いですか?
可能です。セカンダリは書き込みをプライマリへフォワードします。応答はプライマリでコミット後に返ります。直後のローカル読み取りで非常に短い遅延が見える可能性は考慮してください。
トークンやリースはレプリケートされますか?
いいえ。Performance Replicationでは認証/トークン/リースは各クラスターにローカルです。ユーザーやアプリは最寄りのクラスターでログインし、そのトークンは同一クラスター内でのみ有効です。
フェイルオーバーはPerformanceだけで対応できますか?
推奨されません。業務継続性はDR Replicationで設計します。Performanceは主にスケールとレイテンシ最適化を担い、役割を分けるのがベストプラクティスです。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Vault のコア概念を最短距離で理解する:Secret / Auth / Policy / Token
HashiCorp Vault Associate レベルで押さえるべきコア概念(Secret Engine、Auth ...
Vault Operations Professional: 上位資格としての範囲を実務目線で押さえる
HashiCorp Vault Operations Professional(Ops Pro)の出題範囲を、Assoc...
Vaultにおけるパスベースのルーティング: マウントとAPI構造を読み解く
HashiCorp Vaultのパスベースのルーティングを、マウント設計とAPIパスの観点から整理。Associateレ...
Vault Tokens の基礎: 認証の起点となる概念
HashiCorp Vault におけるトークンの役割、種類、ライフサイクル、ポリシー連携、設計パターンをAssocia...
Vault のトークン種類を正しく使い分ける: service / batch 実践
HashiCorp Vault Associate 向けの試験対策と実務運用を両立させた、service トークンと b...