LoginSignup
0
0

More than 1 year has passed since last update.

Amazon Elastic Container Service(ECS)のBlack Belt を文章でまとめてみた

Posted at

はじめに

AWSのECSを勉強するためにBlack Belt Online Seminerを視聴したので内容をまとめます。

背景

著者は転職活動中ですが、志望する企業でDevOpsの知識が必要となるため、第一歩としてECSについて学習します。

ECSとは

  • クラウドでコンテナを本番番環境利用するためのオーケストレーター。
  • 各種AWSサービスとの連携が可能。

主要要素

image.png

4つの主要要素

  • タスク定義:タスクを構成するコンテナ群定義。
  • クラスター:実行環境の境界
  • タスク:タスク定義に基づき起動されるコンテナ群(実際の実行の単位)
  • サービス:決められた数にタスクをコピーして維持する

起動タイプ

  • EC2起動タイプ:インスタンスをクラスターに登録する。インスタンスの管理が必要。
  • Fargate起動タイプ:EC2インスタンスのプロビジョン、スケール、管理が不要

タスク定義の詳細

  • 最大10個のコンテナを定義するJSON形式のテキストファイル。
  • アプリケーションを実行するときは、タスク定義をインスタンス化した「タスク」を実行する。

代表的なパラメータ

image.png

  • 必須
    • ファミリー:タスク定義の名前。リビジョン番号と合わせて一意に特定することが可能。
    • コンテナ定義:タスク実行時にコンテナランタイムに渡されるコンテナ定義。コンテナの名前、イメージ、メモリーなどを定義。
    • environment:環境変数を平文で設定
    • secrets(AWS Secret Manager、AWS Systems Managerパラメータストア):機密データを設定
    • dependsOn:実行順序の制御や依存関係を設定
  • オプション
    • タスクロール:コンテナが利用できるIAMロールを指定。(APIなど)
    • タスク実行ロール:ECSコンテナエージェントが利用するIAMロールを指定。(コンテナのイメージをpullなど)
    • ネットワークモード:タスクのコンテナが使用するDockerネットワークモードを指定
    • ボリューム:利用するボリュームを指定。
    • タスクサイズ:CPUとメモリのハード制限を設定。

コンテナの実行方法

  • タスク:タスク定義に従って実行されるアプリケーションの実行単位。バッチなどで活用
  • サービス:指定した数のタスクを維持する。Webアプリなどで活用。

ECSとIAMの関係

image.png

  • クラスターパーミッション:誰がクラスター内でタスクを起動/参照できるのかを制御
  • コンテナインスタンスロール:コンテナインスタンスのECSからAPIへのアクセス
  • タスクロール:アプリケーションのコンテナからのアクセス
  • ハウスキーピング:タスク周りの下働きの実行許可
    • タスク実行ロール:コンテナエージェントが利用するIAMロール
    • ECSのサービスにリンクされたロール:ENIの作成、ELBへのターゲットの登録/解除
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0