コロナ禍で急増するフィッシングが企業に与える脅威

脆弱性はシステムではなく人に

パンデミックに便乗した詐欺が増えていますが、オンラインの世界も例外ではありません。特に、在宅勤務の社員を狙って、企業システムを感染させるフィッシングが増えています。これは、システムの防御をいかに強化しても、実際には、サイバー攻撃がシステムの脆弱性を突いているわけではない点が厄介です。脆弱性はシステム上ではなく、人にあります。いくらシステムに鉄壁の守りを固めても、その内部にいる人の誰かが騙されたら全体に被害が及ぶ危険性があります。

たとえば、米国では、70%の人がフィッシングを見抜く力に自信を持っている反面、3分の1の人がフィッシングのリンクをクリックしてしまったという昨年の調査結果もあります。フィッシングの危険性は十分に知っているけど、自分は騙されないと思っている社員は、米国に限らず、一般的に多いようです。一般的に多いというよりは、古今東西、詐欺の歴史から考えれば、むしろそれが普遍的な人間心理なのではないでしょうか。

また、このデータは、セキュリティ上の社員教育よりもフィッシングの巧妙化が上回っていることも示しています。どんなに警戒していても予想を超える信憑性を装ったフィッシングが次々と生まれるので、社員教育とのイタチごっこになりつつあります。

社員のセキュリティ教育の上を行くフィッシングの巧妙化

しかも、これはコロナ前の状況です。今年に入って、在宅ワーカーが爆発的に増えて、孤立化した社員が狙われるケースが増えました。社内のIT部門(を騙る発信者)からセキュリティ上の注意を喚起する通知が届き、詳細をクリックしたら感染した、なんて例も聞きます。普段なら、隣の席の同僚に「こんなの来たんだけど」と確認したり、あるいは内線で担当者に直接訊いたりする人でも、在宅だとつい自分だけで判断してしまう傾向があるようです。

企業側としては、社員のセキュリティ教育の徹底も重要ですが、どれだけ徹底しても、上手の手から水が漏る可能性をゼロにはできないので、同時にバックアップも徹底しなければなりません。

拡大するオンラインコラボ ツールの利用とバックアップの重要性

在宅勤務の常態化により、Microsoft 365などのコラボレーション ツールの利用も急増していますが、米国では65%の企業しかMicrosoft 365をバックアップしていないという調査結果があります。そして、パンデミック以降にファイルのリカバリが必要になった企業は59%に昇るそうです。

ちなみに、Microsoft 365の中でも特にMicrosoft Teamsの利用は劇的に急増していて、先月は一日につき1億1,500万人がアクセスし、昨年比の475%増だそうです。全世界でいかに企業のオンライン コラボレーションへの依存度が増したかがわかります。

Microsoft 365は、企業インフラストラクチャの可用性を確保する独自のセキュリティを提供してくれますが、各ユーザーのデータ保護にはサードパーティによるバックアップを推奨しています。たとえば、Veeam Backup for Microsoft Office 365のようなツールを企業が運用して、コロナ禍でストレスが増した社員一人ひとりの負担を軽減してあげる必要があります。

特に、Microsoft Teamsが独自に提供するバックアップはリテンション期間が短く、企業のコンプライアンス要件を十分に満たせない可能性や、企業独自のコンフィギュレーションが含まれない可能性があります。Veeam Backup for Microsoft Office 365の最新バージョンでは、従来のExchange Online、SharePoint Online、OneDrive for Businessのデータ保護に加え、Microsoft Teamsもサポートされるようになったので、コロナ禍の業務形態の「ニューノーマル」化が見込まれる今、企業がもっとも必要とするツールの1つではないでしょうか。

タグ:

ハイブリッドクラウド・バックアップとは:そしてどのように機能し、どのようなメリットがあるのか!

ハイブリッド・クラウド

ハイブリッドクラウド・バックアップとは、基本的にはローカルバックアップとクラウドベースのデータバックアップの両方の世界を融合させたものです。リモートのクラウドサーバーとローカルのバックアップリソースを系統的に連携・同期させ、災害時にはオフプレミスのリカバリーポイントを提供します。

例えば、会社のローカル共有ネットワーク内のNAS(ネットワーク接続型ストレージ)デバイスにデータをバックアップし、その後クラウド上に自動的にコピーを作成するシステムを設定することができます。

このように、ローカル・ストレージがオンプレミスのプライマリー・バックアップとして機能し、クラウド・サーバーがオフプレミスのセカンダリー・バックアップとして追加の保護を提供します。つまり、災害が発生した場合でも、ハイブリッド・クラウド・バックアップを利用すれば、ローカル・バックアップに障害が発生した場合でも、何かをバックアップすることができす。

それだけではありません。ハイブリッド・クラウド・バックアップには他にも多くのメリットがあります。ここでは、その中でも特に注目すべきものをいくつか紹介します。

ハイブリッドクラウド・バックアップのメリット

●ハードウェアのコストを削減:NAS デバイスやサーバが安くないことは周知の事実です。ローカル・バックアップの設定と維持にはコストがかかります。さらに、データが増えてバックアップの必要性が高まると、ハードウェアのコストは上昇し続けます。しかし、ハイブリッド・クラウド・バックアップ・システムを利用すれば、クラウド・リソースを簡単にスケールアップして、より多くのデータに対応することができます。クラウド・バックアップ・プロバイダーは通常、このような機能をローカル・ストレージ・インフラストラクチャをアップグレードするコストの何分の一かで提供しています。

●ダイナミックなデータ制御:ハイブリッドクラウド・バックアップには、通常、さまざまな種類のデータをバックアップする場所や方法を選択できる柔軟な管理制御機能が搭載されています。例えば、機密文書を分離してローカルネットワークに保管し、その間にユーザ向けのアプリケーションをクラウドにアップロードするようなこともできます。

●バックアップとリカバリの速度の向上:ハイブリッドクラウド・バックアップでは、ミッションクリティカルなデータは会社のローカルネットワーク内で近くに保ち、重要度の低いセカンダリデータはクラウドに保持することができます。したがって、災害時には、ローカルの高速ネットワークを介して直接重要なデータを手際よく復旧することができます。

●インターネットの速度制限の緩和:クラウド バックアップはリモートからアクセスできますが、ダウンロード機能はインターネットの速度に依存するため、ファイルの復元が思うように速くできない場合があります。ハイブリッドクラウド・バックアップは、クラウドストレージを高速なローカルバックアップで補完することで、この問題を緩和します。

●データセキュリティの強化:データセキュリティでの脅威の多くは、エンドポイントデバイスなどのローカルな脆弱性に起因するものであることは周知の事実です。ユーザ・デバイスへの侵入は、すぐにネットワークを介して拡散し、ローカルNASのバックアップまでも攻撃する可能性があります。
ハイブリッド・クラウド・バックアップでは、このようなシナリオを回避するために、ローカルで共有されているネットワークから離れたリモート・サーバーにセカンダリ・バージョンを隔離して保管します。

●複数のクラウドサービスを活用: ハイブリッドクラウドバックアップは、必ずしも単一のクラウドサービスプロバイダに限定する必要はありません。様々なクラウドストレージプロバイダを利用し、それらを統合して1つの合理化されたバックアップフレームワークを形成することができます。

●コンプライアンスを簡素化:ハイブリッド・クラウド・バックアップを実行している場合、法定のデータ規制や基準への準拠がはるかに容易になります。例えば、機密性の高いプライベート データをローカル ストレージに保存し、残りはクラウドに保存することができます。また、ローカル・ネットワークに必要な暗号化ツールがない場合でも、ハイブリッド・クラウド・バックアップを利用すれば、コンプライアンスに準拠したクラウド・サービスを利用できるというメリットがあります。GDPR、PCI、SOX、HIPAAのコンプライアンス認証を取得しているクラウド・プロバイダーと協力して作業を進めることができます。

●冗長性の向上:ハイブリッドクラウドバックアップの最大のメリットは、冗長性の向上です。災害が発生した場合でも2つのバックアップがあれば、ほぼ確実にフルリカバリーが可能になります。ローカルのバックアップが途中で失敗しても、少なくともセカンダリのクラウドバックアップにいつでも切り替えることができます。このように、ハイブリッドクラウドバックアップは、ビジネスデータを保護するための確実なシステムと言えます。

クライムが提供するハイブリッドクラウド・バックアップ・ソリューション:

Veeam Backup for AWS: Amazon EC2インスタンスをエージェントレスで簡単バックアップ、リストア先もオンプレ、クラウド自由自在

Veeam Backup for Microsoft Azure: Azure VMをエージェントレスで簡単バックアップ、リストア先もオンプレ、クラウド自由自在

CloudBerry Backup: クラウドへの安全で確実なバックアップ, Amazon S3やAzureなど様々なストレージへ

Zerto:ハイパーバイザベースのレプリケーション、数秒のRPO、NO スナップショット

タグ:

在宅勤務の急増で待ったなし! クラウドセキュリティの緊急課題を解決するには

コロナ禍をきっかけにリモートワーク(remote work)やテレワーク(telework)が急増したという記事をよく見かけますが、正確に言えば、実際に増えたのは在宅勤務(work from home)です。リモートワークなら、出張所の職員は常にそうだし、テレワークも、リモートワークよりは「臨時」感が強まるものの、ほぼ同義です。どちらも「遠隔地での仕事」に変わりはありません。それに対し、在宅勤務は「じぶんち」で働くわけで、リモートワークの一形態にすぎませんが、じぶんちは他よりも特殊な環境です。何よりも、そこには自由があります! 服装も自由。髭も伸ばし放題。ビデオ会議のときは上半身だけ身なりを整え、マスクをすれば問題なし。仕事に疲れたら、ふぅ…とため息をついて、「おれ、この仕事、向いてるのかぁ」と呟きながら、占いサイトで仕事運などもチェックできます。そう、独り言呟き放題なのも在宅勤務の特権です。が、息抜きに個人的なサイトを眺めるのは、あまりおすすめできません。

在宅勤務の急増で、企業のサイバーセキュリティ リスクも急増していますが、その主な原因は社員が息抜きに個人的なサイトを閲覧するからだそうです。会社のパソコンを通じた「いかがわしい」サイトへのトラフィックが、コロナ禍で6倍に増えたという、米クラウドセキュリティ企業の調査結果もあるぐらいです。

でも、この手の調査は、グローバルと銘打ってはいるけど、その対象に日本がどの程度含まれているのかはよくわかりません。日本の場合、在宅勤務のスペースが限られていることもあって、むしろリスクが高いのは、コーヒーショップなど、ネットがセキュアされているのか、誰が見ているのかわからない環境で仕事をすることではないでしょうか。そう言えば、半沢直樹も、居酒屋などの3密環境で重大機密をけっこうな大声で話し合っていました。いろんな意味でハイリスクです。

話がそれましたが、要するに、ユーザー(社員)側のリスクが高まっている以上、そのアクセス先となるクラウド側のセキュリティは今まで以上に強化しなければなりません。

クラウドセキュリティアライアンスが今年3月から5月にかけて200社以上を対象に行った調査によれば、83%の回答者がクラウドのセキュリティを最優先課題に挙げ、90%が何らかのクラウド セキュリティ ツールを使用しているそうです。しかし、その半数が人材不足でセキュリティ ツールを十分に使いこなせていないと答え、34%がセキュリティツールの複雑さが障害になっていると回答しています。にもかかわらず、セキュリティツールを使用している企業の3分の1は複数の製品を併用しているそうです。

複数の製品をどのように使い分けているのか、詳細は明らかではありませんが、思い当たるのは、たとえば、アクセス制御と暗号化に別々の製品を使うことでしょうか。それぞれを使いこなすために専門知識が必要になり、人材不足で本来使えるはずの機能を使いきれず、また別のシステムを継ぎ当てて複雑さが増す、とうような悪循環に陥っているのかもしれません。

クラウドにセキュリティツールを導入するときは、複雑化を避けることが重要なポイントになるようです。たとえば、HyTrust 製品のように、パブリッククラウドとプライベートクラウドのさまざまなサービスに一様に対応できて、それぞれのユーザーインターフェースから制御できるしくみなら、IT管理者がセキュリティツールのために学習しなおす必要がなく、すぐに効率よくセキュリティを強化できます。

コロナ禍が長引いて、今後も在宅勤務が常態化する見込みもある中、クラウドセキュリティの強化を考えている企業は、マルチクラウドのサポートとラーニングカーブの緩やかさ、そしてアクセス制御や暗号化など、幅広いニーズに対応できる製品を選ぶことがクラウドセキュリティ強化への第一歩であり、その後の運用を左右する最大の一歩なのではないでしょうか。

Kubernetesネイティブのススメ

Kubernetes環境への円滑な移行は、遅かれ早かれIT部門が直面する課題。でも、そこには思わぬ落とし穴も・・・

コンテナ環境、特にKubernetesの普及が近い将来一気に進む可能性のあることは、前回のブログ「国内企業のコンテナ普及率が二桁の大台に」で取り上げました。

当然ながら、既存の環境からKubernetes環境への移行をいかに円滑に、効率よく進めるかが、各企業のIT部門が抱える喫緊の課題になってくるはずです。

そこで陥りがちな過ちは、既存の環境に合わせたデータ保護ソリューションを、新しいKubernetes環境にそのまま当て嵌めてしまうことです。これは当事者の立場になって考えたら、致し方ないことです。さんざんお金と時間と労力をかけて築き上げた、すでに機能しているツールを、そのまま使いたくなるのは人間のさがです。

それに、Kubernetes環境に展開されたアプリケーションは、Kubernetes自体の機能で複数のサーバーに分散され、パフォーマンスの最適化と障害耐性が確保されるわけで、アプリケーションのコンポーネントとデータの管理はKubernetesに任せれば良いという考え方も成り立ちます。それを包含する従来のインフラストラクチャに対して、従来のバックアップとリカバリのソリューションを適用すれば、Kubernetesの導入完了、これで我が社もクラウド ネイティブの仲間入り!と言えないこともありません。

でも、ここは慌てず、一歩下がって冷静に戦略を俯瞰してみてください。

まず、Kubernetesによるアプリケーション コンポーネントの分散管理は流動的です。全体のバランスに応じて配置が常に調整しなおされ、IPアドレスもその都度変わる可能性があります。既存のバックアップとリカバリのソリューションがそれに対応できるでしょうか?

まして、Kubernetesがアプリケーションを複数サーバーに分散するとき、別のアプリケーションが部分的に同一のサーバーに共存することが少なくありません。Kubernetesは、個々のアプリケーションの視点から、その全コンポーネントを管理するので、各サーバーに何を任せるかという役割を固定するような従来式の既成概念はありません。インフラストラクチャの視点に立つ従来式のバックアップ ソリューションには手に余るどころか、ほとんど異次元の世界にならないでしょうか? 「まったく今どきの若いもんは一体何を考えているのか」と、従来式ソリューションのぼやきが聞こえてきそうです。

Kubernetes管理下に置かれたデータベースも含めて、まるごと全部バックアップしちゃえば済む、というアイデアもあるかもしれません。でも、仮にアプリケーションにコーディングのミスがあって、それが誤ってデータを削除してしまうようなミスの場合、データのバックアップが独立していないと、気が付いたらバックアップのデータも欠損していたということになりかねません。Kubernetesが良かれと思ってコンポーネントをレプリケーションして、あちこちのサーバーに再現したら、データ喪失の被害が拡大する危険性も否めません。

結論を言うと、Kubernetes環境のデータ保護は、Kubernetes専用ソリューションに任せたほうが安全です。Kubernetes特有の、柔軟にスケーリングして臨機応変に配置換えする動的な環境構成に対応でき、アプリケーションの視点からデータを管理できるツールが理想的です。

そして、データセット全体の完全コピーを単独で保持できるしくみも重要です。Kubernetes環境のデータサービス オプションはいろいろありますが、この観点から言えば、Kubernetes独自のAPIを通じて、外部ストレージでデータを管理するのが理想的と言えます。

もっと言えば、Kubernetesの導入と同時に、CI/CDパイプラインを実装して、前述のコーディング ミスのような状況を開発プロセスの早い段階で除去できるしくみを確立できたら、なお良いです。欲を言えば、きりがないですが・・・

とりえあず、Kubernetes専用のデータ保護ソリューション(特にKasten K10のようなアプリケーションの視点からデータを管理できるツール)の採用は、ぜひ検討してみてください。

国内企業のコンテナ普及率が二桁の大台に

Image by Sasin Tipchai from Pixabay

Kubernetesがコンテナ環境のデファクトスタンダードに

コンテナの実用化がどれだけ進んでいるのか、具体的な数字を見たいと思い、IDC Japanの「2020年 国内コンテナ/Kubernetesに関するユーザー導入調査結果」を参照してみました。コンテナの普及は、昨年までは非常に緩やかなものでしたが、今年2月に458社を対象に行われた調査では、コンテナを本番環境で使用している企業が初めて二桁の大台に乗り、導入に前向きな企業までを含めると全体の7割に達する勢いで急上昇しています。

一方、「コンテナ?うちは物流会社じゃないよ」と答えたかどうかはわかりませんが、そもそもコンテナを知らないと回答した企業ははじめて一桁になり、しかも20.9%とから7.9%に激減しているので、コンテナの認知度は確実に高まっているようです。

そして、Kubernetesですが、コンテナを本番環境で使用している企業と導入構築/テスト/検証段階にある企業を対象にした調査では、54.7%がKubernetes(コミュニティ版)を使用し、24%がKubernetesを含むRed Hat OpenShiftを使用していると回答したそうです。ほぼ8割が何らかの形でKubernetesを使用しており、コンテナ オーケストレーション ツールはKubernetesの一人勝ち状態のようです。

ちなみに、世界に目を向けると、CNCF(Cloud Native Computing Foundation)が昨年1337社を対象に行った調査で、コンテナを本番環境で使用している企業はすでに84%だそうです。2016年に23%だったので、日本は大体4、5年遅れていると言えます。

ということは、ここから4、5年で日本も80%ぐらいまで激増するかもしれません。新技術の導入にはより慎重な日本企業が、ひとたび導入障壁を超えたら、一気に浸透する可能性は十分にあります。これをマーケティング用語で「キャズムを超える」と表現するらしいです。キャズム(chasm)とはもともと地割れのような溝のことを指します。底が深くて暗いので、向こう側に飛び移るには大変な勇気が要ります。でも、実際には飛び越えられない距離ではないので、ひと思いに飛び越えてしまえば、あとは自由に走り出せるイメージなのでしょう。

だから、あなたも勇気を出して思い切りジャンプしてみましょう!なんて無責任なことは言えませんが、市場動向として急増の兆しがあるのは事実です。まだ開発環境をコンテナ化していない企業は、一気に実用化を目指さなくても、調査/検討はしておくに越したことはないでしょう。

今からコンテナを導入するなら、同時にKubernetesの導入を検討すべきことは、調査結果からも理解できます。まずはコンテナ、そのあとKubernetesと段階を踏むと、インフラ設定が二度手間になったり、Kubernetesのためのやり直しが生じかねません。また、Kubernetes環境のデータ保護やセキュリティ管理のツール(たとえば、Kasten K10)の導入も同時進行で検討すべきです。その辺りの背景は「Kubernetesへの移行を成功させるには」で考察されているので、ご参照ください。

テレワークの歴史

テレワークの歴史を時代とともに遡ってみたいと思います。と言っても、米国やカナダ企業での個人的な経験です。すべての会社に当てはまるわけではないし、どの時代が良いというわけでもありません。いつだって「古き良き」時代があって、後で合理的に判断したら古い時代のほうが理にかなっていた、ということもあります。ここでは、ただ単に辿った経路を書き出して、これからそれをなぞるかもしれない職場の参考になればと思います。

理由はひとえに新型コロナウイルスです。今後、収束しても、インフルエンザのように毎冬職場で誰かしら一人か二人(あるいはそれ以上が)罹るような身近な病気として共に生きていかなければならない可能性もあります。だとしたら、テレワークは今だけの臨時の措置ではなく、これからのワークスタイルとして必須になります。

原始時代

テレワークの初期の形態 = 仕事を自宅に持ち帰る、をやり出したときは、家でできる種類の仕事だけをディスクに入れて持ち帰り、自宅のパソコンでやっていました。たとえば、設計仕様書やユーザーマニュアルなどの文書類の執筆です。これを週末にやるのは単なる残業です。通常の業務時間内にやって、はじめてテレワークと言えます。特別な事情があるときのみ、申し訳なさそうにやっていました。

黎明期

社員にノートパソコンが支給されるようになりました。自宅のパソコンを使わないだけでも相当にセキュリティは向上します。原始時代には申し訳なさそうに自宅で仕事をさせてもらっていたのですが、ノートパソコンを渡されたら「自宅でもやれ」と言われているようなものなので、申し訳なさは格段に減りました。ただし、前述の週末に持ち帰る(テレワークではないただの残業)も増えました。

成長期

社員全員のノートパソコンがエンクリプト(暗号化)され、仮想デスクトップで仕事環境につなぐようになりました。出社しようが、家にいようが、必ずそれをするので、基本的に出社することの意義は「人に会う」以外では薄れました。ほぼなくなったと言うべきですが、家のネット環境と会社のとでは違うし、モニターの数とか大きさ、キーボードの打ちやすさなど、個々に環境の違いは否めません。家にいると仕事していないと、上司にではなく家の者に思われる傾向があって、何かと頼まれごとをするという難点もありました。

成熟期

会社に自分の机がなくなりました。会社の経理は社員一人に付き机1台分いくらとコストを計上します。どうしても会社にオフィスを構えたい社員はそれだけコストのかかる社員です。つまり、この頃からテレワークが会社の経費削減になるという認識が広まりました。出社すると、図書館のように空いている机を探します。仲の良い人同士で隣に座ったり、嫌いな上司から離れて座ったり、小学生に戻ったような、社会人としては若干退化した感はあります。せっかく出社したのに上司と違うフロアに座って、「今どこ?」とチャットが入ったら「自宅です」と答える人もいました。これぞ本末転倒、何のための出社?と訊きたくなりますが、「ずっと在宅でさみしくなったから同僚に会いに来た」とたまに予備校に顔出す浪人生のようなことを言っていました。チームの大半が海外にいたりして、そもそも同じ屋根の下に集まることなど有り得ない状況だったせいもあります。

衰退期

やたらコラボレーションが叫ばれ始めました。アジャイル開発とか言って、毎日会議するようになって、現場で打ち合わせしながら進め、微調整を繰り返すことが求められるようになりました。つまり、顔を出すことの価値が急に大復活しました。スクラムマスターが常にモニターに顔を映し出して、その脚付きモニターがオフィス内を自由に移動して声をかけ回る職場もありました。勝手に壁にぶち当たってモニターが倒れ、「あれ、なんか天井しか見えないんだけど、みんなどこ?」とスピーカーが叫んでいるのに、誰もそれに構わない放置プレイも横行しました。

この時期は必ずしも衰退期ではなく、スタッフも依然世界に散らばり、会議は相変わらずオンラインでした。テレワークとコラボレーションを両立させるため、一日6、7件、朝から晩まで会議という日も多く、遠い世界を夢見るようになりました。中学で合唱した「気球に乗ってどこまでも」がしきりに頭の中で流れていた時期でした。

これは個人的な体験談なので、テレワークの歴史のほんの一例に過ぎません。つまり、一度は完全定着したテレワークが、コラボレーション重視の潮流で後退し、職場に集まることの意義が見直される時期もあったのですが、それを新型コロナウイルスが完全に元に巻き戻しました。

課題は、テレワークとコラボレーションの両立なので、個々の役割を明確にし、どの部分でどれぐらい連携するのかを決めておくことが重要なのではないかと思います。

仕事環境のキーワードとしては、暗号化などのセキュリティとVDI(仮想デスクトップ)、クラウドの高可用性(HA)でしょうか。ウイルスに負けずに経済を盛り上げるには、ワークスタイルを変えなければならないので、テレワークの環境整備は避けて通れない道です。

「VMwareがついにvSphere 7を発表 ~真のハイブリッド クラウドを実現」のつづき

前回の記事では、vSphere 7の新機能の中でも、特にvSphere with Kubernetesに焦点を当てました。しかし、そこでも言及したとおり、vSphere 7はKubernetesに関心のないユーザーにとっても、非常に大きなリリースで、vSphere with Kubernetesは機能拡充された主な7分野の中の一つに過ぎません。

今回は、残りの6分野を紹介していきます。

Improved Distributed Resource Scheduler(DRSの改良)

vSphereのDistributed Resource Scheduler(DRS)はこれまでクラスタ単位で機能し、vMotionによるクラスタ内のバランス調整を通じて、クラスタ全体のパフォーマンスを最適化する働きがありました。それに対し、vSphere 7の新しいDRSは、ワークロード単位で各VMの負荷を測定します。下図のように、複数のホストにおけるVM DRSスコアが弾き出され、もっとも高いスコアのホストにVMを移すなど、VMを常にベストの状態で稼働させるための適正な配置が可能になります。vSphereはもともと大きなワークロードへの対応に優れていましたが、このDRSの機能拡充により、ハイブリッド環境においても、より大きなワークロードをより効率よく実行できるようになります。

Assignable Hardware(ハードウェア自動割り当て)

Assignable Hardwareとは、ごく簡単に言えば、ハードウェアのリソースに応じた自動割り当て機能です。ハードウェア アクセラレーションを活用してvSphereの機能の効率化を図るユーザーをより強力にサポートするために開発されたシステム統合の新しい枠組みです。具体的には、NVIDIAの仮想GPU(vGPU)やPCIeによるPCIパススルーを活用する仮想マシン(VM)に対して、vSphere DRS(クラスタにおける初回のVM配置)とvSphere High Availability(HA)サポートの有効利用を可能にします。これまで、PCIeなどのハードウェア アドレスは各VMのコンフィギュレーション(vmx)ファイルにハードコードされていましたが、vSphere 7では、Dynamic DirectPath I/OがPCIeデバイスを直接VMで利用可能にし、状況に応じた柔軟な割り当てを実現します。その結果、DRSやHAのサポートが有効に働き、vSphereの機能性と効率性が大幅に広がります。

vSphere Lifecycle Manager(vSphereライフサイクル管理の強化)

vSphere 7には、vSphereのライフサイクルを管理しやすくするさまざまな機能が追加されました。たとえば、「desired state(あるべき状態)」を基準とするコンフィギュレーション モデルが採用され、一度コンフィギュレーションを適用したら、vCenter Server ProfilesとImage Cluster Managementによってdesired stateが継続的にモニターされます。

vCenter Server Profilesでは、すべてのvCenterサーバーのコンフィギュレーションを標準化してモニターし、コンフィギュレーション ドリフトを防ぎます。

Image Cluster Managementは、クラスタ単位でイメージを作成して、クラスタ内のホストがどのようにコンフィギュレーションされているかを記録します。クラスタ イメージには、vSphere(ESXi)リリース、ベンダーのアドオン(ESXiの基本イメージとOEM ISOの差異)、ファームウェアのアドオン(これによりvSphere Lifecycle Manager がDell OMIVVなどのファームウェア管理ツールと連携)が含まれます。現時点でのパートナーはDell EMCとHPEですが、今後さらに増える見通しです。

Refactored vMotion(vMotionの改良)

前述のとおり、DRSが大きく改善されたのにともない、vMotionのプロセスも拡充されました。これまで、巨大なメモリーとCPU消費を必要とするVMのライブ マイグレーションには課題があり、vMotionのパフォーマンスはもちろん、ホスト間のスイッチオーバ―にも遅れが生じることは否定できませんでした。

このような重いVMの処理を改善するために、vSphere 7では数々の新しい技術が導入されました。たとえば、マイグレーションのメモリーのページングを追跡するページ トレーサーです。これまで、この作業はVM内のvCPUが担っていたため、マイグレーションそのものがVMとワークロードの負荷を増やしていました。vSphere 7ではページ トレーシング専用の特別なvCPUが設置され、VMはvMotionの処理中も特別な負荷を受けることがなくりました。

さらに、vSphere 7ではメモリーコピーのプロセスが改善されました。これまで、ホスト間のメモリー移転にはページサイズ4kが使用されていましたが、vSphere 7では1GBに拡大され、その他の最適化も施されました。それにより、データ転送が大きく効率化され、ホスト間のスイッチオーバーにかかる時間を常に1秒以内に抑えるという目標が達成されます。重いVMではビットマップの転送に時間がかかり1秒以内を達成するのが困難でしたが、必要なページだけを移転することによる効率化も実現しました。

Intrinsic Security(内在する本質的セキュリティ)

セキュリティを強化するいちばん手っ取り早い方法は、MFA(多要素認証)の導入です。しかし、MFAにも多様な形式があり、それをすべてvCenterサーバーに組み込むことはできません。仮に、VMwareでいくつかの形式を網羅したとしても、各ユーザー企業がすでに使用しているID管理システムと重複したり、あるいは矛盾するなど、vSphere管理者の作業を複雑化する恐れがあります。

そのような課題も、OAUTH2やOpenID Connect(OIDC)など、認証・認可のオープン スタンダードを活用することで解決できます。vSphere 7では、vCenterサーバーが企業IDプロバイダと直接連携でき、vSphere管理者の作業が劇的に単純化されます。アクティブ ディレクトリ フェデレーション サービス(ADFS)などもそのままサポートでき、より多様なMFA方式への対応が可能になります。今後もさらに多くのプロバイダとの連携を進める見込みです。

そのほか、vSphere Trust Authority(vTA)などの技術も導入され、vSphere 7のセキュリティ機能は目覚ましい進化を遂げ、VMwareの掲げるintrinsic(内在する本質的な)セキュリティを実現しています。

以上、vSphere 7の新機能を簡単に紹介してきましたが、これらはあくまでも概要に過ぎません。vSphere 7は、ハイブリッド環境を全面的にサポートするために抜本的な改良が加えられた革新的なリリースであり、ここでは紹介しきれなっかった数々の新機能が追加・拡充されています。当ブログでも、今後も随時紹介していけたらと思いますが、詳細はVMware vSphere Blogの各記事をはじめとするVMwareのリソースを参照してください。

VMwareがついにvSphere 7を発表 ~真のハイブリッド クラウドを実現

VMwareが3月10日にvSphere 7のリリースを発表しました。VMware曰はく、「the biggest release in over a decade(ここ十数年で最大のリリース)」だそうです。この「最大」の意味するところは、下記の7分野における大幅な機能強化を示唆しますが、中でもKubernetes対応がここ数年の課題であり、それをついにクリアしたことがVMwareにとってのマイルストーンだという意味合いが多分に含まれていると推測します。要するに、vSphere 7は、コンテナの活用、クラウド ネイティブ環境のサポート、延いてはKubernetesのネイティブ サポートを目指したプロジェクト パシフィックの結実だと言えるのではないでしょうか。

とは言え、vSphere 7の新機能は下記の7分野に渡り、決してKubernetes対応のためだけのリリースではありません。Kubernetesを利用しないユーザーにとっても、十分に「最大のリリース」であることは間違いありません。vSphere 6時代が長かったから点からも、VMwareが積み上げて来たものが想像でき、それにたまたまKubernetesという大きな潮流が時代の流れとして一致したと言うべきでしょう。

とりあえず、本稿ではvSphere with Kubernetesに焦点を当て、見ていきたいと思います。

vSphere with Kubernetes

VMwareの発表する記事をいろいろ読むと、「ネイティブ」という言葉が再三目に留まります。Kubernetesを「ネイティブ」にサポートできるようになったという文脈です。この「ネイティブ」は「そのまんま」と解釈して良いと思います。かっこよく言えば、「ありのーままのー♪」です。節は付けなくてもいいですが。

Kubernetesをそのまま活用できることは非常に重要で、これによりVMwareは既存のKubernetesユーザーにも完全対応できるし、Kubernetesをこれから取り入れようとしているvSphereユーザーにも対応できます。もちろん、Kubernetesなんてどこ吹く風ユーザーもこれまでどおり対応できるし、Kubernetes的な取り組みを考えているユーザーにも対応します。

つまり、KubernetesによってDevOpsモデルを実現しているアプリケーション開発者が、vSphereで確立された仮想インフラを利用でき、また、仮想インフラの管理者もこれまで培った知識を応用してKubernetesインフラをサポートでき、長年分断されてきた2つの世界が、互いに特別なスキルアップをせずとも統合できるようになります。言うなれば、vSphere 7は東西ドイツを分断してきたベルリンの壁を崩壊させたハンマーようなものです!(話が古く大きく逸れましたm(_ _)m)

具体的には、Kubernetesネイティブ サポートの部分はTanzu Kubernetes Grid Serviceによって実現されます(下図のTKGクラスタ)。VMwareが提供するKubernetes完全準拠のサービスで、Kubernetesユーザーはコンテナ化されたアプリケーション開発をすべて「そのまんま」継続できます。

完全準拠ではなく、Kubernetes的なコンテナ管理をvSphere Pod Serviceで実現するオプションもあり、ハイパーバイザー上のVM的な孤立化でセキュリティとパフォーマンスを最適化できる利点があります。

このような、コンテナとVMの共存はNamespaceという新しいvSphereコンストラクトで実現され、このハイブリッド環境を包括的にサポートするのがVMware Cloud Foundation 4です。

このハイブリッド環境を管理する上で重要になるのが、vSphereの新しい「application-focused management(アプリケーション中心型管理)」です。VMwareの記事によれば、「vSphere管理者が、複数オブジェクトを論理的なグループにまとめ、そこにセキュリティ ポリシーやストレージ上限設定を適用できる」と書いてあります。つまり、マイクロサービスを実践する環境では、アプリケーションの構成要素がさまざまなコンテナに分散されるので、それに個々にポリシーを適用するのは不合理です。vSphere 7は、ハイブリッド環境内に散らばる各種リソースを、アプリケーションの視点から一まとまりのグループとして捉えることができ、一括管理できるようになった、と解釈できます。そのハイブリッド環境には、VMはもちろん、Kubernetesクラスタも含まれるのですから、vSphere のアーキテクチャはたしかに抜本的に見なおされ、その結果生まれたvSphere 7は紛れもなく「最大のリリース」であると言えそうです。

歴史は繰り返す in クラウド

クラウド ネイティブの環境とは、文字通り読めば、クラウドに完全適合し、その特性をフル活用できる環境ならすべて「クラウド ネイティブ」です。でも、実際には、特にマイクロサービスのコンテナ環境を指すことが一般的です。それを英語では、しばしばNew Stackと呼びます。つまり「新しいスタック」ですが、この呼び名がしばらく続いてNewじゃなくなった頃にLegacy Stackになるのか、あるいはニューミュージックが懐メロになってもまだニューミュージックであるように、はたまた昭和の香り漂うニュートーキョーがずっとニュートーキョーであるように、いつまでもNew Stackと呼ばれ続けるのかどうかはわかりません。

ただし、その成り立ちは必ずしもNewではなく、過去の成功例を巧みに踏襲している、と指摘するコラム記事を見かけました。「歴史は繰り返す」という法則にもとづき、クラウド ネイティブのコンテナ環境が今後目覚ましい成長を遂げる可能性について論じられています。非常におもしろい着眼点なので、ここで紹介したいと思います。

同記事では、New StackとTCP/IP Stackを比較しています。TCP/IPは、それが最初に導入された段階から、その後インターネットが世界を席巻する土台となるのにふさわしい巧みなデザイン構成が成されていた、という話です。結果的にうまくいったのか、先見の明があったのかは書かれていません。たぶん半々ではないかなという気がします。いずれにしても、そのデザインはすでに通信分野の発展の基礎となっているので、それが計画的なのか否かはここでは重要ではありません。重要なのは未来です。TCP/IPが通信分野の発展に寄与する理由となったのと同じ要素を、New Stackが備えていて、New Stackも今後、想像を超える凄まじい発展を遂げるかもしれないという理論です。

前置きが長くなりましたが、まずはTCP/IPのデザインから。

TCP/IPスタックは抽象的な各種通信レイヤーに分けられ、その区分けが潜在的な問題を孤立化させ、総体的なシステムの複雑化を防止しているそうです。すなわち、アプリケーション層、トランスポート層、インターネット層、リンク層に分けられ、各種技術の開発が各レイヤーで独立して並行に行われ、互いの制約を受けないことが大きな発展につながったそうです。

さらに、各レイヤーにはモジュール式に独立したプロトコールが用意され、ユーザーに選択の自由が保証されました。各レイヤーで使用できる主なプロトコルは以下のとおりです。

この「選択の自由」が、通信分野の技術革新をさらに加速させたと考えられています。これを選んだら、あれも選ばなければいけないとか、他のレイヤーとの兼ね合いが大事だとか、いろいろ注文をつけられたら技術者のやる気が削がれて、さほど技術革新が進まないということでしょう。いや、やる気の問題ではなく、制約がないことのほうが重要なのでしょう。テクノロジーの翼を大きく広げ、大空に自由に羽ばたいたのです(ちょっとかっこよく言ってみました)。

これと同じ原理が、クラウド ネイティブのNew Stackのデザインにも当初から組み込まれていると、同記事は指摘しています。

潜在的問題の分離+モジュール構成=シンプル+選択の自由

TCP/IPが各レイヤーに区分されたように、New Stackも以下のように機能別に分化され、潜在的な問題の孤立化が可能なしくみになっています。

  • インフラストラクチャ層 ― ストレージ、コンピュート、ネットワークを支えるレイヤー
  • Kubernetesデプロイメント層 ― インフラストラクチャを抽象化し、ワークロードをスケジュールで制御
  • Kubernetesプラットフォーム アドオン層 ― Kubernetesの機能を補い、データとワークロードのセキュリティとスケーラビリティを提供
  • データサービス層 ― クラウド ネイティブ アプリケーションに適切なデータベースを提供

そして、New Stackをモジュール式に個々に独立してサポートするさまざまな実装オプションが存在します(下表参照)。クラウド ネイティブ環境はもともとマイクロサービスとして、互いに依存度の低いサービスの集合体なので、個々のサービスがデータベースやライブラリを共有する必要がありません。つまり、各レイヤーがその機能に適したツールを選択する自由が保証されているのです。それが単一のソリューションやベンダーに縛られない柔軟性と、開発環境の効率性および拡張性をもたらすというわけです。

長い目で見た場合、優れた設計とは、複雑化を極力排除しながら、選択の自由は排除しない設計なのだそうです。レイヤー区分で潜在的な問題を分離させ、モジュール式に選択の自由を保証して将来的な技術革新への余地を残せば、ニーズの変化や、業界の再編など、将来の予期せぬ変革にも動ぜずに継続的な発展が可能になる、ということです。それを、TCP/IPスタックが身をもって証明していて、奇しくもそれと同じ設計原理がクラウド ネイティブ スタック(New Stack)にも端から組み込まれている、というわけです。TCP/IPの基礎が後に1990年代、2000年代のインターネットの爆発的な普及を可能にしたように、もしかしたら、今後10年20年、クラウド ネイティブが世界を席巻するかもしれない、という夢のあるお話でした。先行投資するなら今からでも遅くない!!(利回りの確約は致しかねます m(_ _)m)

タグ: , , , ,

データ保護をストレージ任せにすべきではない理由

クラウドネイティブなストレージ システムが飛躍した2019年

マイクロサービスのコンテナ環境においては、データベースをどこに置くかという問題がたびたび議題に上がります。たとえば「ステートフルとステートレスの違い」の記事でも言及したように、ステートフル アプリケーション(すなわちデータベース)はKubernetes環境においてコンテナ化も、コンテナ アーキテクチャ内の永続ボリューム(Persistent Volume)に置くことも、コンテナ ストレージ インターフェース(CSI)を通じて、外部ストレージに置くことも可能です。

特にCSIは2019年にKubernetesでの使用が本格化して、この「データベースをどこに置くか」問題に光明をもたらした形になり、コンテナ環境に特化したデータサービスにストレージ ベンダーが次々と名乗りをあげました。2020年も引き続き、Kubernetes対応のクラウドネイティブなストレージ システムが躍進する年になるでしょう。

この流れからデータベースのバックアップや災害復旧(DR)などのデータ保護ソリューションを考えると、ごく自然にストレージ システムの機能に依存したくなります。ストレージ システムでバックアップのスケジュールやリテンション期間などのポリシー設定ができ、DRソリューションとしても十分な機能性が備わっていれば、当然それを利用したほうが合理的です。

理由1: 特定ストレージに依存するリスク

しかし、長い目で見た場合、1つのストレージ ソリューションに依存すると、将来的な拡張性に制約が生まれる危険性があります。特にクラウドネイティブ環境においては、複数のアプリケーションを個々に隔離してインフラストラクチャの制約から解き放ち、拡張性を確保するのがマイクロサービス本来の特長です。それが結局、特定ストレージ ベンダーに縛られてしまっては本末転倒になってしまいます。

理由2: アプリケーション単位のビジネス要件

さらに、この個々に隔離されたアプリケーションには個々に特有のビジネス要件がともないます。先に挙げたバックアップのスケジュールやリテンション期間のポリシー設定は、アプリケーションとデータベースの組み合わせごとに異なる場合も考えられます。ストレージに置かれたデータベースだけをバックアップすれば十分という見方もありますが、たとえ現在はそれで十分でも、将来的にはデータが複数ストレージにまたがったり、同一アプリケーションから複数データベースを参照したり、そのデータベースの配置が多様化する(永続ボリュームや異なるストレージ システムの使用などの)可能性もあります。クラウドネイティブ環境ではインフラストラクチャの抽象化によるソフトウェア定義のストレージやデータ管理システムなど、さまざまなオプションが増え続けています。この流動的なIT環境に対して、現段階で将来的なオプションを制限してしまうのは得策ではありません。将来利用できるかもしれないオプションが利用できなくなるもったいなさもそうですが、それ以上に、新しい技術やそれがもたらす効率化を利用できなくなることの損失のほうが大きいです。

理由3: 問題の隔離

また、ストレージをまるごとバックアップする場合、不要な部分も含めてしまう非効率さも気になります。そして、もっと深刻なのが、人為的なミスや外部からの攻撃で何らかのエラーが生じた場合に、それがバックアップに影響してしまうリスクです。特に注意すべきなのは、ストレージ システムのデータ保護ソリューションが「レプリケーション」と「バックアップ」の異なるコンセプトを混同しているケースです。高可用性を確保するために常時レプリケーションが行われる環境で、前述の危険因子もすべて修正する間もないままレプリケーションされる可能性があります。バックアップとは本来、履歴を遡って直近のクリーンなデータをリストアしなければならないのに、それが現時点の問題をそのまま含んだ同一データをリストアするのでは意味がありません。

アプリケーション視点のデータ管理

以上の理由から、特にクラウドネイティブなコンテナ環境では、アプリケーションの視点から、その根底にあるデータベースも含めて全体を抽象化して管理するデータ保護ソリューションがより有効だと考えられます。2020年はKubernetesの普及が進み、さらにCSIの導入でクラウドネイティブ仕様のストレージ オプションもますます増えていくことが予想されます。だからこそ、ストレージの視点からデータを管理するのではなく、アプリケーションの視点からデータを管理して、特定ストレージに縛られない柔軟性と拡張性を将来的に確保しておくことが重要です。

タグ:

KubeCon + CloudNativeCon North America 2019 に参加して

KubeCon + CloudNativeCon North America 2019が 今年の11月19日から21日まで米国西海岸のサンディエゴで開催されました。

本来はCloud Native Computing Foundation(CNCF)がサポートする各プロジェクト全体のコンファレンスであるが、どうしてもKubernetes (以下8KS)がメインになっています。

キーノート・セッションの主要な概略を紹介します。

会場の様子

現在273の企業がK8Sをサポートし、多くのエンジニアが開発加わっています。

K8S以外のプロジェクトで注目したものが2つ:

Open Policy Agent (OPA): クラウド・ネイティブ環境用のポリシー・ベースの管理環境

Vitess: MySQLベースでK8S用のデータベース・プロジェクト

今回VitessはK8Sから卒業して、単独のプロジェクトに昇格

k8Sのユーザ事例x3社を紹介

●Wallmart:世界的な小売り企業

Target:こちらも北米を中心とする小売業

両方とも小売業でPOSを含めると使用台数が巨大ユーザ

China Mobile:現在、中国50都市でG5を展開し、K8S使用中

最後にCo-chairmanからK8Sは目的地では無く、目的地に行くための車だという言葉がこのプロジェクトの意味を物語っています。

多くの参加企業がK8Sをより良いものにして、それを自社製品に絡めて売上を上げたいという意図は見えますが、ここでは競争ではなく、協調の場所だというコメントをプレゼンターの一人がしていました。まさにその通りです。

また今後のクライムのK8Sへの取り組みにご期待ください。

タグ: , , ,

11/7開催Webセミナー「Windows 2008/2008 R2サポート終了の前に EOS対策セミナー」

※11月7日に開催されたWebセミナーの録画です。

Windows 2008/2008 R2は2020年1月14日でサポート終了(EOS)となります。対策はお済みでしょうか?
本セミナーでは、Windows 2008/2008 R2のEOS対策として、Azureへの移行ツールをご紹介します。
※Windows 2008/2008 R2をAzureへ移行することで3年間のセキュリティアップデートを無償で受けられます。

また、2019年7月9日でサポート終了となったSQL Server 2008/2008 R2の対策として、SQL Serverの上位バージョンやOracle、PostgreSQL、MySQLなどの異種DBへの移行ツールもご紹介します。

使用したプレゼン資料をSlideShareでも公開しています。

https://www.slideshare.net/climb_soft/climbwindows-20082008-r2-eos
タグ: , , , , , , , , , ,

コンテナ+VM 共存論の大転換

VMware “Project Pacific”

前回のブログでコンテナと仮想マシン(VM)の共存について書きました。コンテナとVMは相反する存在で、コンテナの普及によりVMが不要になる、という見方も根強い中、両者の共存の可能性とその利点を解説する内容でした。単純に言うと、VM内にコンテナを実現すれば、ホストから切り離されたVMの安定したセキュリティをコンテナで享受できる点が両者共存の最大の利点です。すでにVMを活用している企業が、既存のインフラにそのままコンテナを導入できるという現実的な側面もあります。

ただし、この共存論では、コンテナ オーケストレーション ツールの存在が省かれています。存在しないと仮定したわけではなく、コンテナがVMに内包されるのなら、コンテナ オーケストレーションも当然VM内部で通常どおり機能するわけで、その存在に特に言及する必要がなかったのです。それは、あくまで、コンテナ オーケストレーション ツールの役割は複数コンテナの起動を調整すること、と仮定した場合です。

現実には、Kubernetesをはじめとするオーケストレーション ツールにはそれ以上の働きがあります。たとえば、アプリケーション全体の「あるべき状態(desired state)」がIaC(infrastructure as code)のように記録され、それを自動的に実現する仕組みはCI/CD(継続的インテグレーション/継続的デリバリーまたはディプロイメント)をサポートする重要な機能で、コンテナ環境が「クラウド ネイティブ」と同義になっている所以です。

また、KubernetesをVM内に留めたのでは、ノードをまたがるオーケストレーションというより大きな柔軟性と拡張性が発揮されず、マイクロサービスが有効にサポートされていないという声もあります。

つまり、前回のコンテナVM共存論は、個々のワークロードを独立させて整合性や互換性の問題と切り離すというコンテナそのものの利点は活用できるものの、マイクロサービスとCI/CDをサポートするクラウド ネイティブの視点が省かれています。そして、クラウド ネイティブでないコンテナなんて、コンテナである意味がない!という指摘もあるでしょう。

VMwareの最新のコンテナVM共存論は、それに見事に応えています。コンテナをVMに内包させるのではなく、KubernetesにコンテナもVMもオーケストレーションさせるアイデアです。KubernetesがESXiホスト上でワークロードを調整管理できるようにvSphereの設計を見直し、Kubenetesクラスタをハイパーバイザー上 で実現させて(Supervisor Cluster)、VMとコンテナの両方に対してKubernetesの機能を発揮させる仕組みです。

クラウド ネイティブ アーキテクチャをサポートする上でのKubernetesの重要性を認め、これまで築き上げた仮想環境のエコシステムにKubernetesを組み込む決断をしたVMwareの強い意志が感じられます。Project Pacificと呼ばれるこの取り組みは、今後IT業界の市場動向を大きく左右するものかもしれません。

タグ: , , , ,

「コンテナ vs 仮想マシン」から「コンテナ + 仮想マシン」へ

仮想マシンとコンテナを比較した記事をネット上で散見します。特に、英語サイトでは”Container vs. Virtual Machine”というトピックがネット上に溢れています。そんな記事をざっと見渡していると、コンテナと仮想マシンの比較は、やがて両者を対比するのではなく組み合わせよう、という議論に発展し始めた様子も伺えます。要するに、コンテナと仮想マシンは対立する存在ではなく、どちらか一方を選ばなければならないわけでもない。コンテナと仮想マシンは共存できるという論点です。

具体的には、仮想マシン(VM)は物理的なハードウェア上で、ハイパーバイザーを通じて仮想化された複数のオペレーティングシステム(OS)のことであり、コンテナはOS上でコンテナに区画された個々のアプリケーションです。つまり、VMを用いたからといって、そのOSをコンテナに区分けできなくなるわけではありません。一台の物理的なハードウェア上で複数のVMが仮想化され、その個々のVMが複数のコンテナを持つことだって、理論上は何の問題もないはずです。

言い換えると、コンテナとVMは、アーキテクチャにおいて仮想化が適用されるレベルが異なるので、両方のレベルに同時に仮想化を適用しても問題ない、ということになります(下図参照)。

「コンテナとVMの併用が可能か否か?」という議論よりも重要なのは、「併用が得策かどうか?」です。併用が可能だからといって、必ず併用するのが得策とは限りません。すべてはニーズとリスクのバランス次第です。

ニーズの観点から一般論を言えば、コンテナのニーズは非常に高まっています。DevOpsやマイクロサービス、CI/CD(継続的インテグレーション/継続的デリバリー)の実践には、コンテナ環境がふさわしいというコンセンサスがほぼ確立されています。コンテナのニーズが定着しつつある状況においては、「コンテナとVMとの併用が得策かどうか?」ということよりも、本当の議題は、コンテナを物理サーバー(ベアメタル)のOSに直接適用するか、VMに適用する?かという二者択一です。

この二者択一への答えを見出すには、そもそもVMを採用する上での利点と欠点は何だったのかを再考し、それがコンテナによって補われるのかどうかを検証するのが近道です。VMにもたらされた利点がコンテナでもすべて達成できるのであれば、コンテナ採用時にVMを維持し続ける必要はありません。また、コンテナの欠点も検証すべきです。それがVMの使用で補われるであれば、コンテナ採用時にVMを維持する意味があります。ここで大切なのは、VMとコンテナを比べて両者の優越を競わせるのではなく、個々の活用意義を純粋に分析することです。両者の比較記事はネット上に散乱していますが、コンテナ単独とコンテナVM併用を比較するのに直接役立つとは言えません。

そもそもVMの利点と欠点は?

VMを活用する利点は枚挙に暇がありませんが、それらは大きく分ければ、次の4つに分類できます。

  1. 節約(サーバーを減らすことによるスペースの節約、費用の節約、中央管理による人件費の節約など)
  2. 効率化(リソース使用の効率化)
  3. 柔軟性(アップグレードやスケーリングが容易に。拡張性の向上)
  4. 災害復旧(レプリケーション、VMスナップショットによるRTO/RPOの短縮など)

上記の1、2、3はコンテナによっても達成可能と言えます。まったく同じことが達成できるわけではありませんが、異なるレベルで、異なる角度から、同様の課題を克服できるので、VMをコンテナに置き換える理由になり得ます。

災害復旧(DR)もコンテナで同様に達成できるかと言えば、多少疑問が残ります。コンテナに合わせたソリューションの開発も進んでいるようですが、VMにはすでに多くの企業に採用され、実用化されてきた実績があります。VMを利用したDRソリューションに比べれば、コンテナはまだまだ発展途上です。コンテナ自体はステートレスで、コンテナ イメージの再生が容易なので、コンテナそのものがDR込みで設計されているとも言えます。しかし、サーバーレベルのDRはコンテナとは別問題です。ベアメタルよりも仮想環境のほうがDRに適していることを思えば、VMとコンテナを置き替えるよりも、VMにコンテナを追加したほうがセキュリティが強固なのは言うまでもありません。

VMの欠点は概ね次の3つに絞られます。

  1. オーバーヘッド(パフォーマンス、複数のゲストOSを稼働することによる負荷)
  2. 費用(運営コストは節約されるが、初期投資はかさむ)
  3. 複雑さ(コンフィギュレーション、設定や構成の複雑さ)

これらの欠点はすべてVMをコンテナに置き換えれば解消されますが、2と3に関しては、コンテナにはコンテナの問題があります。問題がサーバーレベルからOSレベルに特化されるので、処理の単純化は期待できるでしょう。特に3の「複雑さ」に関して言えば、Kubernetesなどのコンテナ オーケストレーション ツールがかなりの部分を自動化してくれ、対応が急速に進んでいる分野でもあります。

むしろ深刻なのは1のオーバーヘッドです。オーバーヘッドの削減は、そもそもコンテナ導入の目的でもあるわけで、そのコンテナをVM内に置いたら、せっかくのコンテナ効果が薄れてしまいます。オーバーヘッドの解消が最優先の課題である場合は、コンテナはVMとは併用せずに、ベアメタルで使用すべきでしょう。

しかし、VMをコンテナに置き換える企業は、当然ながら、すでにVMを実用化している企業です。VMのオーバーヘッドがすでに織り込み済みで、VMがもたらす効果のほうが大きいから実用化したはずです。新規にVMかコンテナかを二者択一するなら、オーバーヘッドは問題ですが、既存するVMにコンテナを追加する場合は、問題にならないはずです。問題にならないどころか、実用化されたVM環境をコンテナ中心に設計し直すことに比べたら、はるかに合理的な選択とも言えます。

コンテナがもたらす効果

では、コンテナ自体の利点と欠点はどうでしょうか?

コンテナがもたらす数々の利点はネットでもさんざん論じられていて、どれも理にかなっており、それらに疑問を投じることが本稿の目的ではないので、ここでは概略に留めます。

  • アプリケーションの可搬性、柔軟性、拡張性、リソースの節約、プロビジョニングの簡略化、開発プロセスの単純化(環境からの隔離性によるテスト/プロダクション環境への可搬性)など。

コンテナの欠点はどうでしょうか。

  • セキュリティ、単一のOSに縛られること、個々の独立性がゆるい(カーネルを共有)、別種のOSを使うには別のサーバーが必要、など。

これらの欠点は、VMと併用することで解消可能です。セキュリティの課題はDRに関連し、VM向けに各種ソリューションが確立されていることは前述のとおりです。別種のOS云々は、まさにそれを解決するためにVMが存在します。コンテナをVMと併用することで、コンテナの実用性が高まると言って間違いなさそうです。

コンテナ単独かコンテナVM併用か?

VMの代替ソリューションとしてのコンテナの有用性を証明するために「コンテナ vs. VM」を論じるのは、現実に即していない気がします。コンテナとVMのいずれも使用していない企業が、どちらか一方を新規導入しなければならない状況なら、「コンテナ vs. VM」の議論も有意義ですが、現在、VMを使用している企業にはあまり有意義とは言えません。重要なのは、「コンテナ単独 vs コンテナ+VM」の議論です。それにより、現在使用中のVMをコンテナに置き換えるか、VMを維持したままコンテナを導入するかを検討すべきです。その議論が深まれば深まるほど、コンテナとVMを併用したハイブリッド環境が今後さらに注目を集めることは想像に難くありません。

 

 

タグ: , , , ,

vSphereとKubernetes

コンテナ サービスの本格化で生まれ変わるVMware

マイクロサービスやDevOps、クラウド ネイティブといった用語は、どちらかと言うとバズワード(buzzword)的な印象があります。その意味はわかっていても、何となく掴みどころがなく、耳元の虫の羽音(文字どおりbuzz)に近かったのですが、VMwareがKubernetesとの連携を本格化させたことにより、俄然、具体性を帯び始めました。ぼんやりとした概念が急に現実味を帯びた感じで、もはやバズワードではなくなりました。

この夏、VMwareは仮想化ソフトウェア会社の殻を破り、エンタープライズサービスのプロバイダとして大きく羽ばたいた!

そんな記事がネット上で踊るのを見ました。8月最終週にサンフランシスコで開かれたVMworld 2019では、それが最大の焦点だったと報じられています。

マーケティングや広告的な戦略のことはよくはわかりませんが、端的に言ってしまえば、「要はvSphereとKubernetesの連携が進んだ」ということだと理解しました。べつにVMwareが些細なことを針小棒大に宣伝しているというつもりは毛頭ないです。むしろ、Kubernetesとの連携は重大なステップであり、それにより、コンテナを活用したマイクロサービスの開発、DevOpsの推進が図られ、ハイブリッド環境におけるクラウドネイティブな運用が実践されるはずです。前述のバズワードを、この一文に無理矢理つなげたわけではありません。無理につなげなくても、VMwareがKubernetesを本格的に取り入れたおかげで、漠然としていたバズワードがすべて自ずと一つにつながったのです。

企業のIT環境は、クラウドの導入が進んでも、多くの場合、オンプレミスとの併用は避けられず、ハイブリッド化を目指すことになるのが一般的です。企業システムの開発環境は一枚岩ではいられず、マイクロサービスの導入が否が応でも進みます。そのほうが効率がよく、現場のニーズを汲み取るスピード感に差が出ます。そのような、アジャイルなDevOpsの実現を目指すには、コンテナがもたらす柔軟性と拡張性は無視できません。マイクロサービスは読んで字のごとく、サービスを細かいファンクションごとに切り分けているわけで、切り分けたのなら、やはり読んで字のごとく、コンテナが便利なことは素人でも何となくわかります。VMwareが本格的にコンテナ サービスに乗り出し、それがハイブリッドなマルチクラウドで利用しやすくなれば、VMwareが踏み出した一歩を実は革命的なことかもしれません。もっと言えば、すでに浸透している安定したVM技術に、コンテナ技術が追加されることで、Red HatやDockerなど、先行する競合他社には真似できないVMwareならではの新しいハイブリッド環境サポートが期待できます。

「単にKubernetesとの連携を深めただけ」と、まるで取るに足らないことのように述べてしまいましたが、実際には「エンタープライズ サービス プロバイダとして大きく羽ばたいた」が決して大げさなキャッチフレーズではなくなる可能性が充分にあります。

タグ: , , , ,