コンテナとは、すべての依存関係を綿密にマッピングしたコードパッケージで構成される、標準化されたソフトウェア形態です。アプリケーションの実行に必要なものがすべて含まれています。コード、ランタイム、ツール、ライブラリ、設定などは、すべてコンテナ内に収められます。このソフトウェアのまとまりは、環境にかかわらず、設計どおりOS上で動作します。そのため開発者は、レゴブロックのようにコンテナを組み合わせ、システムをより迅速に提供し、アプリケーションの俊敏性を高められます。コンテナには、仮想マシン(VM)よりもさらに移植性が高く、必要なリソースが少ないという利点もあります。
コンテナエンジンの分野では、開発が絶えず進められ、多くのニュースが発表されています。ここでは、最新ニュースやトレンドの一部を紹介します。
Dockerの機能強化
Dockerは、商用コンテナエンジンの草分けです。しかし、現状に甘んじているわけではありません。直近では、セキュリティ強化を目的にAtomistを買収しました。Atomistは、既存のワークフローやツールを中断することなく、ソフトウェアサプライチェーン全体の可視性と制御を提供します。ユーザーをリスクにさらす変更を、意図せず出荷してしまうことを防ぎます。
DockerのCEOであるScott Johnston氏は、「これをDockerに統合することで、開発者がアプリケーションを作成する際にセキュリティ対策を前倒しで進めながら、DevSecOpsチームの要件にも応えられるようになる」と述べています。
Atomistの買収からわずか数週間前には、DockerはKubernetes上で活動するチーム向けに、コードとしての開発環境を作成するTiltも加えました。これを利用して、Dockerにおけるマイクロサービス開発の負担を軽減することが狙いです。
「Tiltは、Kubernetes向けのアプリを構築する開発者が、より短時間で作業を完了できるよう支援します」とJohnston氏は述べています。「ライブアップデートや共有可能で再現性のある開発環境など、Tiltの機能をDocker Desktopに統合することで、開発チーム間のコラボレーションが促進され、リリースのペースが速まります」
Windowsコンテナのアップグレード
Microsoftは最近、Windows Server 2022プラットフォームの一環として、複数のコンテナ機能強化を導入しました。例えばWindowsコンテナでは、ホストとは別に仮想化されたタイムゾーン設定を保持できるようになりました。また、ユーザーから不満が寄せられていたコンテナエンジンの問題もいくつか修正しています。修正内容は次のとおりです。
- 1つのノード上で数百のKubernetesサービスやPodを使用した際にポートが枯渇する問題の解消。
- Hyper-V仮想スイッチにおけるパケット転送性能の向上。
- KubernetesでContainer Networking Interface(CNI)を再起動した際の信頼性向上。
- Windows ServerコンテナおよびKubernetesネットワーキングで使用される、Host Networking Service(HNS)のコントロールプレーンとデータプレーンの改善。
Oracle Container Engine
Oracle Container Engine for Kubernetesは、Oracleが管理するコンテナオーケストレーションサービスです。モダンなクラウドネイティブアプリケーションの構築にかかる時間とコストを削減するよう設計されています。Oracleは、より高性能で低コストのコンピューティングプラットフォーム上で実行できるContainer Engine for Kubernetesを、無料サービスとして提供しています。
このコンテナエンジンに関する最近の開発の1つが、Kubernetes向けOracle Cloud Infrastructure(OCI)Service Operator(OSOK)です。このオープンソースのアドオンにより、KubernetesユーザーはKubernetes APIを使用して、Autonomous DatabaseサービスやMySQL DatabaseサービスなどのOCIリソースを管理できます。その結果、Kubernetes環境やKubernetesのツールを使用して、OCIリソースの作成、管理、接続をより簡単に行えるようになります。
コンテナセキュリティの強化
DockerやKubernetesなどの各種コンテナプラットフォームには、標準のセキュリティ制御機能がいくつか組み込まれています。しかし、クラウドセキュリティと同様に、コンテナの保護をめぐっては、さまざまなセキュリティツールやアプローチが生まれています。コンテナ化されたアプリケーションの開発でも、脆弱性を含む可能性のあるサードパーティ製ソフトウェアコンポーネントが頻繁に利用されます。そのためコンテナは、コンテナが提供するはずの分離を迂回する不正なプロセスの影響を受けやすくなります。これにより、他のコンテナイメージへの不正アクセスにつながるおそれがあります。コンテナイメージ自体に脆弱性が含まれている場合、それが意図せずアプリケーションにデプロイされる可能性もあります。さらに、攻撃者に悪用されかねない権限設定の誤りも存在します。
このため、近年はコンテナセキュリティに大きな注目が集まっています。主要ベンダーやコンテナ技術のオープンソース版は、いずれもセキュリティを強化するアップグレードを提供しています。コンテナの利用が広がるにつれ、これらのエンジンにはさらに多くのセキュリティ機能が標準搭載されることが予想されます。
Aqua Securityの機能強化
例えばAqua Securityは、SaaSサービスを提供できる地域を着実に拡大しています。さらに最近では、IBM Power Systems上のRed Hat OpenShift向けランタイムセキュリティサービスをリリースしました。Aquaプラットフォームは、ハイブリッドクラウドを可視化します。コンテナ化されたワークロードを停止することなく、リスクを検出して優先順位を付け、サプライチェーンを保護し、攻撃を緩和できます。最近追加された機能には、コンテナの不変性の強制、IBM Power 10アーキテクチャ上で稼働するRed Hat OpenShiftホストをスキャンしてマルウェアや脆弱性を検出する機能、ネットワークセグメンテーションの適用とコンプライアンス対応、ファイル整合性の監視などがあります。