DXに必要な運用技術〜 Dockerコンテナ(1) 〜

投稿者:minoru61

DXに必要な運用技術〜 Dockerコンテナ(1) 〜

Spread the love

DXに必要な運用技術はどのようなものがあるでしょうか?AWSのようなクラウドのインフラやVMWareのようなインフラ技術も必要になりますが、既に多くのDXを成し遂げているソフトウェアの運用チームはコンテナを使っています。コンテナ技術は多くのことを教えてくれるのでコンテナについて話しましょう。

Dockerというソフトウェアを聞いたことがあると思います。Dockerはコンテナを管理するツールです。コンテナはLinuxで古く使われている仮想化の仕組みなのですが、Dockerはそのコンテナを管理してくれます。なので、コンテナとは何か?がわからないとDockerというソフトウェアを使いこなせません。それではコンテナとは何でしょうか?仮想化の仕組みなので、VMWareやAWSなどの仮想マシンと比べるとわかりやすいと思います。

以下の図は、youTubeなどでDockerの仕組みを説明する時によく使われています。

大きな違いはOS(オペレーティングシステムズ)が仮想マシン(バーチャルマシン)ごとに存在するかそれとも一つのOSの上で仮想化されているかというところです。コンテナの場合は一つのOSの上に仮想化されています。これのどこか良いのでしょうか?今風に言うとエコなんですよね。コンピュータの中で動くソフトウェアはOSの様々な機能を使って動きます。例えば、あるプログラムに「CPUを割り当てる」ことやあるプログラムから「ファイルに書き出す処理をする」などです。OSはいろんなプログラムから使われるのですが、仮想マシンの場合はそのOSが複数立ち上がります。正確に言うと仮想マシンごとに立ち上がります。ハードウェアの上に、10個の仮想マシンがあれば10個のOSが立ち上がりますが、その10はほとんど同じ仕事を任されているのです。

OSを一つにするとなぜエコになるのでしょうか?まずは、ディスクスペースです。ディスクスペースをOS10個分持つと大きなスペースが必要です。一つ数GB必要としても、10個の仮装マシンを立ち上げると、数十GBは最低でも必要になります。これがクラウドなどで大量の仮想マシンを立ち上げると、計算できないぐらい多くのディスクスペースが必要になります。

次に必要なのはCPUです。CPUは通常仕事をしていない時は動いていないのですが、そのCPUが余っている時に他のソフトウェアで使えるようにできれば良いのですが、いざ必要だ!と言う時のために少し余裕を持ってCPUを用意することになってしまいます。なのでこれもエコのためには仮想マシンよりもコンテナの方がいいのです。

そして3つ目はメモリです。メモリはOSごとに確保しますので、使っても使わなくても一応取っておきます。そのため、メモリはかなり使うことになります。ましてや、OSが複数立ち上がると言うことはOSで利用できるメモリは無駄の中の無駄ですね。

このように、仮想化すれば柔軟に使えるととなると、無駄に使ってしまうものです。そして、このディスク、メモリ、CPUの無駄遣いは電力の無駄遣いになってしまうので、これ以上仮想マシンを増やさないことが、SDG’s的には重要となります。「自分はそんなにつかってないよ!」と言う人もいるかもしれませんが、それはペットボトルでも、レジ袋でも同じですよね。このまま放っておくと、地球環境は破壊されます。

著者について

minoru61 administrator

コメントを残す