Dockerを導入する前に企業が絶対に知っておくべきこと:問題の発生源をピックアップ
Dockerは優れた技術だが、開発者個人が使うだけなら問題なくても企業レベルになると問題が生じる可能性がある。Dockerのメリットを最大限に引き出し、リスクを回避するため、企業が注意すべきこととは?
「Docker」は優れた技術だ。企業での導入も着実に増加している。
Dockerの大きな魅力は、アプリケーションの作成、導入、実行という操作を大幅に容易にする能力にある。実行に必要な全ての要素をコンテナにラップし、このコンテナをオンプレミス環境やクラウドに導入できる。迅速かつ容易に仮想マシンを作成し、スケーリングできるようにもする。
だが、Dockerには幾つか大きな問題が浮上している。
Dockerをコンプライアンスに従い、パッチを適用し、セキュリティが確保された方法で確実に運用する手順を踏んでいても、何らかの問題が生じることがある。Dockerが小規模な開発者中心の運用ではなくなり、企業規模の導入が増えているところに原因がある。
最も大きな問題の一つがコスト管理だ。これまでのDockerの成長は、主に開発者の草の根レベルの活動として発展してきた。その発展の要件やニーズは企業から求められたものではなく、開発者の気まぐれに左右されている。
Dockerをクラウドに展開し、クラウドプロバイダーから最初に受け取った請求書に衝撃を受ける開発者も少なくない。そこで、何らかの形で監視することが重要な最初のステップになる。
どの部門が仮想CPUとストレージのコストを負担するかという問題を解決するのも簡単なことではない。
こうした問題に対処するベストプラクティスは、妥協点を見つけることだ。ビジネスを実行するインフラのコスト管理を正しく行うことが必要になるだろう。開発システムや運用システムの要件は、ビジネスを運用するこのインフラから生まれる。
ビジネス主導でプロジェクト中心の計画を立て、開発のコスト計算を正当に行い、稼働開始後はアプリケーションの配信と継続的サポートを行うことが不可欠だ。そうすればコストを適切に配分することができる。
関連記事
- コンテナとDevOpsに求められるセキュリティ
- 実はリスクが多いコンテナのセキュリティを確保する方法
- Red Hatのマネジャーが教える“コンテナにまつわる6つの誤解”
- DockerとKubernetesのさらに先へ拡大するコンテナエコシステム
- GoogleのDocker管理ツール「Kubernetes」基礎の基礎
セキュリティのロックダウン
対処が必要な次の領域は、Dockerを取り巻くセキュリティだ。現時点では、ネットワーク管理技術のコミュニティーがこの問題に熱心に取り組んでいる。
こうした技術は比較的高額になる可能性がある。ただし、インスタンスレベルでDockerのセキュリティを強化する価値が非常に高い環境もある。全ては、企業が受け入れるリスクレベルによって決まる。
低いレベル(実装は簡単でも、重要なレベル)では、脆弱(ぜいじゃく)性スキャンを継続的インテグレーションのビルドプロセスに統合する機能がある。このレベルは脆弱性の解決が容易であり、試す価値のある無料のオプションも多数用意されている。
インスタンスの種類の管理
簡単だが有益な手順として、ダウンロードした既成のDockerインスタンスを監視する方法がある。
悪意を含むことがさまざまな方法で実証されているDockerインスタンスは極めて多い。こうしたインスタンスを避けるには、検証済みの開発者から公式に提供されているインスタンスであることを確認する。無作為に見つけたイメージを単純に信頼してはいけない。
署名されたDockerイメージの使用を義務付ける。そうすればセキュリティのレベルが高まる。安全で正しいとされるイメージでも潜在的な問題を全て解決することは恐らくできないだろう。だがコストがかからない、非常に役立つ方法ではある。
インフラへのアクセス制御を確保することも同様に重要になる。人として信頼できる開発者だとしても、その開発者がクラウドセキュリティの専門家だとは限らない。
インフラへのアクセスを管理する権限を管理者に与え、リソース、権利、ネットワークインフラを割り当てることができるようにすべきだ。
プロジェクトに関連する作業を完全に一元管理することで、運用が容易になるだけでなく監査や管理も安全かつ容易になる。一元化しておかないと、クレジットカードの請求先の開発者が離職しただけで機能停止や実質的な破綻に陥る恐れがある。
インフラ管理への取り組み
インフラレベルの管理も対処が難しい領域の一つだ。それは、経営幹部の目の届かないところで、開発者が「ステルスモード」でDockerのインストールを開始していることが多いためだ。仮想マシンとは異なり、Dockerインスタンスの存続期間には限りがある。
そこで、アプリケーションのレベルで管理するようにする。つまり仮想マシンの可用性ではなく、アプリケーションの可用性を中心に考える。すると仮想マシンの概念は本質的になくなる。
要約すると、Dockerは必要に応じて規模を変え、必要に応じて利用できるという点で最高の機会を提供する。利用するリソースのコストも削減できる。だがビジネスを期待通りに継続させるには、こうした能力を専門的かつ安全な方法で管理しなければならない。
Copyright © ITmedia, Inc. All Rights Reserved.