かつて「コンテナ」と言えば、パブリッククラウドを利用してWebサービスを構築するといったユースケースが中心だったが、コンテナの適用範囲が広がるにつれ、オンプレミスやプライベートクラウドでもコンテナアプリケーションの実行環境が求められるようになり、昨年は大手ベンダー各社がエンタープライズ向けのコンテナ戦略を相次いで発表する年となった。ITインフラ領域で特に頻出キーワードとなっているコンテナを取り巻く動きを整理する。
(取材・文/日高 彰)
コンテナは「開発者のため」から
「DX実現のテクノロジー」へ
ITインフラの世界では、“バズワード”的な盛り上がりも含め、毎年のように新たなトレンドとなるキーワードが登場しているが、2019年について言えば、「コンテナ」と、それを統合管理する技術である「Kubernetes(クーバネティス)」が、最頻出クラスの単語だったと言えるだろう。
OSを含むサーバー1台の機能を丸ごとソフトウェアで実現する仮想マシン(VM)に比べてコンテナは軽量で、起動に要する時間は分単位から秒単位へと短縮化されるほか、ハードウェアの利用効率もより高くできる。また、アプリケーション本体に加え、ミドルウェアやライブラリー、OSの環境設定などをまとめてコンテナイメージ化することで、開発/テスト/ステージングといった異なる環境の間でアプリケーションを簡単に移すことができる。
もちろん、コンテナ型の仮想化自体はそれほど新しい技術ではない。前述のようなメリットが得られることから、アプリケーションの開発効率を高められる技術として開発者の間では既に受け入れられている。ただ、近年コンテナにますます注目が集まっている背景には、デジタルトランスフォーメーション(DX)の機運の高まりがある。デジタル戦略は企業経営の根幹であり、アプリケーション投入のスピードが企業の競争力を直接的に左右するという認識が広がったことで、DX実現に必要な技術トレンドの一つとしてコンテナが脚光を浴びるようになった。
一方で、物理マシンの運用管理手法を流用しやすいVMに対し、コンテナでは死活監視や負荷分散をどのように行っていくかという課題があったが、最も普及しているコンテナエンジンの「Docker」が17年、グーグル発のオープンソースソフトウェアとして開発されているコンテナオーケストレーター・Kubernetesを統合する方針を固め、Kubernetesがコンテナ管理技術のデファクトスタンダードとなった。
Kubernetes環境はグーグル・クラウドの「Google Kubernetes Engine(GKE)」のほか、AWSの「Elastic Kubernetes Service(EKS)」、マイクロソフトの「Azure Kubernetes Service(AKS)」のように、大手クラウドベンダーのマネージドサービスとして提供されており、今やKubernetesは、オンプレミスからパブリッククラウドまで、あらゆるインフラをサポートするコンテナ基盤の地位を得ている。
Kubernetes環境を前提としてコンテナ型でアプリケーションを開発すれば、その時々で最適なインフラを用いてアプリケーションを実行することができる。複数のインフラにまたがった冗長化や負荷分散が可能になるほか、事業環境の変化で別のクラウド基盤への移行が必要となる場合も、理論的には特定のサービス事業者にロックインされる恐れがない。あらゆるベンダーが事あるごとにコンテナとKubernetesに言及するのはこのためだ。
オンプレミス環境に
コンテナ基盤が必要な理由
アプリケーション開発と運用の効率化という目的に対しては、パブリッククラウド事業者が提供するKubernetes環境を導入するのが最も近道であるのは間違いない。各社のマネージドサービスを利用すれば、ハードウェアやOSのパッチ管理や、Kubernetes自体の運用といった手間から解放され、ユーザーはアプリケーションの投入だけに集中できる。Webサービスやモバイルアプリの構築とは特に相性がいい。
しかしここ1~2年の間、オンプレミスやプライベートクラウド上にユーザー自身が構築するコンテナ基盤製品が話題となっており、「コンテナ=パブリッククラウド」という図式ではなくなりつつある。なぜか。
一つの大きな理由は、コンテナ技術にDXの実現という文脈が重なったことで、既存の業務アプリケーションもコンテナ化の対象とみなされるようになったことだ。従来コンテナといえば、複数のコンポーネントが疎結合で連携する、マイクロサービス化されたアプリケーションのための技術というイメージが強かったが、モノリシックなアプリケーションであっても、開発やテストのための環境を素早く用意し、本番環境投入までのスピードを上げるというメリットは享受できる。
しかし、レガシーアプリケーションの場合、社外の基盤上での実行は技術的にもポリシー的にも想定されておらず、パブリッククラウドの活用は最初から選択肢に入らないというケースはまだまだ多い。また、部分的ないし将来的にはパブリッククラウドを活用したいが、当面は多くのシステムがオンプレミスに残るという場合、まずは第一歩としてハイブリッドクラウドを実現するため、共通基盤としてKubernetes環境を導入するというシナリオも考えられる。
コンテナ環境がオンプレミスに求められるもう一つの理由が、エッジコンピューティングだ。
IoT/AIのソリューションでは、効果を確かめながら頻繁にソフトウェアを更新することが多いほか、データ収集・分析系のさまざまな新たなテクノロジーとの親和性の高さという点でも、コンテナを採用するケースが多い。しかし、例えば画像認識を行う際、反応速度や通信コスト、データの取り扱いポリシーといった要件から、パブリッククラウドには展開できず、工場や店舗といった「エッジ」に設置したサーバー上で処理が完結しなければならないケースがあり、エッジコンピューティングを実現する要素の一つとして、オンプレミス環境でも運用できるコンテナ基盤が必要になっている。
2018年に米国で開催された開発者会議「QConNY」では、飲食チェーン「Chick-fil-A」が全米2000店舗に設置したサーバーでKubernetesを運用し、調理機器等から得られるセンサーデータを店舗オペレーションに活用している事例が紹介され話題となった。
このように、レガシーなアプリケーション、IoT/AIに代表される新しいワークロードの両方で、オンプレミス/プライベートクラウド環境に構築できるコンテナ基盤のニーズが高まっている。しかし、先に紹介した通りKubernetesはオープンソースソフトウェアであり、一般企業が導入するには、取り扱いの難しさやサポート体制の面でハードルが高い。そこで、各社から相次いで登場しているのが、運用ツールや支援サービスを加えた「エンタープライズ向け」のコンテナ基盤製品である。
[次のページ]パートナーとIT管理者の支持取り付けに動く