クラウド領域 入門学習
クラウドアーキテクチャ・コンテナ・マイクロサービス・サーバーレス・FinOpsを体系的に学ぶ
クラウドサービスモデル(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でリソースを論理的に分離し、マルチテナント環境を実現します。
- 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)はサービス間通信の暗号化・可観測性・トラフィック制御を実現します。
- 利点:個別デプロイ可能・独立スケーリング・技術スタック選択の自由
- 利点:障害の局所化(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は柔軟なコミットメント型割引があります。タグ付けポリシーでリソースをプロジェクト・環境・チームで分類し、コスト配分の可視化を行います。
- ユニットエコノミクス:機能あたり・顧客あたりのクラウドコスト
- コスト配賦率:全クラウドコストのうちタグ付け・配賦済みの割合
- 使用率:予約インスタンス・Savings Plansの活用率
- 廃棄率:未使用リソース(停止VMなど)のコスト割合