モダンクラウドアーキテクチャ
現代のクラウドを形作るテクノロジー——コンテナとKubernetesからサーバーレスとエッジコンピューティングまで——を理解し、技術的な会話に参加できるようになる。
🔄 前回のおさらい: レッスン6でクラウドのコスト管理——料金モデル(コンピュート、ストレージ、データ転送)からFinOps最適化の手順(可視化→ライトサイジング→スケジューリング→リザーブ)を学びました。ここではモダンクラウドアーキテクチャのパターンを探ります。
仮想マシンのその先へ
仮想マシンはクラウドコンピューティングの第一波でした——今も重要です。しかしモダンクラウドアーキテクチャは「サーバーを借りる」を超え、より効率的で、スケーラブルで、コスト効果の高いパターンへ進化しています。
3つのテクノロジーがモダンクラウドを支配しています:コンテナ、サーバーレス、オーケストレーション(Kubernetes)。これらを構築する必要はなくても、すべてのクラウドの会話に登場するため、理解しておく必要があります。
コンテナ:環境ごとパッケージする
コンテナはアプリケーションに必要なすべて——コード、ランタイム、ライブラリ、設定——を1つのポータブルな単位にパッケージし、どこでも同じように動作させます。
コンテナが解決する問題:「自分のマシンでは動くのにサーバーでは動かない」。コンテナ以前は、すべてのサーバーでOS、ランタイム、ライブラリのバージョンと設定を揃える必要がありました。コンテナはすべてをまとめることでこの問題を解消します。
| 比較項目 | 仮想マシン | コンテナ |
|---|---|---|
| 含まれるもの | 完全なOS+アプリ | アプリ+依存関係のみ |
| サイズ | ギガバイト | メガバイト |
| 起動時間 | 数分 | 数秒 |
| リソース使用 | 重い(各VMがフルOSを実行) | 軽い(ホストOSを共有) |
| 分離レベル | 完全(別々のOS) | プロセスレベル(共有OSカーネル) |
| 密度 | サーバーあたり5-10 VM | サーバーあたり50-100+コンテナ |
コンテナを分かりやすく説明してください。
私の役割は[マネージャー/アナリスト/マーケターなど]で、
コンテナを構築する必要はありません。
理解したいのは:
1. エンジニアチームが何を話しているか
2. ビジネス上のメリット
3. アーキテクチャ議論で賢い質問をするために
4. コンテナ化が自社に適切かの判断
コードではなく例え話を使い、技術的な実装ではなく
ビジネスへの影響に焦点を当ててください。
✅ 確認クイズ: コンテナが仮想マシンより効率的な理由は?→コンテナはホストOSを共有するため、各コンテナはメガバイト(ギガバイトではなく)、数秒で起動(数分ではなく)、同じサーバーで50-100+のコンテナ実行が可能(VMは5-10台)。冗長なOSを排除することで効率が生まれます。
Kubernetes:コンテナの大規模管理
1つのコンテナは簡単です。しかし数百のコンテナを複数サーバーで管理——健全性の維持、スケールアップ/ダウン、クラッシュ時の置換、トラフィックの振り分け——にはオーケストレーションシステムが必要です。それがKubernetes(K8sと略される)です。
GoogleがKubernetesを社内のコンテナ管理システムに基づいて開発し、事実上の標準になりました。3大プロバイダーすべてがマネージドKubernetesサービスを提供しています:
| プロバイダー | マネージドKubernetesサービス |
|---|---|
| AWS | EKS(Elastic Kubernetes Service) |
| Azure | AKS(Azure Kubernetes Service) |
| Google Cloud | GKE(Google Kubernetes Engine) |
Kubernetesの機能(分かりやすく):
- 自己修復: コンテナがクラッシュしたら自動で置換
- オートスケーリング: トラフィック増加時にコンテナを追加、減少時に削除
- ロードバランシング: 健全なコンテナにトラフィックを分散
- ローリングアップデート: 新バージョンを段階的にデプロイ、問題があればロールバック
サーバーレス:何も管理しない
サーバーレスはさらに抽象化を進めます:コードを書いてアップロードすれば、サーバー、スケーリング、パッチ、可用性はクラウドプロバイダーがすべて処理します。コードが実際に実行された時だけ課金されます。
| プロバイダー | サーバーレスサービス |
|---|---|
| AWS | Lambda |
| Azure | Azure Functions |
| Google Cloud | Cloud Functions |
サーバーレスが最適な場合: トラフィックが予測不能、インフラ管理ゼロが望み、イベント駆動型ワークロード(ファイルアップロード→処理、APIコール→応答)。
サーバーレスが不向きな場合: 長時間プロセス(Lambdaの上限は15分)、安定した高トラフィック(コンテナのほうが安い場合)、特定のランタイム制御が必要な場合。
実際には78%のエンジニアリングチームがハイブリッドアーキテクチャを採用——変動ワークロードにサーバーレス、安定ワークロードにコンテナを組み合わせています。
✅ 確認クイズ: サーバーレスが最もコスト削減できるシナリオは?→トラフィックが大きく変動する場合——リクエストがゼロの時もあれば数千の時もある。サーバーレスはゼロまでスケール(アイドル時は課金なし)、コンテナやVMは継続課金。時間あたり10リクエストが通常で、ピーク時に10,000になるAPIなら、サーバーレスは常時稼働の代替手段より90%安くなることもあります。
まとめ
- コンテナはアプリケーションを依存関係ごとポータブルなユニットにパッケージし「自分のマシンでは動く」問題を解消
- コンテナはVMより軽量(メガバイト対ギガバイト、起動数秒対数分)、同じサーバーでVMの5-10倍の密度
- Kubernetesが大規模なコンテナを管理——自己修復、オートスケーリング、ロードバランシング、ローリングアップデートを自動化
- サーバーレスはインフラ管理を完全に排除——コードを書いてアップロードし、実行時だけ課金——変動するイベント駆動型ワークロードに最適
- 78%のチームがサーバーレスとコンテナを組み合わせたハイブリッドアーキテクチャを採用——すべてに1つのアプローチではなく、ワークロードに適したツールを選択
次のレッスン: 最終レッスンで、これまで学んだすべてを個人のクラウド学習ロードマップにまとめます——認定資格、無料リソース、ハンズオンプロジェクト。
理解度チェック
まず上のクイズを完了してください
レッスン完了!