ジンチョル)Tweetはじめに本連載では、コンテナ初心者を対象として、情報システムインフラ、そして、コンテナの概要から活用に至るまで、コンテナおじさんが優しく、わかりやすく教えます。コンテナおじさんとともに、わかりそうでわからないコンテナの世界へダイブしましょう!そもそも「インフラ」ってなんだ私たちの普段の生活は様々なインフラによって支えられています。IT業界の人も、そうでない人も、ニュースなどで「インフラ」という言葉を耳にすることが多いのではないでしょうか。「それって何?」と聞かれると、なかなか説明に困ることも事実だったりします。インフラはインフラストラクチャー(infrastructure)を略したものですが、直訳すると「下の(infra)構造(structure)」という意味になります。日本語ならば「基盤」という言葉に置き換えられるのでしょう。「ライフライン」とも呼ばれる電力インフラが代表的なものです。電力インフラ(電力網)は、電気を作る発電所、作った電気を運ぶ送電網、電圧や周波数などの変換を行う変電所、各家庭へ送る電柱などで構成されますが(図1)、それらが整備されていない国や地域では、自家発電機による発電で電力をまかなうことになります。図1:電気を作って送り届ける電力インフラこのように、インフラは人々の豊かな暮らしを支える大事な存在なのですが、もはや当たり前すぎて、普段はそれらを意識することもなければ、ありがたみを感じている人も少ないのではないでしょうか。失った(止まった)ときに初めて、その重要さや大切さを感じる。いわゆる空気のような存在とも言えるでしょう。「ITインフラ」とは?改めてインフラのことを知ったところで、今度はITインフラのことを考えてみましょう。インフラの中でも、最も分かりにくい、感じにくい存在かと思いますが、結論から言うと、今やITインフラもなくてはならない存在です。某大手携帯キャリアの通信網がつながらなくなったとき、大きなニュースになったことはまだ記憶に新しいでしょう。私自身も電話がかけられず、一時期パニックになりました。そのとき、私は何を行ったか。自分のスマホを疑い、通信を止めて再接続してみたり、スマホそのものを再起動してみたりと、試行錯誤を繰り返した覚えがあります。いつでも、どこでも、誰とでもつながっていたことが当たり前だったので、通信インフラそのものがつながらなくなるとは思わなかったわけです。エンジニアでありながらも...恥ずかしい限りです(図2)。図2:IT(通信)インフラと現代人これは一例にすぎませんが、自動改札を通るときも、買い物をするときも、音楽を聴くときも、お金をおろすときも、ITインフラは私たちの暮らしを陰ながら支えているのです(図3)。図3:ITインフラが支える生活行動の数々ITインフラも変化し続けている?ひと言で「ITインフラ」と言っても、そこには色々な登場人物がいます。「サービスを提供する側」と「サービスを受ける側」、その中で「情報を流通させるネットワーク」の大きく3つに分けることができます。本連載では、サービスを提供する側と受ける側の2つをメインに解説していきます。サービスを提供する側の処理を担う代表例に「サーバ」があります。そのサービスを受ける側の代表例として「クライアント」があります。リアルな世界で例えると、おじさんなので、、、ビールサーバと人間の関係に近いかと思います。サービスを提供するのはまさにビールサーバであり、ビールを求め、飲むのが我々、クライアントなわけです。コンピュータの世界で、その関係性とそれぞれに求められる役割は時代と共に変わってきました。それらについて、改めて見ていきましょう(図4)。(メインフレーム、ホストとも言う)が登場する以前のコンピューティングでは、ある分野に特化したごく一部の組織だけが、高い計算能力を求めて独自に機械を作って来ましたが、汎用機の登場により、多くの企業や団体で業務効率化や難しい計算などが実現できるようになりました。今でも大企業や重要な機関、団体などの業務システム(勘定系システムともいう)を担っている汎用機ですが、当時から非常に高価なもので、どんな組織でも持てるような代物ではありませんでした。高い性能と堅牢性(耐障害性)を誇る一方で価格が犠牲になっており、一般の企業では簡単に導入できないものだったのです(図5)。図5:汎用機(メインフレーム)の特徴さらに汎用機を使ってアプリケーションを実装するとなると、そのプログラム言語に特化したプロを集めるために高額な費用がかかっていたので、なおさらです。今や経産省も口を出すほど当たり前になっているDX(デジタルトランスフォーメーション)において、汎用機は少々世の中から冷遇されている感はありますが、それでもまだまだ止まってはいけない領域において、しばらくは現役で存在し続けるのではないでしょうか。Japanでは次のように定義しています。)の変革を牽引しながら、第3のプラットフォームを利用して、新しい製品やサービス、新しいビジネスモデルを通して、ネットとリアルの両面での顧客エクスペリエンスの変革を図ることで価値を創出し、競争上の優位性を確立すること”ここで言う「第3のプラットフォーム」とは、クラウド、ビッグデータ/アナリティクス、ソーシャル技術、モビリティなどを指します。古いシステムから脱却することが必要だと考えられます。~ITシステム「2025年の崖」の克服とDXの本格的な展開~レポート』では、レガシーシステムの代表例として汎用機が取り上げられています。これまでと違い、激しく変化する内外部環境への柔軟かつスピーディな対応が求められる中、システムを作るときも、維持するときも、改修するときも、膨大な時間とお金がかかるレガシーシステムは技術的な負債になりかねない、という話になろうかと思います。言われると疑問ですが、確かに時代は身軽で他とも柔軟につながれるようなシステムを求めているような気がします。非常に良い働きをしてきましたが、時代は変わり、インターネットが普及する中、企業や団体の基幹業務だけでなく、eコマースなど、より広い領域でコンピューティングが必要となってきました。高価な汎用機ではなく、より安い、よりオープンな規格に準拠したコンピュータが求められるようになってきたのです。それに応えるのがオープンシステム(クライアント/サーバ)と呼ばれるUnixやLinux、WindowsなどをOS(オペレーティングシステム)として採用し、x86などのCPUアーキテクチャを採用したものでした(図6)。オープンシステムが時代に求められる役目を果たしながらもシステムの発展は留まるところを知らず、標準化され、低価格化したものをさらに論理的に分割して利用されるようになりました。それが「仮想化」の流れです。ここから少し概念をイメージしにくくなりますが、仮想化とは限られたハードウェアを論理的に分割することを指します(図7)。仮想化は、ハードウェアの存在をソフトウェアの力で抽象化するものです。登場した当時はサーバ(CPU/メモリ)の仮想化がメインでしたが、近年ではさらにネットワークやストレージ、さらにはデータセンターそのものの仮想化も謳われています(図8)。仮想化時代は今も継続しているので、厳密には仮想化時代とクラウド時代を時系列で並べることには語弊がありますが、便宜上、並列にしています。加えて、ここで解説するクラウドとは、企業内部の閉じた環境上のもの(「プライベートクラウド」と言う)ではなく、インターネットを経由してサービスを提供する「パブリッククラウド」を指しています。前述の通り、仮想化は未だ発展途上ですが、近年はシステムを検討する際にクラウドファースト、いやクラウドマストともいえる時代です(筆者は単純にクラウドを推すというより適材適所が良いと思っています)。仮想化されたものを使い、固定資産を持たない。使いたいときに、使いたい分だけ利用する。いわゆる所有から利用へと、シェアリングエコノミーの時代に突入してきました(図9)。ひと言で仮想化とクラウドの違いを説明するのは難しいですが、強いて言うならば、大きな違いは「物を持たない」ところでしょう。図9:クラウドで所有から利用へこのパブリッククラウドの領域にも様々なプレイヤーが存在しますが、有名どころでは表1のようにまとめることができます。表1:代表的なパブリッククラウドサービスクラウドサービスを提供するベンダーが増え、互いに競争することで、それぞれの強みと特徴が鮮明になりました。利用者とっては選択肢が増えたとも言えますが「どのクラウドサービスを選定するか」という点では迷いが生じることも事実ではないでしょうか。/p物を所有していたオンプレミス時代に「どのベンダーの」「どの製品を選定するか」検討を重ねてきたのと同じように、クラウド時代においても、どんなサービスが自分たちにとって最適なのかを考えなければなりません。最近では、特定のクラウドベンダーに縛られないように(ベンダーロックインされないように)、マルチクラウド戦略を打ち出している企業も増えてきました。システムを作る、利用する、“そのとき”に一番安価なサービスへ乗り換えられるようにポータビリティの高いシステム構築を目指す企業も増えているように感じます。ITインフラはさらに見えないものへITインフラは、仮想化とクラウドの潮流に乗り、ますます目に見えにくいものとなってきました。悲しいことに、IT業界の人は、他の業界の人に説明しても「もはや分かってもらうのは無理ではないか」と思わされているのではないでしょうか。これまではシステムを作るとき、そのシステムが提供するサービスが順調に受け入れられ、利用が一番伸びている状態(成長率を加味したピーク時)でも、サービスを円滑に提供できるようにと、最初からその前提で多くのハードウェアやソフトウェアのリソースを投入して来ました。クラウドでは「それは正しいのか?」「本当に必要なのか?」といった議論が始まります。それはきっと良い流れなのだと思います。ITインフラは前述の通り、人々の豊かな生活を支えるだけで良いのですから。コンテナ参上!クラウド時代に突入し、ITインフラがさらに見えにくいものになってくると、今度はアプリケーションとの境界すらも怪しくなってきます。それは、背景としてインフラそのものを支える環境が、仮想化したり、クラウド化したりと、足回りの選択肢が増えたことも一因となり、さらには、各企業や団体が、様々な施策や事業をスピーディに展開しなければならない時代的な背景も重なって、より身軽なものを求めてきたからではないかと想像しています。「コンテナ」は、その時代の流れから生まれてきたのではないでしょうか。仮想化もクラウドも概念的に説明が難しいのに、コンテナをどう説明すべきか(そもそもコンテナをインフラとして語るべきかという議論もあるかと思います)悩ましいところですが、ここでは図を使用しながら解説します(図10)。図10:コンテナの概念コンテナエンジンが、アプリケーションを動かすための前提条件であるOS・ミドルウェア・アプリケーションそのものの一部を縦割りにパッケージ化したものがコンテナです。後述しますが、この仕組みにより仮想サーバを立ち上げるオーバーヘッドが不要になり、より身軽なアプリケーションの実行基盤を提供できることが大きなメリットです。OSとミドルウェアの一部までも同梱することにより、「どこでも実行できる」という高いポータビリティが得られます。詳細は第2回以降で説明していきますが、コンテナの最大の特徴はその身軽さゆえのポータビリティにあるのではないでしょうか。おわりにここまで見てきたインフラの特徴をおさらいすると、図11のように表現できるでしょう。韓国生まれ、韓国育ち、就職で来日したのは大阪。今でも時々関西弁が混じる。Oracleデータベースエンジニア、インフラリーダを経て、現在は複数の企業へデジタル化に向けたアドバイスや支援を実施している。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。Night」レポート2020/1/15全文検索エンジンによるおすすめ記事Dockerを理解するための8つの軸コンテナを導入しないと、どのような未来が待っていたのか?【前編】Dockerの誤解と神話。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。