技術メモ

技術メモ

ラフなメモ

Amazon ECSを試して入門する

コンテナ楽しいですよね!
本記事ではAmazonECSの概要を確認して実際にアプリケーションをECSにデプロイして動作を確認することをゴールとします。参考にしている資料が最新ではないものも含まれているので、少し古い内容かもしれません。

はじめに

そもそもAmazonECSの概要を確認しておきます。

Amazon ECSのコンポーネント

コンポーネント 説明
Task Instatnce上で実行されている実際のContainer
Task Definition Taskで使うContainer及び周辺設定の定義
Cluster Taskが実行されているEC2 Instance群
Manager ClusterのリソースとTaskの状態を管理
Scheduler Clusterの状態を見て、Taskを配置
Agent EC2 InstanceとManagerの連携を司る

Task = コンテナ という意味ということが分かりました。Taskを中心に関連する用語について考えると分かりやすかったです。

Amazon ECSの機能

機能名 説明
Service ロングランニングアプリケーション
Security セキュアな環境でコンテナを動かす
Simple インストール不要でAWSネイティブ連携
  • Service
    • ロングランニングアプリケーションを希望する状態に保ち続ける
      • Task Definition
      • Taskの数
      • Load Balancerの登録/解除
    • Application Load Balancerとの動的ポートマッピング
      • コンテナはランダムなホストのポートを使って登録される
    • Application Auto ScalingのAmazon ECS Serviceサポート
      • AlarmとPolicyを使って、希望するTask数を自動的に変更する
    • Task Definitionの更新で、Blue/Greenデプロイ
  • Security
    • 各TaskにIAMロールを指定することができる
      • Task Definitionで指定したり、run-task時に指定したり
  • Simple
    • マスターサーバ群が不要
    • Amazon CloudWatch Logsと簡単に連携

ECSの機能の中心はServiceで、これはTask DefinitionやTask、Load Balancerと関連するよ~ということですね。

エンティティの関連図

f:id:tutuz:20190424220758p:plain

Amazon EC2 Container Service(ECS)の概念整理 - Qiita より引用

構築

軽く試してみるなら以下のクラスメソッドさんの記事が一番分かりやすかったです。

参考資料