NHN Cloud NHN Cloud Meetup!

Containerサービスの紹介

はじめに

6月末に、TOASTではコンテナ基盤サービスの構築に必要な2つの商品をリリースしました。
1つは、コンテナイメージを個人化されたプライベートリポジトリから利用できるようにするContainer Registryサービスで、もう1つは、コンテナ運用に広く使われているKubernetesを作成するサービスです。
今回は、2つのサービスについて紹介したいと思います。

Container Registry

コンテナを用いたサービス環境を構築・運営する過程において、必要なものを1つ挙げるとするなら、コンテナイメージリポジトリを挙げるでしょう。Container Registry(通常、Dockerレジストリとして広く認知されている)は、さまざまなコンテナイメージの貯蔵所(リポジトリ)を集めて管理するサービスです。

コンテナを初めて利用したときに、各ドキュメントなどで紹介されているDocker Hub(hub.docker.com)から、さまざまなイメージをダウンロードして使用した経験があると思います。Docker Hubなどのような公開レジストリを利用すると、よく知られているアプリケーション(例: nginx、redisなど)のイメージを簡単に見つけて使用できるメリットがあります。しかし、自分が作成したコンテナイメージをこのような公開レジストリに保存すると、他人にも漏れる可能性があるということになります。

このように個人(あるいは組織)が作成したイメージを公開したくない場合は、プライベートレジストリを構築して活用する方法があります。しかし、プライベートレジストリを構築した場合、次のような問題があります。

– レジストリサーバーの確保(構成)をどうするか
– データを保存するストレージをどのように利用するか
– 保存されたデータをどのように安定的に維持するか

もちろん、簡単な開発環境で使用する場合であれば、サーバー1台にDockerレジストリを駆動させ、ローカルファイルシステムにそのまま保存すればよいでしょう。しかし、実稼働のサービス開発・配布環境で使用する場合であれば、このように単純にはいきません。

このような面倒な部分を解決するため、TOASTではContainer Registryサービスを提供しています。
Container Registryサービスにより、ユーザーは自分だけのプライベートレジストリを作成して自由に利用することができます。

TOAST Container Registryサービスの主な特徴は次のとおりです。

– ユーザーのコンテナイメージはHTTPSプロトコルで暗号化して送信され、プライベートクラウドレジストリに安全に保存されます。
– TOAST Object Storageを基盤とするリポジトリに優れた拡張性と信頼性を提供します。
– ユーザーはストレージ容量を考慮する必要がなく、好きなだけコンテナイメージを保存できます。
– 使い慣れたDockerコマンドラインツール(CLI)でコンテナイメージを簡単に保存し、必要な環境に配置できます。
– TOAST Container RegistryはDockerイメージレジストリAPI v2と互換性があります。
– Kubernetesでコンテナ配布時に簡単に連動して使用できます。
– TOASTコンソールから保存されたイメージを照会し、使用していないイメージを削除できる機能を提供します。

[参考] ユーザーのプライベートレジストリはTOAST環境(例: TOAST Instance)でのみ使用可能ではありません。インターネットが利用できる環境では、どこでも使用可能です。

下図は、ユーザーがTOAST Instanceで生成したイメージをレジストリに保存し、これを他の場所(例: AWS)のインスタンスにインポートして使用するプロセスを表しています。

TOAST Container Registryの詳しい内容は、ユーザーガイドをご覧ください。

Kubernetes

Kubernetesは、Googleの長年のコンテナ運用ノウハウを土台にして作成されたオープンソースのコンテナオーケストレーションのプラットフォームです。

さまざまなコンテナオーケストレーションのプラットフォーム(Docker Swarm、Apache Mesosなど)が存在しますが、Kubernetesは事実上、業界スタンダードに位置づけられています。したがって、コンテナ基盤サービスの構築を検討している開発者(あるいは組織)であれば、当然ながらKubernetesの導入を検討する必要があります。

Kubernetesを一度でも設置した経験がある方ならご存知でしょうが、その過程は決して簡単なものではありません。
また、Kubernetesそのものを運営することも大きな負担になるかもしれません。

TOAST Kubernetesサービスは、管理型Kubernetesクラスタを提供しています。
簡単なユーザー操作によってKubernetesクラスタを作成することができ、クラスタのコントロールプレーン(マスターコンポーネント)は、TOAST Kubernetesサービスで管理を行います。これにより、先述した煩わしい部分が省かれ、より自分のサービス構成・動作に集中できるようになります。

また、ユーザークラスタは、TOASTで提供されるBlock StorageとLoad Balancerなどと動的に連動する形態で使用できます。ユーザーニーズに応じてさまざまな永続ボリュームとロードバランサー型のサービス(Kubernetesリソースの一種)を自由にご利用いただけます。

TOAST Kubernetesサービスの主な特徴は次のとおりです。

– TOASTに最適化されたKubernetesクラスタの作成と管理機能を提供します。
– TOAST Compute&Network&Storageサービスと連動します。
– TOAST InstanceとVPCに基づくクラスタを構成できます。
– Kubernetesのロードバランサー型サービスの利用が可能(TOAST Load Balancer連動)です。
– TOAST Block Storageを基盤とする永続ボリューム(Persistent Volume、PV)をサポートします。
– 高可用性構造基盤のコントロールプレーン(Kubernetesマスター)の設定および管理ができます。
– ウェブコンソールを使い、簡単に操作ができます。
– クラスタの作成、削除、照会が可能です。
– ノードグループの作成、削除、照会ができます。
– kubectl設定をサポートします。

下図は、TOAST Kubernetesサービスによって提供されるKubernetesクラスタの構成を簡単に表したものです。また、インターネットからクラスタユーザーがkubectlを通じてコマンドを実行したり、インターネットからKubernetesで実行中のサービスに対してTOAST Load Balancerを通じてアクセスする様子がわかります。

TOAST Kubernetesサービスの詳しい内容は、ユーザーガイドをご覧ください。

おわりに

今回は、新規コンテナサービスの2種類について簡単に紹介しました。
新しくリリースした商品で、まだ足りない部分が多いかもしれませんが、引き続き改善を行い、さらに役立つサービスとして発展させていきたいと思います。

NHN Cloud Meetup 編集部

NHN Cloudの技術ナレッジやお得なイベント情報を発信していきます
pagetop