AI・セキュリティのまとめのまとめ

サイバーセキュリティ・AI/機械学習の備忘録

コンテナとその周辺技術について、簡潔にまとめてみた

 昨今、コンテナという言葉はよく耳にするものの、個人的にあまり良くわかってないなと感じたため、コンテナとその周辺技術についてまとめてみました。

サマリー

・コンテナは、1つのサーバー上に作られた論理的な区画であり、従来の仮想化技術と比べて高速な動作や迅速なリリースに対応可能な技術である。

・複数のコンテナを運用する場合、管理の手間が非常に煩雑となる。その解決手段として、コンテナオーケストレーション技術がある。

・コンテナと相性の良いマイクロサービスが抱える「障害連鎖」や「通信の安全性」といった問題を解決する技術として、サービスメッシュ技術がある。

コンテナとは

 コンテナとは、仮想化技術の1つで、1台のサーバーの上に作られた論理的な区画を指します。1つのOSの上で、仮想的な区画であるコンテナを複数提供できます。従来の仮想化技術と並べて図に示すと、以下となります。左が従来の仮想化技術、右がコンテナを使用したものを表しています。従来の仮想化技術としてVM Ware、コンテナ技術としてDockerなどが代表的です。

f:id:nakajimeee:20211231115423j:plain

出典:https://cn.teldevice.co.jp/column/10509/

 

従来の仮想化技術とコンテナは何が異なるのでしょうか。アプリケーション(以下、アプリ)を動かす際には、以下の工程が必要です。

 

【従来の仮想化技術】ホストOS ⇒ 仮想化ソフトウェア ⇒ ゲストOS ⇒ アプリ 

【コンテナ】ホストOS ⇒ アプリ

 

つまり、コンテナの場合、仮想化ソフトウェア+ゲストOSを介した工程が不要です。アプリを動かすために、ホストOSを使用しています。より詳細にはホストOS内のカーネルを使用しています。

カーネル:コンピューターの基本的な操作を行う機能を格納したライブラリ群

メリット

高速な動作

アプリを動かすための工程が少なく、高速に動作する。

 

高頻度のリリースに対応可能

コンテナを使用することで、HWやOSと切り離して開発できるため、開発環境で作成したものを、本番環境のような異なる環境に適用することが容易である。

デメリット

・同一のOSを利用する必要

同一のOS上で動作させる必要があり、アプリ毎に個別にOSを選択できない。

 

・コンテナ間の分離レベルが低い

コンテナ間の分離レベルが低く、セキュリティ要件が厳しい業界や企業には適用しにくい。

周辺技術

・コンテナオーケストレーション

 マルチホストで構成されたクラスター環境で動作させる場合、ホストOS間のネットワークやストレージ等の管理が必要となり、人手による運用が非常に煩雑となります。この問題を解決する技術がコンテナオーケストレーションです。代表的なツールとして、Kubernetesがあります。

 

・サービスメッシュ

 コンテナ技術と非常に相性が良い開発手法として、マイクロサービスがあります。これは、個々のアプリをなるべく疎になるように開発する手法で、アプリのリリース速度を早めることが可能など、変化の激しい現代に適しています。一方で、以下のような課題を抱えています。

 ・障害の連鎖

 ・障害が起きているもしくはレスポンスタイムが悪いサービスの特定

 ・マイクロサービス間の通信の安全性

これらの問題を解決する技術として、サービスメッシュがあります。サービスメッシュはサービス間通信を処理するソフトウェアで、アプリケーションに代わってネットワーク要求を処理します。代表的なツールとして、Istioがあります。

 

余談ですが、米空軍は戦闘機F-16KubernetesとIstioを搭載したようです。これにより、AIなどの機能を柔軟にデプロイできるようになったとのことです。

参考文献

【連載】世界一わかりみが深いコンテナ & Docker入門 〜 その1:コンテナってなに? 〜 | SIOS Tech. Lab

注目を浴びる「Dockerコンテナ」、従来の仮想化と何が違うのか? | 東京エレクトロンデバイス

 ・コンテナオーケストレーションとは?仕組みやメリット、注目のツールについて徹底解説|サイバーセキュリティ.com

DevOps、CI/CDパイプラインでもコンテナは大活躍! | Think IT(シンクイット)

Istio入門 その1 -Istioとは?- - Qiita

Istioは何ができるか - Qiita

How the U.S. Air Force Deployed Kubernetes and Istio on an F-16 in 45 days – The New Stack