検索
特集/連載

マイクロサービス時代に欠かせない「信頼できるネットワーク」の条件とは?マイクロサービスの信頼性を支えるネットワーク設計と運用

マイクロサービス時代のネットワークは、信頼性と性能の両立が必須だ。監視やIPアドレスの割り当てなど、マイクロサービスの運用において考慮すべきポイントとは。

Share
Tweet
LINE
Hatena

 ビジネスにおけるITシステムの重要性が高まる中、以前に増して考慮しなければならなくなっているのがネットワークの信頼性だ。第3回「いまさら聞けない『QoS技術』とは ネットワーク性能を高める“3つの仕組み”」までに、さまざまな視点でネットワークの信頼性向上に欠かせない技術的な要素を解説してきた。第4回となる本稿は、アプリケーションの分散化が進んでいることを前提に、ネットワークの信頼性と応答性を落とさないための運用設計について考える。

マイクロサービスとネットワーク信頼性

 アプリケーションを独立した小さなサービスの集合として設計する「マイクロサービス」は、サービス間通信が多く、高速かつ安定したネットワークに強く依存する。障害の検出漏れ、無秩序なIPアドレス割り当て、レイテンシの増大などが、信頼性を損なう要因となる。その対策としては以下が挙げられる。

ワークロードの監視

 メトリクス、ログ、トレースを活用することで、トラブルシューティング時にネットワーク全体の状態を詳細に把握できる。メトリクスはネットワークおよびアプリケーションの健全性と性能に関する洞察を示す。ログはイベントの発生時刻を記録し、過去の活動を分析して将来的な挙動を予測する手掛かりとなる。トレースはネットワーク上のデータフローを追跡し、デバイス間で適切にデータが送信されているかを確認するために用いられる。

IPアドレス割り当ての制御

 コンテナオーケストレーションツール「Kubernetes」の大規模な環境では、IPアドレスの割り当てを制御しなければアドレス枯渇のリスクが生じる。利用可能なIPアドレスがなければ新たな「Pod」(Kubernetesクラスタにおけるアプリケーションの実行単位)をスケジュールできず、ネットワーク通信が途絶し、重要なサービスが停止する。結果、クラスタ全体の信頼性と性能が低下する。

 この問題への対策として、クラスタがIPv6に対応している場合はIPv6を使用する。対応していない場合は、10.0.0.0/8のようなIPv4の/8プレフィックスを用いる。「Calico」や「Cilium」といった、CNI(Container Network Interface)を採用している場合は、クラスタ内の各ノードに専用のIPアドレス範囲を定義する必要もある。これにより、IPアドレスの割り当てを容易に管理できる。

クラウドVMのNIC最適化

 Kubernetesクラスタでは、複数のノード(VM:仮想マシン)上でマイクロサービスが動作する。これらのマイクロサービスは、ノードをまたいで頻繁に通信するため、ネットワーク性能が全体のアプリケーション性能に直結する。通常のクラウドVMでは、パケットはハイパーバイザー経由でNICに転送されるためレイテンシが増加する。

 「SR-IOV」(シングルルートI/O仮想化)は、NICの機能を拡張し、VMからNICへ直接アクセスできるようにする技術である。これによりパケットはハイパーバイザーをバイパスして通信し、レイテンシが減少し、通信効率が向上する。

設定ツールとトラブルシューティング技術

 ネットワークの信頼性やパフォーマンスの問題に対処する際、ネットワーク管理者にとって役立つツールが幾つか存在する。代表的なネットワークトラブルシューティングツールは以下の通り。

  • ipconfigおよびifconfig
    • ノートPCやデスクトップPCなどのデバイスで使用できるコマンド。インターネット接続後にインタフェースやデフォルトゲートウェイの設定内容を確認するために使用される。
  • Ping
    • ネットワーク内でパケットの到達可否をテストするコマンド。
  • Wireshark
    • ネットワークに流れるパケットをリアルタイムでキャプチャーし、詳細に解析できるパケットキャプチャーツール。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る