2018年03月02日 08時00分 公開
特集/連載

Dockerで永続ストレージ(前編)Dockerで永続ストレージを実現するDockerボリュームとバインドマウント

Dockerでも永続的なストレージが必要な場面が増えてきた。永続ストレージを実現する方法は複数あるが、最適な方法を選択するには幾つかの要件を考慮する必要がある。

[Chris Evans,Computer Weekly]
Computer Weekly

 コンテナはホットな話題であり。このテクノロジーで代表的なのが「Docker」だ。これを使うと、完全な仮想マシン(VM)ではなく軽量のプロセスセットとしてアプリケーションを展開できる。

Computer Weekly日本語版 2月21日号無料ダウンロード

本記事は、プレミアムコンテンツ「Computer Weekly日本語版 2月21日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。

なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。

ボタンボタン

 Dockerは、アプリケーションイメージのライブラリ(Dockerハブ)、実行環境(コンテナエンジン)、ネイティブの「Swarm」と「Kubernetes」(ともにDockerクラスタ管理ツール)のサポートといった一連のオーケストレーション機能を組み合わせて、コンテナの迅速な開発を可能にするエコシステムを築いてきた。

 当初コンテナは、恐らく数分または数時間ほどの短命なものと想定されていた。かつての典型的なユースケースは、マイクロサービスやWebベースのアプリケーションから構築されるアプリケーションだったからだ。

 しかし、従来型データベースやNoSQLデータベースなど、寿命が長いアプリケーションもコンテナのエコシステムを使って展開できることが次第に明らかになってきた。

 Dockerは典型的な3層アプリケーションからかなり複雑なWebネイティブのアプリケーションに至るまで、さまざまなシステムを構築できる可能性を秘めている。

 テクノロジーの実装方法によって、データの耐障害性(レジリエンス)がアプリケーションに存在する場合と、インフラによって提供される場合がある。その結果、コンテナのインスタンス化全体で、データの可用性を確保するストレージレイヤーに永続性が必要であると分かった。

 コンテナ技術が成熟するにつれて、他の要件も発生したことを忘れてはならない。開発が完了していない要件もあるが、今後時を追うごとに重要性が増してくるだろう。

  • 永続性

永続性を備えるには、データが確実にコンテナの寿命を超え、さらには異なるホストとの間でもレジリエンスを維持することを保証しなければならない。アプリケーションに固有のレジリエンスが組み込まれていないか、あるいはコンテナが自動的にホスト間を移動する場合、これが不可欠になる。

  • セキュリティ

アプリケーションのデータはどの方法で保護されるのだろうか。これには、暗号化と、各コンテナおよびその他の外部サービス(バックアップなど)からのアクセスを制御する際の要件が含まれる。

  • パフォーマンス

各コンテナで使用するデータについて、入出力(I/O)のパフォーマンスをどのように管理するのか。I/Oスループットとレイテンシの管理について要件が存在する。

  • 保護

データ保護はコンテナの世界でも適用される。これには、ドライブやメディアなどのハードウェア障害に対する物理的な保護と、大規模なインフラで障害が発生した際の復旧のしやすさが含まれる。

  • モビリティー

複数の場所に分散しているデータの可用性の管理は、恐らく最も興味深い課題の1つになる。コンテナはプライベート(自社内)およびパブリック(クラウド上に構築した)のデータセンターで使用されるためだ。

Dockerボリューム vs. バインドマウント

 ストレージとコンテナのオプションは、コンテナレイヤーでの使用目的によって異なる。

 Dockerエコシステム内では、コンテナを実行するホストからストレージを調達できる。このストレージ空間は、新規作成されたファイルディレクトリ(コンテナの起動時に作成される)、またはホスト上に既に存在するディレクトリとして提供される。

 前者の技法はDockerボリュームと呼ばれる。これは基本的にDockerが管理するディレクトリだ(通常は/var/lib/docker/volumesディレクトリにある)。

 Dockerボリュームは、コンテナを開始する前にあらかじめ作成しておくこともできるし、複数のコンテナで共有することもできる。また、ボリュームプラグインを使用することもできるが、こちらの詳細については後述する。

 2番目の選択肢は、ホストのディレクトリをコンテナへマッピングすることだ。この技法はバインドマウントともいう。

この記事を読んだ人にお薦めの関連記事

注目テーマ

ITmedia マーケティング新着記事

news042.jpg

訪日外国人観光客が礼賛、おもてなし力が高い日本の都市トップ10――Airbnb調査
訪日外国人旅行者の目的が体験型消費に移行しつつあるといわれる中、どのような都市が高...

news033.jpg

Facebook日本進出から10年、個人情報不正利用問題が広告事業に与える影響は?
Facebook日本進出10周年に当たり、フェイスブックジャパンは記者向けの説明会を開催。気...

news114.jpg

LINE、QRコード読み込みで即時抽選ができる店頭販促支援サービス「LINEインスタントウィン」を提供
LINEは、「LINE」を活用した店頭販促ソリューション「LINE SP Solutions」の新メニューと...