Docker Desktopが有料化になった件
こんにちは、セキュアのHです。
中途で7年ほど前に入社し、開発職でプロジェクトマネジメントなどを行っています。今はCI/CDなどの継続的デリバリー周りに興味があり、導入検討からテストまでを行っています。
今回は、ニュースになっているDocker desktopが有料になった件についてお話したいと思います。
いつから有料化?
2021年8月31日 Docker社は、これまで無料で提供していたDocker Desktopを同日8月31日 有料化することを発表しました。
※有償化の猶予期間は2022年1月31日迄
Docker DesktopはWindowsやMacなどの環境に簡単にコンテナシステムを用いた開発環境を構築できるソフトウェアです。
今回の発表では、Docker Hubでこれまでも提供していたプランにDocker Desktopに関する記載を追加し、無料プランであるPersonalのユーザは「従業員数が250人未満、収益が1,000万ドル未満であればDocker Desktopは引き続き無料で利用可能」として毎月5ドルのPro以上のプランであれば制限無くDocker Desktopを利用できる形となっています。
※コンテナシステムとは
これまで1台のパソコンの中で複数のOSを稼働させる場合には仮想OSを利用するという方法が取られていましたが、コンテナ技術を用いてより軽量に複数の環境を構築できるようにした仕組みのことです。
※DockerHubとは
Docker社が提供するコンテナレポジトリサービスで、コンテナシステムで作成した環境を保存しておき、簡単に共有できるサービスです。
有料化のデメリット
例えば企業として、今回の有料化に伴いDockerDesktopの利用をやめるという選択肢があると思います。
利用をやめた場合、開発の現場としてすでにコンテナ技術を利用した仕組みがあるのであれば、代用品を探す必要が出てきます。
下記のような記事のように、他のもので機能代用も一部可能だと思います。
<Docker Desktopの代替方法 - Windows and Mac編>
ただし、これは記事の中でも触れられている通り、大きな学習コストとリスクを含むことになります。
代用のデメリット:学習コスト
2021年9月現在では、まだコンテナ技術の中心にDockerが存在することを否定することは出来ません。
例えば、Googleで「コンテナ ビルド」などと検索して、Docker Desktopを利用していない記事を見つけることはかなり骨の折れる作業になります。
また、「DockerではXXXだけど、別のシステムではYYY」等が往々にしてあります。これらの違いを含めた新しいソフトウェアの使い方については大きな学習コストを要することになると思います。
代用のデメリット:リスク
例えば、既存のシステムでKubernetesを利用していて、DockerDesktopが利用禁止となった場合。開発者はDockerDesktopを利用せずにコンテナをビルドして、テストし実環境に入れる必要があります。
このとき、Kubernetes内で動作しているコンテナの実行環境は基本的にDockerになってしまいます。
例えば、こういった問題に気づかずに開発者が実際の環境に実装してしまった場合に、どのような反作用が発生するかは分かりません。
こういった問題が事前に気づけた場合も、問題が起きないようにするための検証コストがかかってくることになります。
※Kubernetesとは
コンテナオーケストレーションシステムでコンテナの運用や監視などを自動的に行なってくれるシステム
有料化のメリット
有料化によりサービス利用料が発生しますが、今まで以上のサービスを受けられるというメリットもあります。そこで、DockerHubのプランがPro以上になった場合に利用できるサービス(機能)のお話をさせていただきます。
有料化のメリット:プライベートレポジトリが無料
最も大きなプランの違いが「プライベートレポジトリが無制限」という点だと思います。
※無料プランではプライベートレポジトリが最大1つという制限があったのですが、Proではこれが無制限になります。
通常、クラウド系の開発プロジェクトでは有料のコンテナレポジトリサービスを契約し、それを利用するのが一般的なのですが、基本的にこういったサービスは従量課金になっており、利用された容量により課金される仕組みになっています。
・AWS Amazon Elastic Container Registry :1GB/月額 0.10USD
・Azure Container Registry :10GB/月額 18.66円 (basicプラン)
・GCP Container Registryでは 1GB/月額 0.023USD
(Standard Storage/asia-northeast1で試算)
これは保存しているデータに対してかかるコストだけで、他に通信データに関してもコストがかかってきます。
これらをDockerHubのプライベートレポジトリへ移行できれば、月額料金の中で利用できる事になります。
有料化のメリット:自動ビルドサービス
利用するコンテナレポジトリサービスをDockerHubに移行できれば、Githubと連携した自動ビルドのサービスも利用する事ができます。
この機能は、GithubにアップロードされたDockerFileをもとにDockerビルドを実行し、イメージを自動的にビルドする機能です。
これまでは独自のローカルやGithub Actions等を利用してビルドを行ってきましたが、これらもDockerHubのサービスの一部で利用することが出来ます。
例えばGithub Actionsの場合はプライベートレポジトリでのGithub Actionsは3000分までは無料ですが、それ移行はコストが掛かる仕様になっています。
こういった、コストも上手くDockerHubを利用することで圧縮する事ができるかもしれません。
※Proプランでは同時に5までの同時ビルドが無料となっています。
注意点:突然のプラン改定
しかし、こういったSaaSサービスの機能に大きく依存してしまうと思わぬ落とし穴が突然起こることもあります。
Docker Hubでは2021年8月にPullに関する制限やレポジトリの保存期間の制限などの新しい規約を追加しています。
今回の有料化もそうですが、SaaSサービス一種類に依存してしまうのは大きなリスクが伴うものです。
マルチクラウドなどを利用して、同一の仕様で容易にサービスを変更できるように設計しておく事が最も重要かもしれません。