はじめに
こんにちは。クラウド技術統括部のMYです。
クラウド技術統括部、という名前どおりクラウド上でのお客様のシステム構築のお手伝いをさせていただいています。
昨今感じることは「クラウドを全く利用されていない」というお客様はとても少ないということです。
すべてをクラウド化していなくても一部のシステムは既にパブリッククラウド上で動いている、もしくはその計画をしている、というお客様が多いです。
総務省の情報通信白書でも「一部の事業所又は部門で利用している」を含めると80%の企業がクラウドを利用していることがわかります。
https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r07/html/datashu.html#f00265
クラウドネイティブ化できてる?
クラウドを利用しようとする動機はいろいろあると思いますが、主なものは「運用の手間の削減」と「コストの削減」ではないでしょうか。
もちろんこれらの目的はクラウド化によって一定の効果が出ていることと思います。クラウドを利用することで、ハードウェアの故障に対しての対応が不要になったり、ハードウェアのEOSL対応で5年に1度のシステム更改をすることからは解放されています。
一方で、サーバOSのEOSL対応のために更改が必要だったり、オンプレミスとクラウドを併用していることから運用が複雑化していたり、当初期待していたほどは楽になっていない、コストも思っていたほど安くなっていないということもあるのではないでしょうか。
その理由の一つはシステムのリフトアップで止まっていて、クラウドの利点を十分に利用できていないということがあります。
クラウドの利点を十分に利用する、つまりクラウドネイティブ化、クラウドシフトが必要です。
クラウドネイティブとは?
Cloud Native Computing Foundation(CNCF)は、クラウドネイティブ技術を以下のように定義しています。
【クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあります。】
CNCFはCloud Native Trail Mapというものも公開しています。
https://github.com/cncf/trailmap
クラウド ネイティブの取り組みを開始する企業に、クラウドネイティブ化するためのロードマップを提供するものです。
その最初に置かれているのが「コンテナ化」です。
コンテナ技術についてはこの記事では語りませんが、弊社のメンバーが書いたブログがありますので、コンテナとは?という方はそちらを参照ください。
ECS? EKS? AWSコンテナサービスを整理してみた!
【コンテナ入門#1】Linux上でDocker(コンテナ)を作ってみた
コンテナの課題
コンテナとは、アプリケーションを動作させるのに必要なライブラリやアプリケーションを1つにまとめたものです。ホストOS上のリソースを論理的に分割し、1つのサーバであるかのように動作します。
しかし実際にシステムとして利用するためには、複数の物理サーバをまたいでコンテナを実行する必要があったり、複数のコンテナをどれだけ実行するかといったコンテナの管理(オーケストレーション)が必要です。
最もよく利用されているコンテナオーケストレーションツールがKubernetes(以下k8s)です。
k8sはとても複雑なので、k8sとは?というのはまた別の記事にすることとして、ここではk8sを利用しようとしたときの課題について記載します。
k8sの課題は以下の2つです。
①k8sが非常に複雑
k8sはそれ自体が高機能であるのに加えて、100以上の周辺プロジェクトがあり、それらを組み合わせてシステムを構築します。
その多くがオープンソースであることから、各ソフトウェアの仕様を理解しシステムに組み込んでいく必要があり、学習コストがかかります。
②サポートが受けられない
k8sはオープンソースのプロジェクトなので、コミュニティによって機能の開発・追加が行われています。
そのため、障害発生時や不具合が発生したときに手厚いサポートを受けることができません。
このことは、エンタープライズな企業やシステムにおいては非常に重要です。
この課題を解決する答えの1つが、OpenShift Cotainer Platformです。
OpenShift Container Platform
OpenShift Container Platform(以下「OpenShift」)とは?
OpenShiftはRed Hatが提供するk8sの商用ディストリビューションです。k8sに、k8sを利用するために必要になる機能がOperatorというかたちでパッケージング化されて利用できるようになっています。
https://www.redhat.com/ja/technologies/cloud-computing/openshift/red-hat-openshift-kubernetes
OpenShiftの利点は以下の3点だと考えます。
- Red Hatによる商用サポート
- OSSテクノロジー選定における安心感
- ハイブリッド・マルチクラウド対応
Red Hatによる商用サポート
システムを運用しているとイレギュラー、トラブルはつきものです。迅速なトラブルシュートのためにサポートが受けられるというのはシステムの安定性のためにとても重要です。多くの人がOSのRHELで親しみのある、Red Hat社がサポートしてくれるというのは大きな安心感です。
OSSテクノロジー選定における安心感
前述の商用サポートに通じるところもありますが、OpenShiftでは、数多くのOSS製品の中から選定されたものがOperatorとして利用できるようになっています。利用したい機能を担う製品を効率的に探すことができますし、それらの製品は多くの人が利用しているものでもあるので、安定して利用することができます。
ハイブリッド・マルチクラウド対応
OpenShiftは商用k8sのデファクトスタンダードになっているので、各パブリッククラウドベンダーによってOpenShiftのマネージドサービスが提供されています。もちろん、自分でパブリッククラウド上でOpenShiftクラスターを構成したり、オンプレミス環境で構成することも可能です。
またコンテナ化してあるのであれば、オンプレミスとクラウド間で移行することも容易にできるようになります。
OpenShift Container Platformの利用形態
クラウドでOpenShiftを利用する場合は、大きく分けて以下の2つの利用形態があります。
OpenShiftに限ったことではありませんが、クラウドのマネージドサービスはクラウドベンダーが管理してくれる範囲が大きいので、運用の手間やオペミスの削減に繋がります。一方で、マネージドサービスとして提供されている仕様の中でしか利用できないので、カスタマイズ性は低減します。
そのため、まずマネージドサービスの利用を検討して、それで要件を満たさない場合にセルフマネージドなサービスを利用する、という検討をするのがよいと思います。
- マネージドOpenShiftサービス(Hosted OpenShift)
- クラウドプロバイダーが提供しているOpenShiftサービスを利用する
- セルフマネージドOpenShift(Self-Hosted OpenShift)
- 自分でクラスタを構築・管理する。
OpenShiftへの注目が高まっている!
OpenShiftは、OpenShift Virtualizationという仮想マシンを実行するための機能も持っています。Broadcom社によってVMwareが買収されたことによって発生したVMwareのライセンス問題から仮想基盤の移行先として、またアプリケーションのコンテナ化を行う際の基盤として、OpenShiftは非常に注目されています。
弊社は従来仮想基盤やクラウド基盤は得意としていたのに加えて、近年ではコンテナ・k8sの技術者育成にも力を入れてきました。
オンプレとクラウドという分け方は古い!これからはOpenShift!
ということで今後数回に渡ってOpenShiftに関する記事の公開を予定しております。
まとめ
いかがでしたでしょうか。
OpenShift Container Platformは商用k8sとして利用でき、アプリケーションのクラウドネイティブ化を進める強力なプラットフォームであると考えます。
また一方で、特定のクラウド基盤に限定されないソリューションであるので、将来的なクラウド間移行またはオンプレ回帰などアプリケーションやシステムの移行性を高めることができます。
次回と次々回はOpenShiftクラスタの構築実例、そしてAWSのマネージドOpenShiftサービスであるROSAの構築実例をご紹介しますのでお楽しみに!


