クラウドネイティブ — マイクロサービスとサーバーレス
導入
クラウドが当たり前になった現代では、システムの作り方も大きく変わってきました。「クラウドネイティブ」というアプローチは、クラウドの特性を最大限に活かした設計思想として注目されています。
くわしく知ろう
クラウドネイティブとは、クラウド環境の柔軟性や拡張性を前提として設計・構築されたアプリケーションやシステムのアプローチを指します。従来の「1つの大きなアプリケーション(モノリス)」から脱却し、複数の小さな機能単位に分割する考え方が中心にあります。
マイクロサービスアーキテクチャは、アプリケーションを「ユーザー認証」「決済処理」「通知送信」のような独立した小さなサービス(マイクロサービス)に分割する設計手法を指します。各サービスはAPIで連携し、個別にデプロイ・スケールアップできるため、一部機能の障害が全体に波及しにくくなっています。
サーバーレス(FaaS:Function as a Service)は、コードを関数単位で実行し、実行時間に応じてのみ課金される仕組みを指します。サーバーの管理が不要で、必要なときだけ自動的に起動するため、小さな処理を頻繁に行うケースに向いています。AWS LambdaやGoogle Cloud Functionsが代表的なサービスです。
コンテナ(Docker等)は、アプリケーションと動作に必要な環境をひとまとめにしたものを指します。コンテナオーケストレーション(Kubernetesなど)は、大量のコンテナを自動で管理・配置・スケールする仕組みとして知られています。
具体例
たとえば、動画配信サービスでは「認証」「再生」「課金」がそれぞれ別のマイクロサービスとして動いており、課金サービスを更新しても再生機能は止まらない設計になっています。一方、サーバーレスは画像アップロード時のサムネイル生成など、イベント駆動の処理に活用されています。
まとめ・試験ポイント
- クラウドネイティブ=クラウドの特性を前提とした設計・開発アプローチ
- マイクロサービス=機能を小さなサービスに分割し、APIで連携する設計
- サーバーレス(FaaS)=関数単位で実行し、実行時のみ課金される仕組み
- コンテナ=アプリと実行環境をひとまとめにしたもの(Dockerが代表例)
- Kubernetes=多数のコンテナを自動管理するオーケストレーションツール
- 試験では「マイクロサービスの特徴」「サーバーレスの課金方式」が問われやすい
学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。
入門試験100問に挑戦する