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

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

コンテナインフラ

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

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

なぜ必要か

コンテナが 1 つなら docker run で十分だが、本番環境では数十〜数百のコンテナが稼働する。どのサーバーに配置するか、障害時にどう再起動するか、負荷に応じてどうスケールするかを手動で管理するのは現実的でない。オーケストレーターがこれらを自動化する。

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

ECS vs EKS vs Lambda

ECS と EKS vs Lambda の違いを以下にまとめる。

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

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

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

Lambda vs コンテナの選択基準

Lambda とコンテナの選択基準の違いを以下にまとめる。

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

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

この記事は役に立ちましたか?

関連用語

関連する記事