クラウドネイティブ概説(前編)~クラウドネイティブとは?~
クラウドネイティブNow

近年『クラウドネイティブ(Cloud Native)』というキーワードが注目されています。クラウドネイティブが注目される背景には、クラウドを活用したシステムやサービスが一般化したことが挙げられるでしょう。
クラウドが登場する前は、サーバーやソフトウェアなどを自社で保有してシステムを運用するオンプレミスが一般的でした。しかし、2006年から2008年頃にかけてGoogle App EngineやAmazon EC2などの著名なクラウドが登場したことを皮切りに普及し、近年では導入までのハードルが低いことやコストパフォーマンスの高さなどから、あらゆる企業でクラウドへの移行が進んでいます。そんな中、単なるクラウド環境への移行から、より積極的にクラウドの利点を活かす(クラウドネイティブ)という動きも活発になってきています。
一方で、「システムが多すぎる、複雑すぎる」「何から手を付ければ良いのか分からない」「期間が足りない」「費用が掛かりすぎる」などの理由により、「クラウドネイティブなんて自分達のシステムには関係ない」と思う企業も多いことでしょう。
確かに一度に全てをクラウドネイティブへ移行するには敷居が高すぎますが、一度に全てを移行する必要はありません。まずは一部機能からクラウドネイティブ技術を導入し、そこから徐々に適用範囲を広げていくことで、最終的にクラウドネイティブを実現することができます。また、必ずしも全てをクラウドネイティブにしなければならない、ということではありません。ビジネスの目的や要件によっては、オンプレミスのシステムの方が適している場合もあります。こういった判断をするためにも、クラウドネイティブとは何か?その実現には何が必要か?を知っておくことが重要です。

変わるビジネス環境とITに求められる変化

2019年末より始まった新型コロナウイルス(SARS-CoV-2)によるパンデミックや、頻発・激甚化する自然災害など、通常のBCP(Business Continuity Plan:事業継続計画)では想定しえない事態が相次いでいます。これらの事態に対応するため、職場や学校などへの通勤・通学から買い物といった普段の生活に至るまで、従来とは異なる人流や物流への変化が起こっています。また、AIやメタバースをはじめとする急速な技術進化、超少子高齢化やグローバリゼーションといった社会や経済における環境変化、既存のビジネスモデルや商習慣、業界の壁を破壊・変革するディスラプターの登場など、先が読みづらい不確実な世界へと突入しています。このような不確実な世界におけるビジネス競争を勝ち抜くためには何が必要でしょうか?
それは、ビジネスの考え方を変えることです。
これまでは、精度の高い計画立案や長期計画に基づく投資、想定されるリスクに対する周到な準備などによる「安定性の確保」に重きが置かれてきました。しかし、今後のビジネスでは社会変化への迅速な対応を実現するためにも、短期間の成果を積み上げる「俊敏性」、ビジネスの状況変化に対応できる「柔軟性」、予測に頼らず想定外のことが起きてもすぐ復旧できる「回復性」が重要です。

  いままで これから
俊敏性 精度の高い計画立案が必要 短期間での試行を繰り返すことで、成果を積み上げて成長させる
柔軟性 ビジネス状況の変化を予測し、長期計画にもとづく投資を行う トレンドの変化が速いため、ビジネス状況が変化しても柔軟に対応できるよう備える
回復性 リスクを想定し、想定されるリスクに対して周到に備える 想定できないリスクが発生するものとして、何が起きてもすぐに再開できるよう備える

これを実現するには、ビジネスの要となるITに対する考え方を変える必要があります。
いままでのような、大規模で密接に連携したモノリシックで壊れないシステムでは、想定した効果が得られない場合に迅速な対応がとれない可能性があります。そのため、これからのシステムには以下のような変化が求められます。

  いままで これから
俊敏性 システム全体のきめ細かい要件定義により構築された大規模システム 短期間のサイクルで素早いリリースを繰り返すことができるシステム
柔軟性 最大業務量想定のインフラを確保した、大規模で密接に連携したモノリシックなシステム 状況に応じた基盤変更を容易に行えるように、機能で分割した疎結合なシステム
回復性 障害は発生しないものと考えて、安定稼働することを前提としたシステム 障害は発生するものと考えて、壊れても影響範囲を最小限に留めて素早い回復によりサービスを止めないシステム

そして、このようなシステムを実現するための技術的なアプローチの一つが『クラウドネイティブ』です。これからのビジネスを勝ち抜くためには、このクラウドネイティブの積極的な活用がカギとなります。

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

そもそも、クラウドネイティブとは何でしょうか。一言で表すと「クラウド技術を利用して、より素早く簡単に、スケーラブルで柔軟なシステムやサービスを構築・リリースする為の"ベストプラクティス"」です。ただし、ここで言うベストプラクティスには「どうやって実現するか?」に対して厳密な定義はありません。何故かというと、利用するクラウドの要素技術はシステムを構築する時期によって異なる可能性があるからです。
クラウドネイティブというキーワードが生まれた背景には、いくつかの先進的な技術を持つ企業が変化の激しいビジネス環境を生き抜く為に、試行錯誤しながら取り組んでいると似たようなアーキテクチャーへ行き着いたことに由来します。昨今ではそれらを総称してクラウドネイティブと呼称するようになったのです。
なお、コンテナやマイクロサービスも、理論や高度な設計論からではなく、「とにかく早くリリースしなくては!」といった目の前の必要性から生まれたものです。

参考:CNCFにおけるクラウドネイティブの定義

クラウドネイティブソフトウェアのための持続可能なエコシステムを構築するために、2015年にLinux Foundationのプロジェクトとして創設されたCNCF(Cloud Native Computing Foundation)によるとクラウドネイティブとは次のように定義されています。

クラウドネイティブの技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャー、および宣言型APIがあります。
これらの技術を活用することにより、回復性、管理力、および可観測性のある疎結合システムが実現します。
これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。
CNCFは、オープンソースでベンダー中立プロジェクトのエコシステムを育成・維持して、このパラダイムの採用を促進したいと考えています。
私たちは最先端のパターンを民主化し、これらのイノベーションを誰もが利用できるようにします。


【出典】

クラウドネイティブ実現のための道筋

クラウドネイティブジャーニー(企業におけるクラウドネイティブ化への継続的な取り組み)を始める企業向けの概要をクラウドネイティブトレイルマップとしてCNCFが提供しています。

クラウドネイティブ実現のための道筋

本図は下記より引用しています。

従来のクラウドと何が違うのか?

では、従来のクラウドとクラウドネイティブでは何が違うのでしょうか?従来のクラウドでは、既存システムでの考え方をできるだけ変えずに移行する「クラウドイネーブルド」が主流でした。それに対して、クラウドネイティブではクラウドの特性を最大限に活かした設計を行います。

  クラウドイネーブルド クラウドネイティブ
オンプレミスで運用していたシステムやサービスの考え方を変えずにクラウドへ移行 クラウドの利点を最大限に活かすために、クラウドの特性に合わせてシステムやサービスを設計
主流な考え方 システムに必要な機能 単一サーバーに集中配置 複数サーバーに分散配置
性能不足時のアプローチ スケールアップによる単体の性能アップ スケールアウトによる全体の性能アップ
障害発生へのアプローチ 障害を発生させないようにする(信頼性) 障害発生時でもサービスを継続させる(回復性)
構築や運用 確立された手順を基に実行 基本的に自動化

クラウドネイティブの実現に適したシステムとは?

クラウドネイティブの実現には、頻繁な変更に対しても最小の労力で予測どおりに実行できるシステムが適していると言われています。このようなシステムに求められる能力には、「回復性」「管理力」「可観測性」「堅牢な自動化」 の4つがあります。これらの能力を持った、変化に強いシステム構成の代表例が「疎結合システム」です。
疎結合システムとは、各要素(販売機能や生産機能など)間の結びつきや互いの依存関係などが弱く、各々の独立性が高いシステムのことです。疎結合システムのような、変化に強いシステムを構築するために必要なクラウドネイティブの要素技術には主に下記のようなものがあります。

  • コンテナ(ランタイム、オーケストレーション、レジストリー)
  • イミュータブルインフラストラクチャー
  • マイクロサービス
  • サービスメッシュ
  • サーバーレス
  • 宣言型API
  • 監視技術(モニタリング、ロギング、トレーシング)
  • サービスディスカバリー
  • CI/CD
  • 分散データベース / ストレージ
  • セキュリティ
  • ストリーミング / メッセージング

なお、クラウドネイティブは必ず疎結合システムでなければいけないということではなく、あくまでもクラウドネイティブを実現するためのシステムの一例です。

クラウドネイティブなシステムに求められる能力とは

さきほど、クラウドネイティブなシステムに求められる能力には、「回復性」「管理力」「可観測性」「堅牢な自動化」 の4つがあると説明しました。この4つの能力について概要を説明します。

回復性

クラウドネイティブにおいては、従来の「信頼性+可用性」より、「回復性」が重要視されます。回復性とは、障害から回復して引き続き機能する能力のことです。障害を回避することではなく、障害が発生するという事実を受け入れ、ダウンタイムまたはデータの損失を回避するようにします。
従来の考え方では、障害が発生しにくくMTBF(Mean Time Between Failure:平均故障間隔)が長い状態を維持できるシステムを構築することで「信頼性」を確保し、稼働率が高いシステムによりいつでもシステムやサービスが利用できる状態を作り出すことで「可用性」を確保していました。
すなわち、信頼性がある程度期待できる状態で更にシステムやサービスの稼働率を高めるという考え方です。
対して、クラウドネイティブでの主流な考え方である「回復性」では、従来の考え方にあった「信頼性」に過度な期待をせず、障害が発生する事を前提に障害が発生したら速やかに復旧させることで、システムやサービス全体として継続利用できる状態を維持することで稼働率を高めるという考え方です。
こうした「回復性が求められる背景」には、そもそものクラウドの仕様に基づいています。クラウドは基本的に提供ベンダーのSLA(Service Level Agreement:サービス提供者とユーザーの間で結ばれるサービス水準に関する合意)に従うことになるため、単独環境ではそれ以上のサービスレベルを望むことはできません。そのため、サービス全体としてのサービスレベルをコントロールするために、単独環境での運用ではなく、複数環境を束ねて運用することが必要となり、従来の「信頼性+可用性」より「回復性」が重要視されるようになったのです。分散技術を活用することで、複数の仮想マシンやリージョンにアプリケーションを分散させることで冗長化し、さらに自動切り替え・復旧処理などと組み合わせることでサービスレベルをコントロールするのです。

サービスレベルのコントロール

管理力・可観測性・堅牢な自動化

クラウドネイティブな世界では、回復性を高める為に、マルチクラウドや複数サービスの使用といった分散アーキテクチャーを採用する傾向にあります 。このため「一個を管理する」という考え方から 「n個を管理する」 という仕組みへのシフトが必要なことから、管理力・可観測性・堅牢な自動化が必須です。
すなわち、多くの異なるプラットフォームやサービスを管理できる「管理力」、どこにどのサービスがあるか見つける事ができるサービスディスカバリーやどこで何が起きたかを知る事ができる分散トレーシングによる「可観測性」、継続的な運用を実現する「堅牢な自動化」です。特に、クラウドネイティブな環境では管理対象が大量になるため、人手による管理は困難です。このため、モニタリングやロギングの仕組みについて、多くのプラットフォームやサービスが監視の仕組みを提供しています。

まとめ

前編では、クラウドネイティブについて背景や考え方、従来のクラウドとの違い、システムに求められる能力にはどういったものがあるかについて解説しました。後編では、マイクロサービスやコンテナといったクラウドネイティブの要素技術について解説します。

用語集

「クラウド」と付く用語はさまざまありますが、ここで代表的な用語を解説します。

  • クラウド
    ユーザーがインフラやソフトウェアを自前で持たず、インターネットを通じてサービスを必要な時に必要な分だけ利用する仕組みや考え方。
  • クラウドリフト(注1
    クラウドマイグレーション(クラウド移行)手法の一つ。既存のシステムをそのままクラウドに移行する手法。
  • クラウドシフト(注1
    クラウドマイグレーション(クラウド移行)手法の一つ。クラウドへシステムを移行した後、段階を踏んで徐々にクラウドへの環境最適化を行う手法。「クラウドリフト&シフト」のように、クラウドリフトと合わせて語られることも多い。
  • クラウドファースト(注2
    システムを構築・整備する際はクラウドの利用を優先するという考え方。クラウド・バイ・デフォルトと同じ意味で使われる場合もある。
  • クラウド・バイ・デフォルト(注2
    クラウドファーストよりもさらに強くクラウドを推奨し、クラウドの利用を第一に検討する、という考え方(日本政府が提唱)。
  • (注1)
    クラウドへの移行に関しては、日本と海外では使用される用語や用語の意味合いが異なる場合があるため注意してください。
  • (注2)
    これらの考え方は、「クラウドを優先的に利用する」ことに主眼を置いていますが、クラウドネイティブでは、利用は当たり前のこととし、「クラウドに最適化したシステムを構築する」という所まで踏み込んでいる点に違いがあります。

関連情報

ハイブリッドクラウドのメリットや導入への5つのステップを解説したホワイトペーパーがダウンロードできます。

関連製品・サービス

当社が提供するDX実現の課題にお応えするハイブリットITサービスの詳細は下記ページをご覧ください。

本コンテンツに関するお問い合わせ

お電話でのお問い合わせ

富士通コンタクトライン(総合窓口)

0120-933-200

受付時間:9時~12時および13時~17時30分
(土曜日・日曜日・祝日・当社指定の休業日を除く)

Webでのお問い合わせ

当社はセキュリティ保護の観点からSSL技術を使用しております。

ページの先頭へ