はじめに
アプリケーションのコンテナ化が一般的になった現在、コンテナイメージをどこに保存し、どうやって配布・管理するかは非常に重要な課題となっています。
本記事では、コンテナプラットフォーム向けのコンテナレジストリ選択肢として Red Hat Quay・Harbor・パブリッククラウドのマネージドイメージレジストリそれぞれの特徴について解説します。
各コンテナレジストリソリューションの概要
Red Hat Quay
Red Hat QuayはRed Hat社が提供するセルフホスト型のオープンソースコンテナレジストリです。
オープンソース版と有償版が存在し、アプリケーションの特性に応じて選択できます。
特徴
- GitHubなどソースリポジトリからのプッシュイベントをトリガーにした自動ビルド機能が充実
- 地理的レプリケーションな機能によりグローバルにイメージを分散させることで多拠点環境下における高可用性と高パフォーマンスを実現
- Red Hat社が提供する信頼性ある有償サポート付き
- RH社製品であるOpenShiftとの統合のしやすさ
開発からコンテナプラットフォームへのデプロイを高度に自動化したい開発チームや既にOpenShift環境を利用しているチームなどでの利用が特に見込まれます。
Harbor
HarborはVMware社が開発したセルフホスト型のオープンソースコンテナレジストリです。
CNCFプロジェクトとなっており、他ツールとの連携も考慮しながら選択できます。
特徴
- Kubernetesとの連携を前提とした設計で、幅広いコンテナプラットフォームに導入しやすい
- オープンソースなので、コストを抑えて導入することが可能
- マルチテナント対応:複数プロジェクトを1つのインスタンス内で分離管理可能
- アクセス権限やセキュリティポリシーなどを細かく制御することが可能
- プロジェクト単位の設定、プロジェクトごとの分離
コンテナに関する知識(Docker、Kubernetes、Helmなど)が豊富でオープンソースを好む文化を持つチームや設定のカスタマイズ性の高さを重視するチームなどでの利用が見込まれます。
パブリッククラウドのマネージドイメージレジストリ
Amazon Elastic Container Registry(ECR)、Azure Container Registry(ACR)、Google Artifact Registry(旧GCR)など、クラウドベンダーが提供するフルマネージド型のコンテナレジストリです。
特徴
- インフラの構築・運用・スケーリングが不要。高可用性・冗長化もベンダー側で担保
- IAMやサービスアカウントでの権限管理が容易
- クラウドプロバイダーが提供するCI/CDとの統合が容易
- AWS: Code Pipelineなど
パブリッククラウドが提供するコンテナプラットフォームを利用しているチームやレジストリ運用をマネージド化させて運用負荷を削減したいチームなどでの利用が見込まれます。
まとめ
コンテナレジストリはセキュリティ面での考慮やCI/CDにおいても起点となる重要なコンポーネントです。
各パブリッククラウドでマネージドサービスとして提供される中でOSSや有償ソリューションとしても、セルフホスト型でのソリューションが選択肢として多く存在します。
他のコンポーネントとの連携や運用負荷等を考慮しながらコンテナレジストリについては選定していく事が大きなポイントとなってきます。