GitLab
今月の気になるオープンソース情報(2019年2月号)
OSS研究室 大野 公善
今回は、GitLabのコンテナレジストリ機能について紹介いたします。
最近、コンテナ技術が注目されており、様々なシーンで利用されるようになってきました。コンテナ技術を実装するOSSとしてはDockerが広く利用されています。
コンテナは従来の仮想マシンと比較して、下記のようなメリットがあります。
省リソース
仮想マシンより少ない資源でコンテナを起動することができます。このため、より多くのアプリケーションを処理することができます。
ポータブル
イメージサイズが比較的小さいので、転送したり保存したりするのが容易です。
イミュータブル
コンテナのイメージは変更されません。(変更が必要になった場合、新たにイメージを作成します。)このため、確実の動作する環境をいつでも使用することができます。また、変更に問題が発生した場合、すぐに変更前の状態に戻すことも可能です。
スクラップ・アンド・ビルド
用途に合わせて、自由にコンテナの増減を行うことができます。ピークに合わせて、コンテナを増やす等。
コンテナを使用したシステムを開始する時、コンテナのイメージをどこに管理するかを決める必要があります。上記メリットでも示したように、ひとつのイメージを使って複数のサーバでコンテナを起動したり、新しいイメージを作成したりする必要があり、イメージをどのように管理するのかがコンテナ運用の重要な鍵となります。このことを解決するために「レジストリ」と呼ばれるサービスを使用します。レジストリはコンテナのイメージを管理するためのサービスです。Dockerでは、Docker Hubを利用することができます。Docker Hubは、クラウドサービスとして提供されているレジストリです。
しかし、最近では様々な企業がコンテナ技術を使うようになっており、セキュリティ上の観点からコンテナのイメージをDocker Hubのようなクラウドサービスにはおけないという声をお聞きすることもあります。こんな時には、組織内にプライベートコンテナレジストリを構築することをお勧めします。組織内にコンテナレジストリがあれば、外部に出すことができない情報を含むイメージを保存しても安心です。
プライベートDockerコンテナレジストリを構築するためにGitLabを使用することができます。GitLabは、ソフトウェア開発ライフサイクルを実施するための単一アプリケーションです。プロジェクト計画、ソースコード管理、CI/CD、監視、セキュリティ等の機能を有しており、Dockerコンテナリレジストリとして使用することも可能です。
GitLabのコンテナレジストリは、下記の機能を提供しています。
- Docker環境からのログイン
- Dockerイメージのアップロード
- Dockerイメージのダウンロード
この機能を使えば、組織内にプライベートコンテナレジストリのサービスを提供することができます。Docker環境からは、Docker Hubを利用するのと同じように、GitLabのコンテナレジストリを利用することができるようになります。機密情報を扱うコンテナでも、安心して利用できるようになります。
デージーネットでは、Docker、Kubernetes、GitLab等のOSSを組み合わせて、便利で安心できるコンテナ環境を構築するサービスを提供しています。プライベートコンテナレジストリの利用をぜひご検討ください。