CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
冒頭から宣伝で恐縮ですが、今年の年初から執筆していた書籍がついに完成して、出版が決まりました。「独習Linux専科・サーバ構築/運用/管理――あなたに伝えたい技と知恵と鉄則」というタイトルで、「Linuxの仕組みを本格的に知りたい、自分で試しながら機能を根底から理解したい!」、そんな初学者を対象にした書籍です。筆者のBlogで各章概要を紹介していますので、ぜひご参照ください。
さて、前回は、最近の「はやり言葉」の1つ、「クラウドOS」について考えてみました。今回はもう1つのはやり言葉、「SDN」についてちょっと真面目に考えてみます。
数年前、IT業界で「クラウド」という言葉が流行りはじめた当初、エンジニアの間で「クラウドの定義は何だ?」という議論が交わされていた事を覚えているでしょうか? 当時は、誰もがクラウドを構成する技術要素への興味が高く、「XXという技術を使っているのがクラウドだ」「XXの機能がなければクラウドじゃない」という感じで、技術要素や個別機能の観点で議論されることが多かったように思います。
そして、今、「SDN(Software Defined Network)」で同じことが起きているようです。Webを検索してみると、技術的な側面でSDNの定義を紹介するものが散見されます。しかしながら、SDNが提供するネットワーク環境を利用する立場から見ると、少し違う見方もできる気がします。そもそも、SDNの利用形態には、大きく2つの種類が考えられます。
1つは、データセンタ内の既存のネットワーク環境を集中管理するために、SDNを利用するパターンです。私の知り合いに、「ネットワークは生き物」と呟いたネットワークエンジニアがいますが、規模の大小に関わらずネットワークの構成は、日々、変更が繰り返されていきます。
これまでのネットワークアーキテクチャでは、それぞれの機器が自立分散型で連携動作するようにできていますので、ネットワーク全体の整合性を保ちながら、個々の機器を設定変更したり、新しい機器を追加していくのは、それなりに大変でした。このような場合、多数のネットワーク機器を集中管理する仕組みがあると、確かに便利になる気がします。この観点では、「ネットワーク全体の構成をソフトウェア的に集中管理するもの」としてSDNを定義するのがしっくりきます。
例えば、米Google社は、データセンタ間のプライベートなネットワーク接続をOpenFlowで集中管理していることを公表しています。こちらのWeb記事によると、世界各国にまたがるネットワークを集中管理することで、管理者の人手を減らして、管理コストを下げることを目指しているようです。
ただし、管理者の人手を減らすことは、「管理を簡単にする」ことと同じではありません。これだけの規模のネットワークを集中管理するには、相当に複雑なロジックが必要です。適切なロジックを考えて実装するのも大変ですし、想定外の問題が発生した場合、ロジックのどの部分に原因があるのかを調査するには、超人的なスキルが要求されるはずです。集中管理型に特有のスケーラビリティの問題に対処する知見も必要です。「SDNはネットワーク管理を簡単にする技術」という紹介記事を目にすることもありますが、これには、違和感を感じることもあります。
もう1つの利用形態は、マルチテナントのIaaS型クラウドにおいて、テナントごとに独立した仮想ネットワークを構成するためにSDNを利用する場合です。以前の記事で紹介しましたが、OpenStackの環境では、各テナントのユーザは、API経由で指示を出すことにより、「仮想ルータ」や「仮想スイッチ」などの仮想的なネットワーク機器を構成することができます。このように、物理的なネットワーク環境をベースとして、その上に仮想的なネットワークを構成していく事、これもSDNによって実現できる事の1つです。
この観点では、SDNとは、「API経由で仮想ネットワークを構成するもの」と言えるでしょう。仮想ネットワークを構成する具体的な技術要素は、SDNの定義そのものとは関係ありません。実際、仮想ネットワークを実現する方法には、複数の手法が考えられますし、それぞれで利用される技術要素は異なります。特定の技術要素にこだわってSDNを捉えてしまうと、SDNを利用する目的が置き去りにされる恐れがあります。SDNについて議論する際は、「何のためにSDNを使うのか」という観点を念頭におくことが必要です。
本文で出てきたOpenFlow、みなさんはどのような技術か理解できているでしょうか? 「SDN」はやや抽象的な言葉で定義も曖昧ですが、OpenFlowは、かっちりと定義されたパケット制御のプロトコルです。ぜひ一度、(*1)などの書籍で正しく理解しておくことをお勧めします。
次回は、本文で触れた「仮想ネットワークを実現する方法」を整理してみたいと思います。
*1)「クラウド時代のネットワーク技術 OpenFlow実践入門」高宮 安仁, 鈴木 一哉. 技術評論社 (2013)
++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
CTC教育サービス Linuxのページ
http://www.school.ctc-g.co.jp/linux/
筆者書籍紹介 Software Design plusシリーズ 「独習Linux専科」サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則 本物の基礎を学ぶ!新定番のLinux独習書 中井悦司 著 B5変形判/384ページ 定価3,129円(本体2,980円) ISBN 978-4-7741-5937-9 詳しくはこちら(出版社WEBサイト) |
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes