Vaultは各リクエストで認証・ポリシー評価・暗号処理・ストレージI/O・監査出力を行います。どこが律速になるかを把握しないと、台数を増やしてもスループットが伸びません。
本稿は、公式ドキュメントに基づく安定した概念を前提に、Ops試験で狙われやすい観点と、現場で実際に効く設計・設定の落としどころをまとめます。Enterprise専用機能(Performance Replication、Quotas、Namespacesなど)はその旨を明記します。
Vaultの1リクエストは概ね、フロントのTLS終端 → 認証/トークン検証 → ポリシー評価 → シークレットエンジンや認証メソッドの処理 → バリア下のストレージI/O → 監査ログ出力、という経路をたどります。スループット上限は最も遅い段階で決まります。
典型的な律速要素は次の通りです。暗号処理(TransitやPKIの署名/暗号化)、ストレージのfsync遅延(RaftやConsulへの書き込み)、監査デバイスのI/O(auditは同期書き込み)、外部クラウドAPIの応答待ち(AWS/GCP/DB動的クレデンシャル)、ネットワーク遅延(LBやリージョン間)です。OSSのスタンバイは多くの操作をアクティブに転送するため、読取りの拡張性は限定的です。
ストレージとレプリケーション設計は、上限とスループットの“伸びしろ”を左右します。Integrated Storage(Raft)は外部依存がなく、一貫性の高い性能を得やすい一方、fsyncの遅延が直撃します。Consulストレージは成熟した選択肢ですが、ネットワークとConsulクラスタの調律がVaultのレイテンシに反映されます。
Vault EnterpriseのPerformance Replicationはグローバルに読み取りレイテンシを下げる主要手段です(書き込みはプライマリに集約)。DR Replicationはフェイルオーバー目的で、通常の読み取り分散には使いません。Raft/Consulいずれも推奨の投票ノード数は3〜5で、過剰な多数による合意コスト増は避けます。
| 方式/機能 | 特徴 | スループット/レイテンシ観点 | 運用上の注意 |
|---|---|---|---|
| Integrated Storage (Raft) | 外部依存なし。Raft合意で一貫性確保 | fsync遅延がボトルネックになりやすい。CPUは相対的に余裕 | 投票ノードは3〜5推奨。安定したローカルストレージを用意 |
| Consul ストレージ | 実績豊富。Consul側の健全性に依存 | ネットワーク/Consulの書き込みパスがレイテンシを左右 | VaultとConsulのトポロジを近接配置。WAN越しは避ける |
| Performance Replication(Enterprise) | セカンダリで読み取り可能。グローバルに低遅延 | 読み取りの水平スケールに有効。書き込みはプライマリ集中 | ACL/ポリシー/マウント整合性に留意。書き込みは経路設計が必要 |
| DR Replication(Enterprise) | 災害対策。通常時は待機 | 平時のスループット改善は目的外 | フェイルオーバー手順と復帰手順の訓練が重要 |
Vaultは既定では受けたリクエストを可能な限り速く処理します。突発的なバーストや誤設定により、CPUや監査I/Oが飽和するとテールレイテンシが悪化します。制御手段として、EnterpriseにはRate Limit QuotasとLease Count Quotas(/sys/quotas)があります。これらはパスやネームスペース単位でレートや総リース数を抑制し、意図しない増加を防ぎます。
OSSの場合は、リバースプロキシでのレート制限、クライアント側の指数バックオフ、TransitのバッチAPI活用など、周辺でのバックプレッシャ設計が要点になります。トークン/リース更新の嵐(renew storm)を避けるため、TTLの設計(default/max)とperiodicトークンの活用も効果的です。
KV v2はバージョニングによりメタデータ更新が加わるため、ライト集中ワークロードではmax_versionsの調整や定期的なコンパクション/削除計画が必要です。読み取り中心ならキャッシュ(アプリ側)とTTLの設計が効きます。
Transitは計算中心のためCPUコア数と暗号アルゴリズム選択が支配的です。楕円曲線(例: ECDSA/Ed25519)はRSAより高速になりやすく、batch_inputでの一括処理がスループットを伸ばします。PKIはCAキーの種類と鍵長に比例して重くなります。動的シークレット(AWS/GCP/DB)は先方APIのレート制限/遅延が上限を決めるケースが多く、必要に応じてTTLを短くしてキャッシュを抑制するか、逆にTTLを延ばして発行頻度を下げるかを選びます。
基本形はアクティブ1 + スタンバイNです。OSSのスタンバイは多くの操作をアクティブに転送します。EnterpriseのPerformanceスタンバイは読み取りの多いワークロードをローカルでさばけるため、読む場所を増やしてスケールさせます。書き込みは引き続きアクティブ(プライマリ)に集約されます。
グローバル分散は、EnterpriseのPerformance Replicationで各リージョンにセカンダリを配置して読み取りを近づけるのが定石です。コンテナ配備では、実効コア数に合わせたGOMAXPROCS(Goランタイムのスレッド上限)調整や、LBのヘルスチェック/接続プーリングが実効スループットに響きます。
典型的なEnterprise構成とスループット経路(読み取り分散)
TTLはdefault_lease_ttlとmax_lease_ttl(グローバルおよび各マウントのtune)で制御します。短すぎるTTLはrenewトラフィックを増やし、長すぎるTTLはセキュリティとリーク時の影響範囲を広げます。periodicトークンは定期更新で長寿命を実現できますが、max_ttlの上限は守られます。
監査は同期書き込みです。遅い監査デバイスやネットワークファイルシステムはスループット低下の原因になります。高速なローカルディスクやシステムロガーを選択し、OSのファイルディスクリプタ上限(ulimit)を十分に確保します。
HTTPボディサイズや同時接続の制限は、多くの場合LB/リバースプロキシ側の設定に依存します。Vaultの前段で制限を適切に設け、クライアントのリトライ・バックオフを組み合わせて全体最適を図ります。
実務で使う最小構成例(Raft + TTL調整 + 監査 + Telemetry)とEnterprise Quotas/Transitバッチの例
# vault.hcl (抜粋)
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 0
# 既定のTLS終端。LBと責務を分ける場合は相応に調整
}
storage "raft" {
path = "/opt/vault/data"
node_id = "vault-1"
}
api_addr = "https://vault.example.com:8200"
cluster_addr = "https://10.0.0.10:8201"
# TTLはグローバル既定。個別マウントで上書き可能
default_lease_ttl = "1h"
max_lease_ttl = "24h"
# 監査(ローカル高速ディスク推奨)
audit "file" {
path = "/var/log/vault/audit.log"
log_raw = true
}
# Telemetry(Prometheusスクレイプ)
telemetry {
prometheus_retention_time = "24h"
}
# --- Enterprise: Quotas の例(CLI) ---
# レート制限(秒間100リクエスト、対象パスprefix)
# vault write sys/quotas/rate-limit/myrl rate=100 path_prefix="transit/"
# リース数上限(最大10万)
# vault write sys/quotas/lease-count/myleasecount max_leases=100000
# --- Transit: batch_input 例(1リクエストで複数暗号化) ---
# curl --header "X-Vault-Token: $TOKEN" \
# --request POST \
# --data '{"batch_input": [{"plaintext":"aGVsbG8="},{"plaintext":"d29ybGQ="}]}' \
# https://vault.example.com/v1/transit/encrypt/mykey
Ops
問題 1
グローバルに分散したアプリケーションがKVの読み取りを大量に行っており、プライマリリージョンへの往復遅延がボトルネックです。書き込み経路は変更せず、各地域の読み取りレイテンシを下げる最も適切な選択はどれですか。(Enterprise前提)
正解: A
Performance Replicationはセカンダリでの読み取り提供によりグローバル読み取りのレイテンシを低減します。DR Replicationは災害対策であり、平常時の読み取り分散は目的外です。スタンバイ増設はOSSでは転送が主で効果が限定的、TTL延長はセキュリティ上のトレードオフを生むだけで往復遅延の根本解決になりません。
HSMオートアンシールは平常時のスループットに影響しますか?
通常は影響しません。HSMは起動/アンシール時にマスターキーの保護・復号に関与し、平常時のデータ暗号化/復号はメモリ上のデータキーで行われます。
監査デバイスを増やせばスループットは上がりますか?
監査は有効な全デバイスに同期書き込みするため、単純に数を増やすと遅くなることがあります。高速な単一デバイス(ローカルSSDや適切に調整されたシステムロガー)を用い、I/O待ちが発生しない構成にするのが先決です。
スタンバイは何台から始めるべきですか?
一般的には2〜3台から開始し、監視メトリクス(/v1/sys/metrics?format=prometheus)でリクエストレイテンシ・エラー率・監査I/O待ちを観測して段階的に増やします。Enterpriseの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...