クラウド ネイティブとは?導入するメリットや特徴について解説

 2021.12.03  2023.08.15

クラウドサービスの活用が社会的に進む中、クラウドシステムに最適化された「クラウドネイティブ」なシステムを導入する企業も増えています。そこで本記事では、クラウドネイティブなシステムの特徴や、それを支える技術、導入するメリットなどについて解説します。

 

 

顧客体験価値向上DX「ストリーミングエンジンによるデジタルサービスプラットフォーム」 ー全日本空輸株式会社 様ー

1. クラウド ネイティブとは?

クラウドネイティブとは、クラウド運用を前提に作られたシステムやその考え方を指します。従来、企業のシステムはオンプレミス運用が通常でしたが、IaaS・PaaS・SaaSといったクラウドサービスが普及するにつれ、オンプレミスのシステムをクラウド環境に移行する企業が増えています。「クラウドファースト」という言葉に示されるように、もはやクラウドシステムこそがスタンダードになりつつあると言っていいでしょう。

クラウドネイティブという設計思想は、このようにクラウドサービスの利用が当たり前になってくるにつれて注目を集めるようになりました。クラウドネイティブなシステムは、クラウド環境に最適化されているので、クラウドならではの強みを最大限に引き出すことができます。

クラウドネイティブの定義

クラウドネイティブは、2015年に非営利組織「LinuxFoundation」のプロジェクトの一つとして発足したCNCF(Cloud Native Computing Foundation)によって、以下のように定義されています。

”クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあります。

これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。”

引用:CNCF Cloud Native Definition v1.0(Github)

つまり、クラウドの利点を最大限に活用できる技術を採用することで、拡張性が高く柔軟なアプリケーションの構築・運用を目指すのがクラウドネイティブの概念です。CNCFにはGoogle・Twitter・IBMなどの世界的なIT企業が名を連ねており、世界共通の認識として広まりつつあります。

クラウドシフト・クラウドリフトとの違い

クラウドシフト・クラウドリフトとは、既存のオンプレミス環境をクラウドへ移行する方法です。クラウドネイティブを実現する前段階のアプローチといえるでしょう。クラウドシフトは既存のシステムを活用せず、クラウド用に新たなシステムを1から開発・導入する移行方法です。一方クラウドリフトは、既存のシステムを可能な限りそのままの状態で利用し、クラウドに載せ替える移行方法です。

クラウドファースト・クラウドバイデフォルトとの違い

クラウドファーストとは「システム開発の際にクラウドの利用を優先する」という考え方です。クラウドバイデフォルトとは、そこからさらに一歩進んで「システム開発の際にクラウドの利用を第一候補(デフォルト)とする」という考え方です。つまり、クラウドファースト・クラウドバイデフォルトの取り組みを進めた先にクラウドネイティブがあるといえます。

OpenShiftコンテナ基盤の活用事例とクラウドネイティブソリューション「C-Native」のご紹介
2カ月足らずで5000ユーザーへのリリースを可能にしたクラウドVDIとは

2. クラウド ネイティブが重要視される理由

クラウドネイティブがいま重要視されている理由としては、第一に現代のビジネスにおいては、刻々と変化する顧客の要望に迅速に応える即応性が求められていることが挙げられます。つまり今のシステムは、柔軟性や拡張性の高さが重視されているのです。そして、こうした中で注目を集めるようになったのが「アジャイル開発」という開発手法や、インフラモデルとしての「クラウドネイティブ」です。クラウドネイティブは、クラウドの特性であるスケーラビリティに非常に長けており、環境構築のスピードアップが見込めます。

さらに、自社で1から環境構築したり、一切の保守管理をしたりしなければならないオンプレミスに比べて、クラウドシステムは経済的・時間的・人的なコストの削減が期待できるのも大きな点です。とりわけ近年では老朽化した時代遅れのシステム(レガシーシステム)を使用し続けることによる弊害が知られてきています。レガシーシステムは度重なる仕様追加により複雑化しているため、維持管理費が高額になったり、システムの全容を把握して保守運用できる人材が不足したりすることが懸念されています。このような状況下でクラウドネイティブは、今後のランニングコストを削減し、最新技術に対応したシステムを構築するための手法として重要視されているのです。

3. クラウド ネイティブで活用される技術

クラウドネイティブで活用される技術としては、どのようなものが挙げられるでしょうか。以下ではCNCFが挙げているクラウドネイティブを支える技術群について簡単にご紹介していきます。

コンテナ

コンテナとは、仮想的環境を利用して、1つのOS上で複数の環境を実現する技術です。コンテナは仮想マシン(VM)とは違って、OS単位で仮想環境を構築できるのでリソースを過剰に消費することなく、高い処理速度で仮想環境を利用できます。また、単一のコンテナで何か問題が発生しても、VM全体やサーバー全体ではなく、個々のコンテナにのみ影響が抑えられるというセキュリティ面での強みも特長です。コンテナ技術を活用することで、ユーザーは開発環境・テスト環境・本番環境で、アプリケーションを自由に稼働させ、迅速な開発を行えます。

マイクロサービス

マイクロサービスとは、1つのアプリケーションを細かいプランに分割してサービス提供する技術です。マイクロサービスは、アプリケーションを可能な限り小さなサービスとして構築することで、それぞれが独自のプロセスで動作し、独立してデプロイできるようにします。こうすることで、開発チームは個々のサービスごとにアプリケーションを開発・テスト・リリースが行いやすくなります。また、サービス単位で機能追加や修正が行えるので、問題が起きたときにもその影響を切り離しやすくなるのも大きなメリットです。マイクロサービスはアジャイル開発を可能にする基幹技術と言えます。

サービスメッシュ

サービスメッシュとは、各サービス間の通信トラフィックの制御や可観測性を向上させる仕組みです。マイクロサービスを中心にソフトウェアを構築する場合、ユーザーは複数の小さなサービスを連携させる必要があるため、その制御は複雑なものになります。サービスメッシュはこのマイクロサービスによるシステム構築をサポートする技術で、トラフィック情報を収集して可視化することによりサービス間のトラフィックを把握しやすくします。これによりサービス間の通信の安定性やコントロールの最適化が可能です。

クラウド

近年のクラウドサービスの発展とともにクラウドファーストやクラウドバイデフォルトの考え方が浸透し、多くの業界で導入が進んでいます。普及が進むと共に、複数のクラウド事業者の環境を併用したり、クラウドとオンプレミスを複合して使用したりと、複雑な構成が取られるケースも見受けられます。クラウド運用を円滑に行えるエンジニアは需要が高いでしょう。

イミュータブルインフラストラクチャ

イミュータブルインフラストラクチャとは、日本語にすると「不変のインフラ」を意味します。この「イミュータブル(不変)」という形容詞が象徴するように、イミュータブルインフラストラクチャは、変化する状態を持たず、アップデートの際には動作に不具合がでないように、毎回パッチなどを適応済みのOSを用いてインフラを新規に立ち上げます。非イミュータブルな従来のインフラは、OSのアップデートや設定変更によってアプリケーション全体の動作に悪影響が出てしまうことがありました。しかしイミュータブルインフラストラクチャならば、変更ごとにサーバーを新規に立ち上げ、完全に新たな本番環境でリスタートするので、変更履歴の複雑な管理などが不要になるという利点があります。

宣言型API

宣言型APIとは、システムが実行すべき専用のコマンドを指示する従来の命令型APIに対し、システムに作成させたい「特定の状態」を指示するAPIの仕組みです。宣言型APIの利用において、ユーザーは快適な状態を実現するために必要なすべてのステップについては気にする必要はなく、複雑なコマンド操作をシステムそれ自体に任せることができます。宣言型APIは、マイクロサービスにおけるサービス間の複雑な連携を成立させるために活用されます。

4. クラウド ネイティブ導入のメリット

続いては、クラウドネイティブを導入することで企業が得られる代表的なメリットについて解説します。

コンテナで快適な動作環境の実現

クラウドネイティブの第一のメリットは、コンテナ技術により快適な動作環境を実現できることです。コンテナ技術を用いることで、ユーザーはゲストOSを用意する必要もなく、軽量なリソースで快適なシステム環境を用意できます。これによってサーバーの拡張や、迅速なアプリケーション開発を行い、即応性のあるビジネスを展開できます。

ランニングコストの削減

クラウドネイティブの大きな魅力としてはランニングコストの削減も挙げられます。クラウドサービスを活用すれば、多大なコストをかけて自社でインフラ構築することが不要になるので、ランニングコスト削減に繋がります。

ビジネスのスピードアップ

クラウドネイティブアプリケーションは、クラウド環境に最適化されたアーキテクチャを考慮して設計・開発されます。従来の仮想サーバーよりもリソースの使用効率が上がり、開発スピードの高速化や迅速なサービス改善が可能です。これにより、ビジネスを行う環境をスピーディに整えられます。

システムやアプリケーションのスムーズな変更

クラウドネイティブは、マイクロサービスの技術によりシステムやアプリケーションが小さなサービスの集合として設計されます。一つのサービスに障害や変更の必要が生じた場合も、アプリケーション全体に影響を及ぼすことはありません。そのため、対象のサービスのみにスムーズな対応や変更が行えます。また、基本的には宣言型APIによりシステムの実行状態も自動的に管理され、問題が発生して宣言から外れた状態になった場合でも、自律的に目的の状態になるよう動きます。

5. クラウド ネイティブを実現するために

では、実際にクラウドネイティブを自社で実現するためには、具体的にどのような取り組みをすべきでしょうか。

クラウドネイティブ化のステップ

CNCFはクラウドネイティブ化の推奨ステップを表した「Cloud Native Trail Map」を公開しています。

  1. コンテナ化
  2. CI/CD
  3. オーケストレーションとアプリケーション定義
  4. 観測性と分析
  5. サービスプロキシ・メッシュ・ディスカバリ
  6. ネットワーク・ポリシー・セキュリティ
  7. 分散データベース・ストレージ
  8. ストリーミング・メッセージング
  9.  コンテナレジストリとランタイム
  10.  ソフトウェアの配布

引用:cncf / trailmap

上記のように、クラウドネイティブを実現するための10ステップが推奨されていますが、各項目や順番は状況に応じて選択可能で、すべてを達成する必要はないとされています。ここでは、とくに重要な1〜3のステップについて解説します。

1.コンテナ化

まず、アプリケーションはコンテナ化することが推奨されます。同時にモノリシック(一枚岩)な構成ではなく、マイクロサービスとして小さなコンポーネントやサービスの集合体による複合構成を目指します。

2.CI/CD

CI/CDとはContinuous Integration/Continuous Deliveryの略で「継続的インテグレーション/継続的デリバリー」を表します。ソフトウェア開発におけるビルド・テスト・デリバリー・デプロイメントを自動化し、継続的に行うアプローチです。ソースコードへの変更が自動的にコンテナへ反映されるよう、CI/CDの導入が推奨されます。

3.オーケストレーションとアプリケーション定義

システムにおけるオーケストレーションとは、アプリケーションやサービスの設定・運用管理を自動化することです。コンテナのオーケストレーションツールとしては「Kubernetes」がデファクトスタンダードとされています。

クラウドネイティブに適した開発手法・組織文化

クラウドネイティブを実現するには、適した開発手法を採用し、組織文化を変革することも重要です。

アジャイル開発とDevOps

アジャイル開発は短期間で開発から運用までのサイクルを回し、効率的なサービス開発を目指す手法です。またDevOpsは、現場の開発担当者と運用担当者が密に連携を取りながら成果を求める考え方です。クラウドネイティブとアジャイル開発・DevOpsは、改善や修正をスピーディに行いビジネスの変化へ迅速に対応できる点で、親和性が高く相性が良いとされています。クラウドネイティブを実現するために、組織でアジャイル開発やDevOpsを積極的に採用しましょう。

組織文化

クラウドネイティブのメリットを活かすには、開発・運用組織が小さなチームに分かれ、各チームが意思決定の権限を持つことが理想です。これがなければ、スピードと柔軟性が求められるアジャイル開発やDevOpsは実現できません。このような体制が築けていない場合、業務の見直しや方針の決定などを、上層部も含めて共有できる風通しの良い組織づくりや改革をする必要があります。

クラウドネイティブの活用事例

成長を続ける世界的な企業の多くは、軒並みクラウドネイティブを取り入れています。ここでは、Netflixのクラウドネイティブ活用事例を紹介します。

Netflixは2008年にデータベースに重大な障害が発生し、業務が停止する問題が発生しました。これをきっかけに、今までのモノリシックなシステムからクラウドを利用した分散システムへの移行を決定。2016年に移行がすべて完了し、社内のデータセンターでは困難であった増大し続けるデータ容量への対応も可能となりました。より快適なストリーミング視聴を提供できるようになったほか、サービスの可用性も大幅に向上したそうです。
参考:Netflixのクラウド移行が完了

6.まとめ

本記事ではクラウドネイティブの概要や、クラウドネイティブを支える技術について解説しました。クラウドネイティブは、クラウド運用に最適化されたシステムで、コンテナやマイクロサービスなどの技術によって成り立っています。クラウドネイティブなインフラ環境を構築することで、ユーザーはランニングコストを抑えつつ、柔軟でスケーラブルな環境を構築できます。

CTA

RECENT POST「デジタルプラットフォーム」の最新記事


デジタルプラットフォーム

ハイブリッドクラウドとは? 特徴やメリット・デメリットを解説

デジタルプラットフォーム

XDR (Extended Detection and Response)とは? 特徴や求められている背景、導入メリットを解説

デジタルプラットフォーム

工場セキュリティ対策の進め方でのポイント|2つの関連資料を解説

デジタルプラットフォーム

マルウェアとは?種類やOTへの影響例・必要なセキュリティ対策を紹介

クラウド ネイティブとは?導入するメリットや特徴について解説
CTA

RECENT POST 最新記事

CTA

RANKING人気記事ランキング


OFFICIAL SUPPORTER