クラウド領域 入門学習

TOP › システム区分 › 入門学習ガイド › Unit 1 クラウド領域
システム区分 Unit 1

クラウド領域 入門学習

クラウドアーキテクチャ・コンテナ・マイクロサービス・サーバーレス・FinOpsを体系的に学ぶ

📚 5章構成✏️ 確認テスト 3問⏱ 目安25分

クラウドサービスモデル(IaaS/PaaS/SaaS/FaaS)

IaaS(Infrastructure as a Service)は仮想サーバー・ストレージ・ネットワークを提供します(例:AWS EC2、Azure VM)。OS以上はユーザーが管理します。PaaS(Platform as a Service)はアプリ実行環境・ミドルウェアを提供し、ユーザーはアプリケーションだけを管理します(例:AWS Elastic Beanstalk、Heroku)。SaaS(Software as a Service)はアプリ自体をクラウドで提供し、設定・利用のみユーザーが行います(例:Microsoft 365、Salesforce)。FaaS(Function as a Service)は関数単位で実行環境を提供するサーバーレスモデルです(例:AWS Lambda)。

クラウド責任分担モデル(共有責任)
  • IaaS:物理インフラ/仮想化はCSP、OS以上はユーザー
  • PaaS:OS/ミドルウェアもCSP、アプリはユーザー
  • SaaS:ほぼ全てCSP、データとアクセス管理はユーザー

コンテナ技術とKubernetes

コンテナはアプリとその依存ライブラリをOSカーネルと共有しながら軽量に隔離する技術です。仮想マシン(VM)に比べて起動が速くリソース効率が高い特徴があります。Dockerは最も広く使われるコンテナランタイムで、Dockerfileによりイメージをビルドし、Docker Hubなどのレジストリで配布します。

Kubernetes(K8s)はコンテナのオーケストレーションツールです。複数のPod(コンテナの最小デプロイ単位)をDeploymentで管理し、Serviceでネットワーク公開します。HPA(Horizontal Pod Autoscaler)でCPU/メモリに応じた自動スケーリングが可能です。Namespaceでリソースを論理的に分離し、マルチテナント環境を実現します。

Kubernetesの主要コンポーネント
  • Pod:コンテナの最小デプロイ単位(1つ以上のコンテナを含む)
  • Deployment:Podのレプリカ数・ローリングアップデートを管理
  • Service:Pod群への安定したエンドポイントを提供(ClusterIP/NodePort/LoadBalancer)
  • ConfigMap/Secret:設定値・機密情報をPodから分離して管理
  • Ingress:HTTPルーティングとSSL終端を担うL7ロードバランサー

マイクロサービスアーキテクチャ

モノリシックアーキテクチャは全機能を1つのデプロイ単位にまとめる方式で、開発初期は簡単ですが、規模拡大に伴い変更・スケーリングが困難になります。マイクロサービスアーキテクチャ(MSA)は機能を独立した小さなサービスに分割し、各サービスが独自にデプロイ・スケール可能な方式です。

サービス間通信には同期通信(REST/gRPC)と非同期通信(メッセージキュー:Kafka/SQS)があります。API Gatewayは外部クライアントからの要求を受け付け、適切なマイクロサービスにルーティングするフロントコンポーネントです。サービスメッシュ(Istio/Linkerd)はサービス間通信の暗号化・可観測性・トラフィック制御を実現します。

MSAの利点と課題
  • 利点:個別デプロイ可能・独立スケーリング・技術スタック選択の自由
  • 利点:障害の局所化(1サービス障害が全体に波及しにくい)
  • 課題:分散トレーシングの複雑化・サービス間通信遅延
  • 課題:データ整合性の管理(分散トランザクション問題)

サーバーレスコンピューティング

サーバーレスはサーバーの管理をクラウドプロバイダーに完全に委ね、コードの実行単位(関数)でスケールするモデルです。FaaS(AWS Lambda、Azure Functions、GCP Cloud Functions)は実行した時間・回数のみ課金され、アイドル時のコストはゼロです。

イベント駆動アーキテクチャと親和性が高く、S3へのファイルアップロード・API Gatewayへのリクエスト・スケジュール実行などをトリガーとして関数を呼び出します。ただしコールドスタート(初回起動の遅延)や実行時間上限(AWSは最大15分)の制約があります。

サーバーレスのユースケース
  • 画像・動画のリサイズ・変換(S3 + Lambda)
  • WebhookやAPIバックエンド(軽量・高頻度リクエスト)
  • 定期バッチ処理(EventBridge + Lambda)
  • IoTデータ収集・前処理パイプライン

FinOps(クラウドコスト最適化)

FinOpsはクラウドコストを財務・技術・ビジネスチームが協働して管理・最適化するプラクティスです。FinOps Foundationが定義する3フェーズ(Inform→Optimize→Operate)のサイクルで継続的改善を行います。

主なコスト削減手法として、予約インスタンス(Reserved Instances)は1〜3年の事前契約で最大70%割引、スポットインスタンスは空きリソースを低価格で利用(最大90%割引・中断リスクあり)、Savings Plansは柔軟なコミットメント型割引があります。タグ付けポリシーでリソースをプロジェクト・環境・チームで分類し、コスト配分の可視化を行います。

FinOpsの主要指標
  • ユニットエコノミクス:機能あたり・顧客あたりのクラウドコスト
  • コスト配賦率:全クラウドコストのうちタグ付け・配賦済みの割合
  • 使用率:予約インスタンス・Savings Plansの活用率
  • 廃棄率:未使用リソース(停止VMなど)のコスト割合
✏️ 確認テスト(全3問)
問 1
Kubernetesにおける「Pod」の説明として最も適切なものはどれか。
ア. Kubernetesクラスタ全体を管理するコントロールプレーンのコンポーネント
コントロールプレーンはAPIサーバー・etcd・スケジューラなどで構成され、Podとは異なります。
イ. コンテナを1つ以上含むKubernetesのデプロイ最小単位
正解です。Podは1つ以上のコンテナを同一ネットワーク・ストレージ空間で共有するデプロイ最小単位です。同じPod内のコンテナはlocalhostで通信できます。
ウ. マイクロサービス間の通信を管理するサービスメッシュコンポーネント
サービスメッシュ(Istio等)はPodではなくサイドカーパターンで実装されます。
エ. Dockerイメージを保管するコンテナレジストリのこと
コンテナレジストリはDocker HubやECRなどで、PodはKubernetesのリソースオブジェクトです。
選択肢をクリックすると正誤と解説が表示されます
問 2
マイクロサービスアーキテクチャ(MSA)とモノリシックアーキテクチャの比較として正しい記述はどれか。
ア. MSAはモノリシックより常に高い処理性能を発揮する
MSAはサービス間通信のオーバーヘッドがあるため、必ずしも処理性能が高いわけではありません。
イ. MSAは特定機能だけを独立してスケールできるため、リソース効率が高い
正解です。負荷の高いサービスのみスケールアウトできるため、モノリシックと比べてリソース効率が高い特徴があります。
ウ. MSAでは全サービスが同一データベースを共有することが前提である
MSAでは原則として各サービスが独自のデータベースを持ちます(Database per Service パターン)。
エ. MSAは小規模システムほど適しており、大規模システムにはモノリシックが推奨される
逆です。MSAは複数チームが協調して大規模開発する際に特に有効です。
選択肢をクリックすると正誤と解説が表示されます
問 3
FinOpsにおける「スポットインスタンス」の特徴として正しいものはどれか。
ア. 1年または3年のコミットメントで最大70%の割引が受けられる固定価格インスタンス
これは予約インスタンス(Reserved Instances)の説明です。
イ. クラウドの余剰リソースを低価格で利用できるが、CSPの都合で中断される場合がある
正解です。スポットインスタンスはCSPの余剰容量を活用するため大幅な割引(最大90%)がある一方、CSPの需要増加時に2分以内に中断される可能性があります。
ウ. 長期コミットメントなしに一定の割引を受けられる柔軟な課金モデル
これはSavings Plansの説明です。
エ. 実行した関数の回数と時間のみ課金される、アイドルコストゼロのモデル
これはサーバーレス(FaaS)の課金モデルの説明です。
選択肢をクリックすると正誤と解説が表示されます