DX時代で加速するアプリ開発のアジャイル化 コンテナの活用とセキュリティ対策に必要なこととは
- アフターレポート
- コンテナ
- DX
- ../../../article/2021/08/dx_seminar.html

Kubernetesとは、コンテナ管理を効率化・自動化するプラットフォームを指す。読み方は「クバネティス」または「クーベネティス」で、名前はギリシャ語の「操舵手・パイロット」に由来する。その名前の通り、コンテナという船を効率的に運航するツール。複数のコンテナを一括管理でき、システム開発・管理・運用を大幅に効率化することが可能。
Kubernetesとは、コンテナを運用・管理する「コンテナオーケストレーションツール」の一つです。もともとはGoogleが開発し、その後オープンソース化されました。コンテナとは、アプリケーションの実行環境を仮想的に構築する技術です。コンテナという入れ物にアプリケーションの実行に必要なものをまとめておくことで、自由に持ち運ぶことができるようになり、環境の構築や移動、運用がしやすくなります。
しかし、コンテナの数が増えると、各コンテナの稼働状況の監視、スケーリング(拡張)、セキュリティ強化など運用や管理が煩雑になります。そこで台頭したのが、複数のコンテナを効率的に運用・管理できるKubernetesです。アプリケーションの自動スケーリングや、ネットワーク・ストレージとの連携を行う機能を備えており、コンテナ管理の手間を大幅に軽減できます。
Kubernetesとよく混同されがちなのがDockerです。KubernetesとDockerの大きな違いは、その利用目的と操作・実行する対象です。Kubernetesが複数のコンテナを一元管理するコンテナオーケストレーションツールであるの対し、Dockerはコンテナ型の仮想環境を構築・実行するツールで、基本的に個々のコンテナを対象としたものです。
Docker とKubernetesは二者択一というわけではなく、相互に補い合う関係です。Dockerでコンテナの仮想環境を構築し、それをKubernetesで管理することができます。
Kubernetesを使用することで得られるメリットは多岐にわたります。以下に主なメリットをご紹介します。
アプリケーションへの変更を段階的に行うことが可能です。アプリケーションの状態を監視しながら、更新に問題が発生した場合はロールバック(不具合を発生した際に正常に動作していた状態に戻すこと)を行います。
障害に強いのも大きなメリットです。コンテナに障害が発生した場合も自動で回復することができ、復旧作業の手間を削減できます。
CPUやメモリの使用率などの需要に基づいて自動的にスケーリングを行ってくれます。事業やサービスに応じてリソースの最適化が可能となります。
オンプレミスやクラウド、ハイブリッドクラウドなど多種多様な環境で運用可能です。使用用途や前提も問わずに利用できることから、柔軟な導入・運用戦略が可能です。