コンテナオーケストレーション

コンテナのデプロイ、スケーリング、ネットワーキングを自動管理するプラットフォーム

コンテナインフラ

コンテナオーケストレーションとは

コンテナオーケストレーションは、コンテナのデプロイ、スケーリング、ネットワーキング、ヘルスチェックを自動管理するプラットフォームである。Kubernetes と Amazon ECS が代表例。

なぜ必要か

コンテナ 1 つ: docker run で十分
コンテナ 100 個:
  - どのサーバーに配置するか
  - 障害時にどう再起動するか
  - スケールアウトをどう制御するか
  - コンテナ間の通信をどう管理するか
  → オーケストレーターが自動管理

ECS vs EKS vs Lambda

観点 ECS (Fargate) EKS Lambda
管理負荷 低い 中〜高 最低
スケーリング Auto Scaling HPA 自動
コスト (アイドル) タスク数に比例 クラスタ費用 ゼロ
実行時間 無制限 無制限 最大 15 分
用途 長時間処理、Web サーバー K8s エコシステム イベント駆動

オーケストレーターの機能

オーケストレーターはコンテナをどのノードに配置するかのスケジューリング、負荷に応じたコンテナ数の増減 (スケーリング)、不健全なコンテナの自動再起動 (ヘルスチェック)、コンテナ間の名前解決 (サービスディスカバリ)、ダウンタイムなしのローリングアップデート、環境変数の安全な注入 (シークレット管理) を担う。

Lambda vs コンテナの選択基準

ケース 推奨
イベント駆動、短時間処理 Lambda
長時間処理 (> 15 分) ECS Fargate
既存のコンテナアプリ ECS Fargate
K8s エコシステムが必要 EKS
コストゼロを目指す Lambda

実践的な知識は関連書籍でも得られる。

関連用語