ページの先頭です

ページ内を移動するためのリンク
本文へ (c)

ここから本文です。

ITインフラ部門が知っておくべき、コンテナ基礎知識とは?(入門編)

ライター:徳岡 寛司
ビジネス開発&プロダクトマネージャ

目次

ITインフラ部門の皆様へ

プロダクトマネージャの徳岡です。IT部のインフラ(サーバ、ストレージ、ネットワーク、セキュリティ等)をご担当されている皆さんに、マルチクラウド時代のITインフラとしてコンテナをご紹介します。

マルチクラウドって?、クラウドNative?、コンテナって?・・・・・言葉は知っているけど、まだ馴染み深くない方を対象に分かりやすく(IT部の先輩と後輩の対話形式)お伝えしていきます。

もし記事が面白いな!って思われた方は、皆様の部門内や同僚の方にも共有頂けると幸いです。

コンテナのWhy:コンテナが流行ってきている背景とは?

コーン:後輩

・新卒採用でIT部に配属されて3年目。

・主にネットワークの運用担当。そそかしいけどインフラ全般に興味あり

・北海道出身で実家はトウモロコシ畑。通称:コーン

ティナ:先輩

・外資アプリ会社から転職してIT部に配属されて2年目

・主にインフラ設計を担当。前職でアプリ開発&インフラ設計SEの豊富な経験あり。

・歌手のティナ・ターナーをこよなく愛す。通称:ティナ


コーン

先日は、有難うございました。

ティナ

前回は、コンテナが求められている背景を話したね

コーン

ビジネススピードの加速に合わせてアプリ開発スピードも加速してるって話でした。

ティナ

そうそう、復習すると・・・

コンテナのWhy:コンテナが流行ってる背景とは?

・市場変化の加速し、ビジネススピードも加速

・加速するビジネススピードに合わせたアプリの仕組みとは?

⇒それがマイクロサービスアーキテクチャ

・アプリ開発スピードを支える最適なインフラとは?

⇒それが、コンテナ(マイクロサービスと相性抜群)

コーン

う~ん。コンテナの背景は何となく分かったんですけど、そもそもコンテナって?

ティナ
よしよし!!コーン君も悩んでいるのね。今回はコンテナのWhat。コンテナそのものについて説明をしていくね。

コーン

さすが先輩!是非お願いします。

ティナ

コーン君は、コンテナに馴染みがないので、いきなり説明されても理解が難しいかも・・まずは、コンテナって名前の由来である、物流や貨物船で使われているコンテナについて考えてみようか?

コーン

はい

ティナ

もし、貨物船でコンテナがなかったらどうなると思う?

コーン

う~ん。いきなり質問ですか?そうだな。荷物の大きさや形がバラバラなので、積み上げや積み下ろしが大変そう

ティナ

その通り。確かに荷物がバラバラだと大変だね。そこで「20世紀最大の発明」の一つと言われる物流におけるコンテナが誕生したの。

ばらばらの荷物を規格化したコンテナに格納することで、積み上げ積み下ろし作業が容易になり、更にはコンテナ毎に別々の場所に輸送するのが容易になったのよ。

コーン

規格統一することで、持ち運びが楽なったってことですか?

ティナ

そう。ITインフラであるコンテナも同じように規格統一化し、持ち運びしやくするという理由で生れたんだよ。つまりは、「持ち運びできる入れ物」として、アプリの実行環境をひとまとめにしたもの・・・それが「コンテナ」なのよ。

コーン

コンテナ化すると持ち運びが容易になるんですね。

ティナ

そう、その通り。コンテナ化によりアプリ実行環境の持ち運びやすさ、別の言い方をすると可搬性が高まったので、様々なメリットをもたらしているのよ。

コーン

どんなメリットがあるの?

ティナ

高い可搬性のメリットの一つ目としては、アプリのテスト環境から本番環境への移行のしやすさ。現在多くのシステムはVM環境が多いよね。

コーン

はい。うちの会社のシステムも殆どVM環境で動いてます。

ティナ

VM基盤だと、テスト環境から本番環境に移行する際に、インフラ環境の差異が出てしまう事がよくあるので、アプリの一部を修正したり、インフラ側の調整が必要だったりして、結構な工数がかかってしまう課題があるのよ。

コーン

確かに、うちの会社でもVMの払い出しをもっと早くできないか?って検討してたな。

ティナ

そうね。VMとコンテナを比較するとこんな感じ

コーン

ふむふむ

ティナ

分かりやすく特徴を説明するね。

■ポータビリティ(可搬性)が高い。これはさきほど言った通りで以下のような特徴ね

・テストから本番環境移行が容易

・パブクラ(AWS、Azure、Google・・・)でもオンプレでも、インフラ環境によらず動作

■Immutable(同じ環境を簡単に複製)。これは使い捨てできる環境をすぐに用意できるって事。

具体的には以下の特徴ね

・コマンド一つでコンテナの作成&消去が可能

・設定ファイルから何度も同じコンテナを作成可能

・インフラをコード化できるので構成管理の自動化が容易

■低負荷、高集約、高速起動。これは絵をみてわかる通りかな

・コンテナは、ゲストOSやハードウェアエミュレートが不要なのでとても軽量

・軽量が故にインフラ環境への負荷はVM型より低負荷

・軽量が故に高速起動。数秒程度で起動

・軽量が故に同じインフラ環境であればVM型より高集約

コーン

いや~いっぱい・・・だね

ティナ

そうね。まずは、コンテナの特徴として3つを覚えるよ良いかもね。

簡単&速い

Any Infra

拡張性

コーン

了解っす。わかりやすい!!コンテナには多くのメリットがあるんだね。

でも何か課題はないのですか?

ティナ

良い気づきね!!

コンテナには多くのメリットがありますが、複数のサーバでコンテナを運用しようとすると様々な課題が出てくるの。

例えば・・・

複数のホスト跨ぐコンテナ間の連携や管理は?

コンテナの死活監視や冗長性は?

コンテナのビルドやデプロイの自動化は?

外部からのコンテナアクセス制御は?

複数ユーザで利用するための認証・認可は?

コンテナは揮発性なので・・・データの永続性は?

コーン

コンテナにも様々な課題があるんだね。

ティナ

この運用課題を解決してくれるのが、「オーケストレーションツール」

コーン

コンテナ全体の運用を管理するためのツールだね。

ティナ

オーケストレーションツールには、いくつかあるけど、現在のデファクトは

「Kubernetes」ね。

コーン

Kubernets・・クバネティスっていうんだね。

ティナ

そう。Kubenetesの主な機能は、

①コンテナの死活監視

コンテナが停止してないかを監視

②複数のコンテナホスト管理

コンテナがどのサーバに配備されているかを管理

③仮想ネットワーク管理

複数台のサーバにまたがって数千、数万のコンテナ向け仮想ネットワークにも対応

④オートスケーリング

コンテナの負荷状況により、自動的にコンテナのスケールイン・スケールアウト

⑤コンテナの最適配備(スケジューリング)

コンテナを配備する際に、サーバの負荷状況等を元に自動的に最適な配置(スケジューリング)

⑥セルフヒーリング

サーバ等の障害時に正常系サーバでコンテナの自動再起動

コーン

う~ん。ざっくり理解!!コンテナを実際に運用するには、Kubernetesが必須って事だね。


ティナ

そうそう。それで良いのよ。まずはざっくり理解でね。

コーン

あざーす。

ティナ

では、本日のまとめ。

第1回では、コンテナのWhy?求めれらる背景だったね

今回の第2回は、コンテナのWhat、そもそもコンテナとは?だったね。

■コンテナとは?

ポータビリティ(可搬性)が高い

・Immutable(同じ環境を簡単に複製

・低負荷、高集約、高速起動

■コンテナの特徴とは?

・簡単&速い

・Any Infra

・拡張性

更に更に・・・コンテナ運用を実現するKubernetsって?

■Kubernetes

・コンテナの死活監視

・複数のコンテナホスト管理

・仮想ネットワーク管理

・オートスケーリング

・コンテナの最適配備(スケジューリング)

・セルフヒーリング

※本記事の内容は執筆者個人の見解であり、所属する組織の見解を代表するものではありません。

RECOMMEND