【やってみよう、コンテナ化!~その1~】コンテナとは?仮想マシン (Virtual Machine/VM) との違い、コンテナ利用体験について
迅速さや電力などのリソース有効化の観点からも、既存 VM 環境からコンテナ化へ取り組むべきであることは多くのエンジニアの方がご理解されていると思いますが、実際のところ、どうなんでしょうか?
そんな声にお応えして、今更聞けないコンテナの概要、実際のコンテナ利用体験、クラウドネイティブな分散型 SQLデータベースを使った自習コンテンツでの学習方法、AKSの超高速デプロイ体験まで、全3回のシリーズでお届けします。
今回は第1弾として、コンテナの概要と、実際にデスクトップ環境へコンテナをインストールして利用するところまでをご紹介します。
コンテナ (Container) とは?
コンテナはクラウドのみならずオンプレミス、ラップトップPCなど多様な環境においてWindowsとLinuxのアプリケーションをパッケージ化して実行する仮想化技術です。
近年、コンテナ技術が急速に普及している理由として、コンテナはアプリケーションの開発、デプロイ(実装)、運用および管理を容易にする軽量で、物理サーバ内のリソースを分離しそのスペースを使用した仮想化されたコンピュータ環境を提供します。
コンテナを使用すると、ランタイム環境全体(バイナリ、ファイル、依存関係など)でアプリケーションをパッケージ化して分離できるので、アプリケーション開発はホスト環境を意識することなく運用までのパイプラインを連携した DevOps (デブオプス)に対応し、完全な機能を維持しながらコンテナ化されたアプリケーションを複数の環境間で簡単に移動ができます。
コンテナは素早い利用の開始および停止ができる特徴も兼ね備え、需要の変化に迅速に対応する必要があるアプリケーションに最適です。
コンテナと仮想マシン(VM)との違い
コンテナは仮想マシン(VM)と似ていますが明確な違いがあります。
それは、コンテナの仮想化されたコンピュータ構成が仮想マシンとは大きく異なるという点です。
仮想マシンには独自のコンピューティングシステムとオペレーティングシステム (OS) がありますが、コンテナにはオペレーティングステムがありません。コンテナにはオペレーティングシステムがないため、基本構成では軽量となり、リソース消費が少なく拡張性に優れた環境でインフラストラクチャの密度と使用率の向上に役立つ仮想化技術です。
オペレーティングシステムはホストのカーネルを共有利用しますが、コンテナがそれを自由にアクセスできないので、アプリケーションのデータを保存するために、コンテナは永続的ストレージをマウントして利用する形態が一般的です。
Kubernetes(クーバネイティス)とは
コンテナはOSS(オープンソースソフトウェア)なので、無料で利用することができます。
コンテナプラットフォームで最も人気のあるKubernetes(クーバネイティス)も、OSSなので無料で利用ができ、同じくOSSであるLinux ディストリビューションと標準化されたテクノロジーに基づいています。
注意点としては、無料環境であるため、メンテナンスは利用者側で行わなければなりません。
Kubernetesとは?基本概念をわかりやすく解説!使い方やメリットもご紹介
Docker(ドッカー)とは
Dockerは、コンテナ仮想化を用いてアプリケーションを開発、デプロイ、実行するためのオープンプラットフォームであり、アプリケーションを迅速にリリースできます。
また、Dockerはデスクトップ版も用意されており、商用利用(組織の従業員数が250人以上または年間収益が1千万米ドルを超える)および政府機関では有償版を使用しなければなりません。
ただし、個人用や教育用途はこの限りではありませんので、本ブログ後半ではデスクトップ版Dockerを使った利用体験をご紹介いたします。
Red Hat OpenShift (レッドハット オープンシフト)とは
Kubernetes をエンタープライズ対応した有償のRed Hat OpenShiftによるコンテナプラットフォームがあります。
従来のアプリケーション環境をコンテナやKubernetesへの移行をサポートし、ハイブリッドクラウド戦略の可能性を最大限に引き出します。
Red Hat OpenShiftはオンプレミスで利用することも、クラウドでフルマネージドサービスとして利用することもできます。
クラウド提供事業者による独自の Kubernetes サービス
クラウド提供事業者はエンタープライズ向けフルマネージドサービス Red Hat OpenShiftを提供するもの以外に、クラウド提供事業者による独自の Kubernetes サービスもあります。
パブリッククラウドのホストにコントロールプレーン(Kubernetes Master)とKubernetesが管理するコンテナホストのクラスタを構築、管理や自己回復にスケーリング、Kubernetesの更新といった運用負荷軽減となる機能を提供しています。
詳細については、今後当ブログで紹介してまいります。
ラップトップPCによるコンテナ利用体験
ここまでの内容で、コンテナについての基本知識を抑えていただけたかと思います。
それでは、早速ではありますが、皆さまのラップトップPCでコンテナ利用体験をしましょう!
ここではオープンソースの高性能分散SQLデータベースであるYugabyteDB練習環境を準備することをテーマにしました。
※参考:TD シネックス、クラウドネイティブのアプリケーションに最適な分散型SQLデータベースYugabyteDBを提供開始 | TD SYNNEX
利用手順1:Docker Desktop for Windows をインストール
Docker Desktop for Windows をインストールし、初回起動を済ませます。
この時、ユーザーアカウント入力は “Close” をクリックし、スタートガイドは “Skip tutorial” をクリックしてお待ちください。
※職場や学校などで貸与PCをご利用の方は外部アプリケーションとして Docker for Desktop for Windows が利用可能かどうか事前確認をお願いいたします。
※本ブログ記事はYugabyteデータベースの学習方法は割愛いたします。ラップトップPCによってはネットワークセキュリティソフトウェア等によりエラーあるいはアクセス制御が発生することもあります。ご留意ください。
利用手順2:コンテナイメージの入手
本ブログ記事では Yugabyte 2.17.0.0-b24(オープンソース版)を対象としました。
Windows コマンドプロンプトで次のコマンドを投入すると、インターネットを経由して Yugabyte イメージのダウンロードが始まります。
docker pull yugabytedb/yugabyte:2.17.0.0-b24
利用手順3:コンテナイメージの起動
Windows コマンドプロンプトで次のコマンドを投入すると、ご使用中のラップトップPCでYugabyteが使用可能となります。
docker run -d --name yugabyte -p7000:7000 -p9000:9000 -p5433:5433 -p9042:9042 yugabytedb/yugabyte:2.17.0.0-b24 bin/yugabyted start --daemon=false --ui=false
このとき、Docker Desktop for Windows アプリは次の表示に切り替わっています。
これは Yugabyte コンテナがラップトップPC の TCPポート #5433, #7000, #9000, #9042 が待ち受けとなっていることを示しています。
利用手順4: Webブラウザからコンテナアプリケーションの管理画面、ダッシュボードアクセス
Webブラウザから Yugabyte コンテナアプリケーションの管理画面、ダッシュボードへアクセスしましょう。
利用手順5:コンテナイメージの利用停止
Docker Desktop for Windows アプリの対象コンテナ Actions 左側にある ■Stop ボタンをクリックしましょう。すると数秒程度でグリーン表示だったコンテナアイコンがグレーアイコンに切り替わり利用停止します。
まとめ
本ブログ記事ではコンテナの概要から利用体験までをご紹介しました。コンテナを使わずに仮想マシン(VM)でOSを導入し、ミドルウェアを導入するための各種ライブラリをインストールし環境整備することなどと比較することを想定すれば、コンテナ利用がいかに迅速であるのかをご体験いただけると存じます。
当社では既存VM環境からコンテナ化への移行や、既存PostgreSQLからPostgreSQL互換性のクラウドネイティブYugabyte DBへの移行ご相談を承っております。
次回(2回目)は、「Yugabyte University(自習コンテンツ)をやってみよう!やったら資格も取れちゃった!!」をご紹介します。
著者プロフィール
■ TD SYNNEX 株式会社 | 斉藤 之雄
アドバンスドソリューション部門 ソリューションビジネス開発本部 プリセールス&エンジニアリング部 マルチクラウドチーム (Azure Solutions Architect Expert, Azure DevOps Engineer Expert)
マイコン少年時代から関東電子(TD SYNNEX前身)を利用するなどソフトウェア、ハードウェアともに昔をよく知る。コンピューター業界は1996年から異種混在環境における再販ビジネスの技術営業からキャリアを開始し、特に導入支援や教育プログラムの立ち上げは定評を有する。国内大手電気通信事業者では社内クラウドコミュニティの主要メンバーとし全国SEへ対するリスキリングプログラム推進活動を実践した。2022年4月TD SYNNEX入社以来、CoE(センターオブエクセレンス)プロダクトの日本市場展開や AI/ML (人工知能/機械学習)サービスを中心とするプリセールス活動を行っている。愛猫家、社会福祉士でもある。
■ TD SYNNEX株式会社 | 安藤 一恵
アドバンスドソリューション部門 マルチクラウドPM本部 マルチクラウドソリューション部 プロダクトマネジャー
2003年、新卒で外資系ハードウェアベンダーにITコンサルタントとして入社。国内大手通信会社の基盤系インフラ構築プロジェクトに、エンジニア兼任プロジェクトリーダーやプロジェクトマネージャとして従事。様々な案件を取り組むうちに、上流工程からリードする役割を担っていきたいと考えるようになり、公募を受けソフトウェアのプリセールスに職種を変更。セールスシナリオの構築と展開、セミナー企画、パートナビジネス支援等を実施。ビジネスとITの最適化、コスト削減、自動化、仮想化、クラウドソリューション等を主に展開。
その後、外資系ソフトウェアベンダーに転職し、プリセールスとして国内大手通信会社やキャリア、行政、流通オンラインストア向け、ゼロダウンタイムソリューションや行動分析基盤等の提案活動を行う。
2013年、結婚を機に退職後、転勤族の夫と子供たちと日本・米国をあちこちと居住した後、2022年12月に復職。TD SYNNEXにて、お客様のDXを推進するクラウドソリューションを支えるエコシステムの拡販・提案活動に尽力している。2児の母。