はじめに
今回は、私たちが提供してるサービスのプラットフォームについて概要を説明します。
プラットフォームは、インターネット上の複数台のサーバーで構成されクラスター化されています。サーバー上では、コンテナオーケストレーションとしてKubernetesを採用しています。
さまざまなプラットフォーム構成を検討し、運用面やコスト面に優れたKubernetesについて概要を説明します。
コンテナの運用管理について
コンテナ技術としてDockerが有名ですが、Kubernetes とは、コンテナの運用管理と自動化を行うために設計されたオープンソースソフトウェアになります。ギリシャ語で、操舵手・パイロットという意味だそうです。K8sと省略されることもあります。発音が”クーべネティス”や”クバネティス”なので、日本人としては省略表記の”ケーエイツ”のほうが発音しやすいかもしれません。
コンテナは各種アプリケーションを実行することは容易にできますが、それ自体を管理したり、別サーバーで実行しているコンテナと連携させるには複雑なネットワーク設定が必要になります。したがって、複数ホストでコンテナを運用したい場合などは、管理が煩雑になってしまいます。
Kubernetes は、このような問題を解決してくれるシステムです。Kubernetes を使えば、複数ホストでコンテナを運用する場合に、ネットワークやストレージなどの連携管理が可能になります。このような仕組みを「コンテナオーケストレーション」と呼びます。
クラスターについて
k8sを稼働させるために、堅牢なデータセンターに複数台サーバーを設置し、クラスターを構築しています。各サーバーは高スペックなサーバーですが、お客様へのサービス料金を抑えるために、パブリックIPが付与されたレンタルサーバーを利用しています。
クラスター間の通信は、WireguardといったオープンソースのVPNソフトウェアを使用し暗号化をしています。
今後、本記事内にでてきた、KubernetesやWireguardなどについても詳しく説明する機会を設けたいと思います。
まずは、わたしたちが提供しているデモ環境を試してみて頂けると幸いです。