話題のDockerの魅力とは? OSSインフラナイター vol.1 レポート

小林 和正

2017年7月14日 0:15

6月15日、サイオステクノロジー株式会社のセミナールームにて「Docker 最前線!OSSエキスパート鼎談シリーズ: 攻めるITはこう実現する! OSSインフラナイター vol.1」が開催された。

ネットスケープ創業者 マーク・アンドリーセン氏が「すべての企業がソフトウェア会社になる」と予言したように、近年ではソフトウェアの活用による事業改善など様々な取り組みが見受けられる。2017年、ソフトウェアにおいてホットなトピックのひとつと言えばコンテナ技術だろう。

本イベントでは今もっとも人気のコンテナ技術「Docker」と、マイクロサービスなどで使われている「nginx」からみたコンテナ技術の講演があったのでレポートしていく。最後にOSSのエキスパート3名がエンタープライズITを語る鼎談の様子をお届けしよう。

巷で話題のDockerを知る ~ 先進企業は、なぜDockerを使って攻めるのか? ~

日本ヒューレット・パッカード株式会社 オープンソース・Linuxテクノロジーエバンジェリスト 古賀 政純氏

最初に登壇した日本ヒューレット・パッカード株式会社 オープンソース・Linuxテクノロジーエバンジェリストの古賀 政純氏は、Dockerが注目を集めている背景と革新性を語った。近年はビジネスの変化に瞬時に対応するためにマイクロサービス化が進んでいる。マイクロサービスとは小さなアプリケーションを組み合わせて構成されたシステムで、この小さなアプリケーションが動作するのがコンテナだ。

コンテナについて簡単にざっくりと説明すると、OS環境に近いが異なるものの上で目的のプロセスのみが動作する。仮想化環境との違いでメリットとしては、OSのインストールが不要なため環境構築を高速化できる、Hypervisorを介さないためオーバーヘッドが小さい、必要最小限のプロセスだけ動くのでOS上で実行するよりも安全性が高いことが挙げられる。

欧米企業によく見られるOSとアプリケーションの構築作業を極力やらない戦略

次に、構築手順書に基づいてOSとアプリケーションを構築する作業を省くという発想からDockerを紐解いてみよう。ここで活躍するのがDocker Hub(コンテナ共有サービス)から入手できるDockerイメージだ。これはコンテナの実行に必要なファイルシステムで、構築作業不要でコンテナを起動できる。このコンテナ上で開発してイメージの更新を繰り返していくのがコンテナシステムの典型的な利用方法だ。

DockerイメージをTARアーカイブにしてコピーすれば簡単に移動可能で、環境構築の手順をコード化したDockerfileは一連の流れを自動化できる。さらにDockerコンテナは、コピー元とコピー先で同じように動作する仕組みになっている。すなわち、実行環境やライブラリのバージョン、環境変数の違いで動かないことはない。このように可搬性と冪等性を確保できるのがDockerの魅力であり、環境構築や開発の高速化に寄与しているのだ。

Dockerを採用したレッド・ブラック・デプロイメントの概要図

Dockerの活用例として紹介されたのが、本番環境に手を加えないイミュータブル・インフラストラクチャという考え方と、負荷分散装置やルータで本番と開発環境を一度に切り替えるレッド・ブラック・デプロイメントと呼ばれる手法だ。セキュリティーホールを塞ぐパッチの適用や新しいサービスをすぐに提供する際など、アプリケーションの更新作業が頻繁に発生する環境においてはスピーディに対応できる、Dockerを採用したレッド・ブラック・デプロイメントが効果的だろう。

マイクロサービスで使われるnginxとコンテナ技術

サイオステクノロジー株式会社 OSS事業企画部 アクティングマネージャー 村田 龍洋氏

続いて、サイオステクノロジー株式会社 OSS事業企画部 アクティングマネージャーの村田 龍洋氏が登壇した。nginxと聞くとWebサーバを連想しがちだが、実はそれ以外でも幅広く使われており、Webアプリケーションを加速させるツールだと言う。

nginxの特徴およびApacheとの違い

まず、nginxの特徴は高速・軽量・高機能の3つ。Apacheと比較しながら高速かつ軽量な理由を探ってみよう。大きな違いはプロセスの立て方だ。プロセスベースのApacheは1プロセス1クライアントで同期処理を行うが、イベントベースのnginxは1プロセスで10,000クライアント以上を非同期処理できる。

このように、nginxではCPUの処理能力が重要だが、仮想化環境を利用するとハードウェアをエミュレーションするため、オーバーヘッドがかかってしまう。Dockerを使うとハードウェアのエミュレーションが不要になるので高速に処理できる。よって、Dockerとnginxは相性が良いと言える。

nginxはWebサーバ以外にどのように使えるのだろうか。いくつか具体例を挙げてみよう。フロントに置いてリバースプロキシとして使えば分散型のアプローチが可能だ。アプリケーションゲートウェイや動画の配信プラットフォームとして利用することもできる。これが特徴のひとつ、高機能に相当する部分だ。

レガシーアプローチとモダンアプローチの違い

続いてマイクロサービスに関する話題に移る。マイクロサービスは小さなアプリケーションをAPIで疎結合したものだ。モダンな分散型Webアーキテクチャ(マイクロサービスアーキテクチャ)には様々な利点がある。小さなアプリケーションを素早く開発してサービスの展開速度を向上できる。もし障害が発生したとしても対象のサービス以外は利用できるので、耐障害性に優れる。パフォーマンスを改善する時はボトルネックになっているサービスのみ変更できるなど拡張性も高い。

以上のようにコンテナ技術とマイクロサービスアーキテクチャの組み合わせは、開発者の生産性と事業のスピードを重視したシステムに最適だ。一方で基幹に使われるような安定性と信頼性を重視したシステムには不向きと言える。全てに共通して言えることだが、万能なものはない。用途に合わせて選択する必要があるだろう。

OSSエキスパート鼎談シリーズ: ここだけでしか聞けないDockerの内緒の話

鼎談者は左からサイオステクノロジー株式会社 面 和毅氏、村田 龍洋氏、日本ヒューレット・パッカード株式会社 古賀 政純氏

OSSエキスパートが今回のテーマであるDockerについて語り合った。ほとんどがDockerを導入する時に考えておくべきことや今後の課題だった。全て取り上げると長くなるので、筆者がピックアップした中から要点だけ簡潔にまとめて列挙していく。特にDockerビギナーがハマりそうなポイントをおさえてあるので、ぜひ確認してもらいたい。

  • コンテナ型仮想化のDockerは共通のカーネルでユーザランドを仮想化しており、例えばLinux上でWindowsのコンテナは動作しない
  • マイクロサービスになりにくくコンテナ化できないようなシステムも存在するため、適用対象のシステムを理解しておくことが重要
  • Dockerで動かしたいアプリケーションが技術的に動くかは別として、ベンダーがサポートしているかを確認する
  • 簡単にダウンロードできるDockerイメージは信頼性が担保されていないので、検証してから使用するのが好ましい
この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30