(Photo by:George Thomas)
はじめに
DevOpsを実践していますか?
DevOpsには、イミュータブルインフラストラクチャー(不変のインフラ)というものがあり、それを実現するための方法のひとつとして「Docker」が利用されています。
Dockerを使って環境を構築するためには、コンテナイメージが必要です。そのため、コンテナイメージをホストするために、自前のリポジトリサーバーを持っている現場もあります。しかし、頻繁にデプロイする環境では、サーバーが高負荷になりがちで、保守・管理も大変です。そういった悩みを解決するために、今回紹介する「Amazon EC2 Container Registry」サービスが開発されました。
この記事では、
- 現在Dockerコンテナイメージの自前のリポジトリサーバーを運用している方
- これからプロジェクトにDockerを活用しようと思っている方
のために、DockerとAmazon EC2 Container Registryサービスの概要を説明した後で、競合サービスであるDocker Hubとの料金比較をしていきます。ぜひご一読して、新規導入や移行の際の検討材料にしてください。
その前にDockerってなに?
公式サイト:https://www.docker.com/
Dockerは、コンテナ型の仮想化ソフトウェアです。従来のホスト型などの仮想化ソフトよりも軽量で、少ないリソースで高速に実行できることが特徴です。Dockerでは、仮想マシン(コンテナ)をコンテナイメージから起動します。事前に設定ファイルを記述し、コンテナイメージをビルドしておくことで、何度でも同じ環境を再現することが可能です。
また、Dockerが動作する環境であればどこでも実行できるため、可搬性も高めることができます。最近では、さまざまなクラウドサービスがDockerコンテナホスティングサービスを提供しているので、Dockerコンテナ上でサービスを動作させればベンダロックインの低減にもつながるでしょう。
Amazon EC2 Container Registryはどんなサービス?
公式サイト:https://aws.amazon.com/jp/ecr/
Amazon EC2 Container Registry(Amazon ECR)は、AWS(Amazon Web Services)のサービスのひとつで、Dockerのコンテナイメージを保存しておくためのレジストリです。ECRに保存したコンテナイメージは、Amazon EC2 Container Service (Amazon ECS)などのサービスにデプロイすることができます。IAMを使った権限管理にも対応しており、AWSとの親和性が高いのが特徴です。コンテナイメージの操作は、Docker CLIから行えるため、Dockerに慣れている方も移行しやすいでしょう。なお、コンテナイメージはAmazon Simple Storage Service(Amazon S3)に保存されます。
Amazon ECRとDocker Hubの料金比較
Docker Hubについて
まずは、Docker Hubについて簡単に説明しておきます。Docker Hubは、Dockerの開発元が提供している公式のDockerコンテナレジストリサービスです。Amazon ECR同様、コンテナイメージを保存して、デプロイすることができます。さまざまなソフトウェアのコンテナイメージが、多数公開されているのが特徴です。ここにあるイメージをベースに、カスタムイメージを作るのもよいでしょう。
Docker Hubの料金体系
Docker Hubは、パブリックコンテナイメージであれば、無制限に保存できます。しかし、無料(Free)プランでは、プライベートコンテナイメージは1つだけしか保存できません。それ以上プライベートコンテナイメージを保存したい場合には、下記の有料プランに加入する必要があります。
プラン | プライベートリポジトリ数 | 月額料金 |
Micro | 5個 | 7 $ |
Small | 10個 | 12 $ |
Medium | 20個 | 22 $ |
Large | 50個 | 50 $ |
XLarge | 100個 | 100 $ |
XX-Large | 250個 | 250 $ |
プライベートリポジトリ数に応じた、シンプルな料金体系ですね。
Amazon ECRの料金体系
対して、Amazon ECRはストレージ容量とデータ転送量に応じた料金体系になっています。
ストレージ:月額0.1 $ / GB データ転送(アウトバウンド):月額0.14$ / GB ※データ転送の最初の1GBまでは無料
なお、データ転送料金は月10TBまでの料金を記載しています。10TBを超える部分についてはさらにプライスダウンされていきます。
両者の料金を比較してみる
それでは、下記の条件で両者の料金を比較してみましょう。
コンテナ(プライベートリポジトリ数) | 20個 |
コンテナイメージサイズ | 500 MB |
月のデータ転送量 | 300 GB |
まず、Docker Hubについては、単純にプライベートリポジトリ数を考えればよいので単純です。ここでは20個なので、「月額22 $」ということになります。
Amazon ECRについては、ストレージ量とデータ転送量に応じた計算が必要です。まずは、ストレージ料金から計算してみましょう。
500 MB × 20個 = 10 GB × 0.1 $ = 1$
次は、データ転送料金です。ここでは、月のデータ転送量を300 GBとしていますが、どれぐらい頻繁にデプロイするかでデータ量は変わってくるでしょう。
(300 GB - 1 GB)× 0.14 $ = 41.86 $
最後に両方の料金を合計すると、「月額42.86 $」になります。つまり、この条件での比較ではAmazon ECRのほうが高くなるということですね。ご覧のとおり、ECRではデータ転送料金が結構かさみます。プロジェクトによっては、ECRのほうが安くなる場合もあるでしょう。
Docker Hub:月額22 $ Amazon ECR:月額42.86 $
Amazon ECRにも無料枠がある
他のAWSサービス同様、ECRにも無料利用枠が用意されています。無料利用枠は、アカウントを新規取得すると、12ヶ月間与えられます。ECRの場合は、「毎月500 MB分のストレージ利用が無料」です。なお、データ転送料金(アウトバウンド)については、AWSすべての合計で「毎月15 GB分が無料」になります。
まとめ
Amazon ECRがどのようなサービスかお分かりになりましたか?たしかに、Docker Hubは公式のレジストリサービスなので、安心感があります。しかし、インフラにAWSを使っているのなら、Amazon ECRを選んだほうが、他のAWSサービスとの統合が簡単になりますし、ひとつのサービスでまとめて管理できるので便利でしょう。類似サービスも検討に入れて、プロジェクトに最適な構成を考えてみましょう。あなたはどんな構成にしますか?
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments