レッスン 7 10分

モダンクラウドアーキテクチャ

現代のクラウドを形作るテクノロジー——コンテナと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サービス
AWSEKS(Elastic Kubernetes Service)
AzureAKS(Azure Kubernetes Service)
Google CloudGKE(Google Kubernetes Engine)

Kubernetesの機能(分かりやすく):

  • 自己修復: コンテナがクラッシュしたら自動で置換
  • オートスケーリング: トラフィック増加時にコンテナを追加、減少時に削除
  • ロードバランシング: 健全なコンテナにトラフィックを分散
  • ローリングアップデート: 新バージョンを段階的にデプロイ、問題があればロールバック

サーバーレス:何も管理しない

サーバーレスはさらに抽象化を進めます:コードを書いてアップロードすれば、サーバー、スケーリング、パッチ、可用性はクラウドプロバイダーがすべて処理します。コードが実際に実行された時だけ課金されます。

プロバイダーサーバーレスサービス
AWSLambda
AzureAzure Functions
Google CloudCloud Functions

サーバーレスが最適な場合: トラフィックが予測不能、インフラ管理ゼロが望み、イベント駆動型ワークロード(ファイルアップロード→処理、APIコール→応答)。

サーバーレスが不向きな場合: 長時間プロセス(Lambdaの上限は15分)、安定した高トラフィック(コンテナのほうが安い場合)、特定のランタイム制御が必要な場合。

実際には78%のエンジニアリングチームがハイブリッドアーキテクチャを採用——変動ワークロードにサーバーレス、安定ワークロードにコンテナを組み合わせています。

確認クイズ: サーバーレスが最もコスト削減できるシナリオは?→トラフィックが大きく変動する場合——リクエストがゼロの時もあれば数千の時もある。サーバーレスはゼロまでスケール(アイドル時は課金なし)、コンテナやVMは継続課金。時間あたり10リクエストが通常で、ピーク時に10,000になるAPIなら、サーバーレスは常時稼働の代替手段より90%安くなることもあります。

まとめ

  • コンテナはアプリケーションを依存関係ごとポータブルなユニットにパッケージし「自分のマシンでは動く」問題を解消
  • コンテナはVMより軽量(メガバイト対ギガバイト、起動数秒対数分)、同じサーバーでVMの5-10倍の密度
  • Kubernetesが大規模なコンテナを管理——自己修復、オートスケーリング、ロードバランシング、ローリングアップデートを自動化
  • サーバーレスはインフラ管理を完全に排除——コードを書いてアップロードし、実行時だけ課金——変動するイベント駆動型ワークロードに最適
  • 78%のチームがサーバーレスとコンテナを組み合わせたハイブリッドアーキテクチャを採用——すべてに1つのアプローチではなく、ワークロードに適したツールを選択

次のレッスン: 最終レッスンで、これまで学んだすべてを個人のクラウド学習ロードマップにまとめます——認定資格、無料リソース、ハンズオンプロジェクト。

理解度チェック

1. 開発者が「アプリケーションをコンテナ化すべき」と提案。上司にビジネス用語で説明するよう求められた。何と言いますか?

2. サーバーレス(AWS Lambda)とコンテナ(ECS/EKS)を新アプリケーションで比較中。トラフィックは予測不能——時に毎分10リクエスト、時に10,000。どちらが適切?

3. CEOがエッジコンピューティングの記事を読み「うちもエッジに移行すべきか?」と質問。どう答えますか?

すべての問題に答えてから確認できます

まず上のクイズを完了してください

関連スキル