Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

改めて知る「Kubernetes」とは何か――複数コンテナを扱うならこれ一択、30分で立ち上げられるサービスも

2018/08/30 06:00

 7月27日開催のイベント「Innovation Summit Tokyo 2018」(主催:日本オラクル)でセッション「話題のコンテナ・オートメーション・ツール『Kubernetes』は何がそんなにすごいのか?」が人気を集めた。背景には、クラウド活用が高度化し、その管理が複雑になっていることがある。同様の悩み・課題を抱える方は多いのではないだろうか。本稿では、セッションタイトルのとおりKubernetesの優れた点や使用する価値、さらにGAUSS社が自社のAIプラットフォームにKubernetesを利用した事例などを紹介する。

なぜコンテナオーケストレーションが必要なのか

 これまでのITシステムに対するニーズは、既存ビジネスや企業内のバックオフィス業務を効率化するところにあった。しかし昨今では、新しいビジネスを生み出したり、新しいビジネスチャンスを見つけるために、ITシステムを積極的に活用していこうという機運へと移り変わっている。これを別の角度から見ると、かつては数年単位でアップデートすればよかったシステムから、スマートフォン向けアプリのように、12ヶ月未満という短いライフサイクルで、頻繁にアップデートするアプリケーションが求められるようになったことを意味している。

 このような高頻度リリースを実現するための開発トレンドとして、「マイクロサービスアーキテクチャ」や「継続的インテグレーション/デリバリー」(以下、CI/CD)といったものがある。大規模なシステムを疎結合な複数のサービスの組み合わせで実現するマイクロサービスアーキテクチャは、変更の影響範囲をサービス単位に止められるため、高頻度のリリースに適する設計方式である。

 他方のCI/CDは、ソースコードの変更からテスト、本番環境へのリリースまでの開発プロセスを極力自動化し、アプリの品質の安定と高頻度リリースを実現する取り組みだ。最近とみに普及の速度が高まっているアジャイル開発では、欠くべからざる環境である。

マイクロサービスアーキテクチャと継続的インテグレーション/デリバリー
マイクロサービスアーキテクチャと継続的インテグレーション/デリバリー
[画像クリックで拡大表示]

 マイクロサービスアーキテクチャ、CI/CDのいずれにも、昨今注目を浴びている「コンテナ」が寄与するものは大きい。マイクロサービスアーキテクチャでは、多くの細かいアプリケーションを動かすために、コンテナを用いて独立した仮想的環境をコンパクトに実現することで、その独立性と高集約性のメリットを得ることができる。CI/CDにおいても、アプリケーションの設定情報などを含めた実行環境をコンテナとしてパッケージ化し、同じコンテナを使い回すことで、テスト環境の構築を容易に自動化することができる。この手法であれば、人手によるミスの発生も防ぐこともでき、より円滑に高頻度のリリースサイクルを回すことが可能となるのだ。

コンテナとマイクロサービスアーキテクチャ コンテナと継続的インテグレーション/デリバリー
マイクロサービスアーキテクチャ、CI/CDのいずれにもコンテナが寄与
[画像クリックで拡大表示]

 こうして高頻度リリースの需要の高まりとともに、コンテナの活用が広まってきたが、並行して、コンテナを大量に管理・運用するためのオペレーションが複雑化するという課題が顕在化してしてきた。「3桁以上デプロイしたコンテナ同士を連携し、負荷に応じてスケールさせる」こともよくあるケースだという。このような環境を、物理サーバーや従来型の仮想化と同じような方法で運用するのは、とてもではないが無理である。

 このようなコンテナの大量デプロイやスケーリングなどを自動管理するために登場したのが「コンテナオーケストレーションツール」である。コンテナオーケストレーションツールは、物理的あるいは仮想マシンで作った多くのハードウェアを、1つの大きなリソースのプールであると抽象化して見せてくれる。このプールに対し、任意のアプリケーションのコンテナに動くよう指示を出せば、どこかのハードウェアでコンテナが立ち上がって動き出す。アプリケーションを動かすことで負荷が増えると、自動的に適切なハードウェアを選択して、うまく冗長化してコンテナを分散してくれる。他にもアプリケーションをアップデートしたいときには、そのように指示を出せば自動的にローリングアップデートをしてくれるし、何かしらの障害によって一部のコンテナが落ちてしまったとしても、それを検知して自動で立ち上げてくれる。

 では、コンテナオーケストレーションツールとして、どれを選ぶのが良いのだろうか。

Kubernetesの優位性とは

 日本オラクル クラウド・テクノロジー事業統括 セールスコンサルタントの早川 博氏が“コンテナオーケストレーションツールのデファクトスタンダード”というのが「Kubernetes」である。Kubernetesはグーグルが2014年に発表したツールで、現在はCloud Native Computing Foundationに移管されている。早川氏はこのKubernetesについて、「他のコンテナオーケストレーションツールとは異なる点が2つある」と指摘する。

日本オラクル クラウド・テクノロジー事業統括 セールスコンサルタント 早川 博氏
日本オラクル クラウド・テクノロジー事業統括 セールスコンサルタント 早川 博氏

 一つは、様々なOSSと組み合わせることにより、柔軟に機能拡張することが可能である点だ。Kubernetesの能力以上に、もっとリッチな監視の仕組みが欲しいとか、多くのコンテナから出力されるログを分析したいといったときにも、多くのデベロッパーが実装した機能を活用することができるほか、Kubernetesの適用領域を拡大して機械学習プラットフォームとして使ったり、分散ストレージとしてKubernetesを使うといったことも可能となっている。

 もう一つは、Kubernetesの利用を始める上で、幅広い選択肢がある点だ。Kubernetesがデファクトスタンダードの地位を勝ち得た大きな要因として、Kubernetesクラスターを構築・運用管理の省力化を図るためのマネージドサービスを、グーグルやマイクロソフト、AWSといった主要クラウドベンダーが提供していることが挙げられる。あるいは自由にカスタマイズしたりエッジな要件に対応したい場合には、Kubernetes構築ツールを利用してインストールしたり、フルスクラッチでインストールしたりするなど、要件に応じて最適な環境を手に入れることができるのだ。

柔軟に機能拡張することが可能 利用を始める上で幅広い選択肢がある
Kuberenetesは他のコンテナオーケストレーションツールと何が違うのか
[画像クリックで拡大表示]

著者プロフィール

  • DB Online編集部(ディービーオンライン ヘンシュウブ)

    DB Online編集部 翔泳社 EnterpriseZine(EZ)が提供するデータベース/データテクノロジー専門メディア「DB Online」編集部です。皆様からの情報お待ちしています。 Twitter : https://twitter.com/db_online Fac...

  • 野本 纏花(ノモト マドカ)

    フリーライター。IT系企業のマーケティング担当を経て2010年8月からMarkeZine(翔泳社)にてライター業を開始。2011年1月からWriting&Marketing Company 518Lab(コトバラボ)として独立。共著に『ひとつ上のFacebookマネジメント術~情報収集・人脈...

バックナンバー

連載:Oracle Innovation Summit Tokyo 2018レポート
All contents copyright © 2007-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5