Vault の可用性や障害時のふるまいは Storage Backend に大きく依存します。特に Ops 観点では、整合性モデルを理解したうえで、組織の運用標準に合う選択が要です。
本記事は公式ドキュメントの安定的な挙動に基づき、実務と資格対策の両立を意識して、Integrated Storage (Raft) と Consul の現実的な比較・設計ポイントを解説します。
Vault は暗号化済みの状態でデータを Storage Backend に保存します。対象はシークレット、トークン、リース、認証情報、メタデータなどです。Storage の選定は、耐久性・整合性・可用性・運用コストに直結します。
本番用途では高可用性と強整合を満たすバックエンドが必要です。現行の推奨は主に Integrated Storage (Raft) または Consul です。旧来の一部バックエンドは非推奨やサポート縮小の対象が含まれるため、新規構築では避けるのが無難です。
Integrated Storage (Raft) は Vault プロセス内に組み込まれた Raft により強整合とシンプルな運用を提供します。外部依存を減らしたい、クラスタを自己完結させたい場合に適します。
Consul は成熟したサービスメッシュ/サービスディスカバリの一部として KV ストアを持ち、Vault のストレージとして長く実績があります。すでに信頼できる Consul 運用基盤があり、チームがノウハウを持つなら依然として有力です。
| バックエンド | 整合性 | 可用性/障害時の挙動 | 運用コスト |
|---|---|---|---|
| Integrated Storage (Raft) | 強整合(Raft による単一リーダー、クォーラムコミット) | ノード障害はクォーラム維持で継続。ネットワーク分断時は少数派が停止 | 外部依存が少なくシンプル。ディスク/IOPS 設計は重要 |
| Consul | 強整合の書き込み。読み取り整合性は設定で調整可能(Vault は強整合動作を前提) | Consul クラスタの健全性に依存。複数 DC 設計や WAN 連携は設計難度が上がる | Consul 運用の知見が必要。既存基盤がある場合は相性良好 |
| 旧来バックエンド群(例: etcd/DynamoDB 等) | 実装・運用前提がまちまち | サポート状況により挙動/将来性が異なる | ベンダー/運用に強く依存 |
Raft は単一リーダー方式でログレプリケーションを行い、過半数の合意でコミットします。これにより書き込みは常に強整合を維持します。読み取りもリーダーまたはコミット済みインデックスに基づき強整合です。
Consul も内部で Raft を用い、Vault からの書き込みは強整合です。読み出しの一部で整合性/遅延のトレードオフが設定可能ですが、Vault はデータ競合を避けるため強整合パスを前提とするのが一般的です。設計では、クォーラム成立に必要なノード数、ネットワーク分断時の振る舞い、読み取りの一貫性を明示します。
Vault クラスタ(Raft)の整合性とクォーラム
┌────────────────┐
│ Client Write │
└───────┬────────┘
│
+────▼────+
│ Leader │ Node A
+────┬────+
AppendEntries│
┌──────────────────┼──────────────────┐
+───▼────+ +───▼────+ +───▼────+
│Follower│ │Follower│ │Follower│
│ Node B │ │ Node C │ │ Node D │
+────────+ +────────+ +────────+
│ │ │
└────── ack ────────┴────── ack ───────┘
Quorum reached -> commit可用性は単にノード数を増やせば良いわけではなく、クォーラムと障害ドメイン(AZ/ラック)を意識した配置が必要です。ストレージ IO の安定性はレイテンシ増大やリーダー交代の誘発要因になるため、特に重視します。
バックアップはバックエンドに合わせて準備します。Integrated Storage は Vault の Raft スナップショット、Consul は Consul のスナップショット機能が基本です。復元手順は定期的にリハーサルし、復旧時間目標とデータ一貫性を検証します。
代表的な server.hcl の例です。実運用では TLS、オートアンシール、監査ログ、リソース制限などを含めて構成します。アドレスやパスは環境に合わせて調整してください。
構成後は、起動前に設定検証、起動後にクラスタヘルス、リーダー、スナップショット取得可否まで確認します。
Vault server.hcl の例(Integrated Storage と Consul)
# Integrated Storage (Raft) 例
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 0
tls_cert_file = "/etc/vault/tls/tls.crt"
tls_key_file = "/etc/vault/tls/tls.key"
}
storage "raft" {
path = "/opt/vault/data"
node_id = "vault-1"
retry_join {
leader_api_addr = "https://10.0.0.1:8200"
}
retry_join {
leader_api_addr = "https://10.0.0.2:8200"
}
}
api_addr = "https://vault-1.example.local:8200"
cluster_addr = "https://10.0.0.11:8201"
# Consul 例(既存の安定した Consul を利用する場合)
# Consul 側は ACL/TLS/スナップショット設定を適切に
# address はローカルエージェント経由など運用標準に合わせる
#
# storage "consul" {
# address = "127.0.0.1:8500"
# path = "vault/"
# scheme = "https"
# token = "<consul-acl-token>"
# }
Ops の設計・運用問題は「整合性と可用性のトレードオフをどう具体化したか」を問われがちです。Storage の選定理由、クォーラム設計、バックアップとリストアの手順、障害時のふるまいを一貫して説明できるように準備します。
試験・実務ともに、開発用バックエンドや単一ノード構成を本番に流用しないこと、ネットワーク分断時の書き込み停止が正しい挙動であることを理解しているかがチェックされます。
Ops
問題 1
単一リージョンで 3 ノードの Vault クラスタを新規構築します。外部依存を極力減らし、強整合とシンプルな運用、障害時の自己回復(クォーラム維持下の自動再参加)を重視します。最も適切なストレージ選択と設計はどれですか。
正解: A
要件は外部依存の低減と強整合・簡素運用。Integrated Storage (Raft) が最適。奇数台でクォーラム設計し、安定したストレージ IO と再参加設定を行う。NFS 共有の file は HA を満たさず不適、inmem は本番非推奨、Consul 1 ノードは可用性要件を満たさない。
Integrated Storage と Consul、どちらを選ぶべきですか?
新規構築で外部依存を減らし、Vault を自己完結で運用したいなら Integrated Storage が第一候補です。既存に安定運用された Consul 基盤があり組織の標準となっているなら Consul も適切です。どちらも強整合で本番適性があります。
バックアップはどう実施しますか?
Integrated Storage は vault operator raft snapshot の仕組みでスナップショットを取得・検証します。Consul は Consul のスナップショット機能を使用します。いずれも定期実行と復元リハーサルを運用に組み込み、復旧時間目標とデータ一貫性を確認してください。
ネットワーク分断時に書き込みできなくなりました。故障ですか?
強整合を守る正しい挙動です。クォーラムを失った側(少数派)はリーダーになれず書き込みを拒否します。設計時にクォーラム成立を優先するトポロジ(奇数台、AZ 分散)と、分断時の運用手順を定めておくことが重要です。
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...