HashiCorp Consulが提案するマルチクラウド型ネットワーク
ConsulはHashiCorp社によって開発されたソフトウェアです。共有のレジストリを利用したサービスベースのネットワーキングを実現することで、マルチクラウド型ネットワークが求める以下の機能を提供します。
- サービスディスカバリ
ヘルスステータスを含めたリアルタイムのサービスカタログを提供 - Consul Terraform Sync
スケールアップやスケールインのネットワーク再設定を自動化 - サービスメッシュ
IDベースのセキュリティポリシー設定やMutual-TLSによる通信の暗号化
Consulの「サービスディスカバリ」
Consulは追加リソースのホスト名やIPアドレスの検出を「サービスディスカバリ」機能により解決します。

- ①各々のホスト上でConsulノードのヘルスチェック機能にてサービス状態(ポート番号、IPアドレス、ホスト名など)をリアルタイムで監視。サービス状況の変化が起きた際は直ちにConsulサーバへデータを送信する。
- ②Consulサーバは、Consulノードからの情報を受け、サービスカタログ上にサービス名と物理ロケーションのマッピング情報を保存する。
- ③Consulサーバは保存したサービスカタログのデータを、REST API、DNS、コマンドラインにより提供する。
サービスディスカバリの基本的な運用
(1)Consulによりアプリケーションをつなげる

(2)Consulにより同一アプリケーションの複数インスタンスに対するDNSラウンドロビンを提供


(3)サービス停止、復旧、スケールアウト、スケールイン時にサービスカタログを自動更新


(4)マルチプラットフォームに対応したサービスディスカバリ

- consul-k8sによりKubernetesクラスタ間のサービスをConsulでつなぐことが可能
- consul-esmによりKubernetesクラスタと外部のサービスをConsulでつなぐことが可能
「Consul Terraform Sync」によるネットワーク設定変更の自動化
これまでもConsulでネットワーク設定の自動化が可能でしたが、ConsulとTerraformを組み合わせ、Consul Terraform Syncモジュールにより、ネットワーク上に追加されたリソース情報の検出からネットワーク機器の設定変更まで、一連の流れを自動化できます。これにより、ネットワークを手動で設定することによる作業効率が改善され、また設定ミスによる障害発生のリスクが削減されます。
Consul Terraform Syncモジュールを使用したネットワーク設定変更の動き

- 新しいサービスの登録や変更によりConsulのサービスカタログがアップデート
- Consul Terraform Syncがサービスの情報をConsulのサービスカタログから取得
- Consul Terraform Syncがネットワーク機器の設定を変更するTerraformのコードを生成
- Terraform Applyが実行され変更が適用
Consul Terraform Syncの対象となるネットワーク機器
F5、PaloAlto、Cisco、CheckPinto、A10 Networksなど。
Requirements | Consul by HashiCorp
Consulの「サービスメッシュ」機能
マイクロサービスではサービス間連携(サービスディスカバリ)のほか、サービス連携時のセキュリティ確保、連携する他サービスによる障害時の対応などアプリケーション開発者が考慮する点は多岐にわたります。これらの課題をConsulのサービスメッシュ機能が一括して解決し、アプリケーション開発者がビジネスロジックの開発に専念できるようになります。
Intentionsを使ったセキュリティポリシー

Service Segmentation
Sidecarプロキシでアプリケーションに透過的な通信暗号化を実現。ACL機能に加えて、mTLSや証明書発行等の機能を包括的に提供します。

各アプリケーションはSidecarプロキシを利用することでUpstream先のサービスとmTLS通信を実現します。また Intentionsの設定で認証されたサービスベースのmTLSが可能となり、IPスプーフィングを回避します。
Pluggable Sidecar Proxy
- Envoy
- Consul Built-in Proxy
- Custom Proxy
Built-in CA
- ConsulがCAとなり自ら証明書の発行が可能
- VaultなどをCAとして利用することも可能
Layer 7 Traffic Management
HTTPのパス、パラメータやヘッダーなどを使って重み付けルーティングなど高度なトラフィック制御を実現します。


ロードバランサやルータなどは不要
Service Routing
- Pathベースのトラフィックルーティング
Service Splitting
- 重み付けルーティング
Service Resolver
- 同一サービスの複数モジュールをサブセットとして管理
Observability
- Metrics
- Access logs
- Distributed Tracing
Mesh Gateway
複雑な運用や設定なしで透過的にデータセンター間のトラフィックをサービスベースでルーティングします。

- VPNやネットワークピアリングなどの複雑な運用を行うことなくDC間をつなぐ
- エッジネットワークにEnvoyを活用し、データセンター間通信をProxing
- Consul Connect GatewayはVMやコンテナなどにデプロイ可能
- End-to-end Encryption
- IntentionsによるFirewall
Consul Enterprise Editionのメリット
Consul OSS版にはなく、商用のEnterprise版のみに実装されている機能は以下のとおりです。
機能名 | 概要 |
---|---|
Automated Backups | ConsulエージェントやConsulサーバの設定やメタデータ等の一括バックアップを自動化 |
Automated Upgrades | Consulサーバの無停止ローリングアップデートを自動化 |
Enhanced Read Scalability | 負荷の高い、クラスタ内のリーダーを決めるConsensusには参加せず、リードの処理のみを行うインスタンス(Non-voting server)を用意してスケールアウトさせる |
Redundancy Zones | Non-voting serverを各AZに構築し、Readの処理を分散しつつ、Voting serverが落ちたらNon-votingをVotingに昇格する |
Advanced Federation | Datacenter間でのWAN Gossipによるクラスタ間通信をフルメッシュではなく、Hub-and-spokeによるシンプル化 |
Network Segments | 同一のConsulクラスタを利用するサービス間でセグメントを分割し、Consul Agent同士の相互通信を防ぐ |
Policy as Code (Sentinel) | Sentinelによるポリシーの設定 |
Namespaces | マルチテナンシー対応 |
HashiCorp Support | HashiCorp社によるSLA付きサポート |
価格
お客様の環境によって異なりますので、個別にお見積りいたします。お気軽にお問い合わせください。