コンテナ運用の設計 ECSとEKSでデプロイとスケーリングを自動化する
DOP-C02では、コンテナ基盤の選定そのものよりも「どうやって安全に更新し、どう自動で拡縮し、障害時にどう戻すか」が問われます。この記事ではECSとEKSの運用設計を、要件から選べる形で整理します。
覚え方は「載せる・回す・戻す」の3つの観点です。どのコントロールプレーンとデータプレーンに載せるか、どの指標でスケールを回すか、失敗をどう検知して戻すか。運用設計はこの3段で組み立てます。
載せる:ECSとEKS、FargateとEC2
ECSはAWS独自のシンプルなオーケストレータで、IAMロールをタスク単位で割り当てるなどAWSサービスとの統合が滑らかです。Kubernetesの運用経験がなく、素早くコンテナを本番化したいならECS。EKSは標準Kubernetes APIが使え、HelmやOperatorなどの資産をそのまま活かせます。既存のKubernetesマニフェストや他環境との共通運用があるならEKSです。
データプレーンは、ノード管理を無くしたいならFargate、GPUや特殊インスタンス、デーモン常駐が必要ならEC2を選びます。EKSでEC2を使う場合、マネージドノードグループにすればAMI更新とドレインが自動化されます。
回す:スケーリングの指標を決める
ECSサービスのターゲット追跡スケーリングでは、平均CPU使用率だけでなくALBのターゲットあたりリクエスト数を指標にすると、負荷の立ち上がりに素直に追随します。SQSを挟む非同期処理なら、キューの滞留メッセージ数をタスク数で割ったカスタムメトリクスが定番です。EKSではPodをHorizontal Pod Autoscaler、ノードをKarpenterやCluster Autoscalerで拡縮する2段構えになります。
戻す:デプロイと自動ロールバック
| 方式 | 切り替え | 戻しやすさ | 使いどころ |
|---|---|---|---|
| ローリング更新 | タスクを順次入れ替え | やや遅い | コスト重視・追加リソースを増やしたくない |
| ブルーグリーン(CodeDeploy) | 新旧を並行稼働し一括切替 | 即時 | 失敗時に秒単位で戻したい本番リリース |
| カナリア | 一部トラフィックのみ先行 | 即時 | 影響範囲を限定して様子を見たい |
CodeDeployのECSブルーグリーンでは、テスト用リスナーで新環境を検証してから本番リスナーを切り替え、CloudWatchアラームをデプロイグループに紐づけておけばエラー率上昇時に自動で旧タスクセットへ戻せます。切替後の待機時間を設定できるため、切り戻し猶予を確保できる点も重要です。
チェックリスト
- ECSとEKS、FargateとEC2を要件から選び分けられる
- ターゲット追跡スケーリングの指標を用途別に選べる
- SQS滞留数を使ったカスタムメトリクススケーリングを設計できる
- CodeDeployのECSブルーグリーンの切替と待機の流れを説明できる
- デプロイサーキットブレーカーとアラーム連動ロールバックを区別できる
まとめ
コンテナ運用は「載せる・回す・戻す」の順で設計し、特に自動ロールバックの経路を先に決めておくのが実務でも試験でも有効です。仕上げに クイズ で知識を定着させ、出題範囲の最新版は AWS認定 公式ページ で必ず確認してください。
DOP(DevOpsエンジニア) におすすめの教材
AWS認定 DevOpsエンジニア − プロフェッショナル DOP-C02 出題予想問題集 第2版
AWS認定 DevOpsエンジニア − プロフェッショナル DOP-C02 練習問題集
AWS認定DOP(DOP-C02)実践問題集(全範囲・225問)
AWS認定DOP 演習テスト(日本語)
本セクションにはAmazonアソシエイト・Udemyアフィリエイトのリンクが含まれます。