LoginSignup
1
0

More than 1 year has passed since last update.

【初心者向け】【AWS SAA合格へ向けて】ECSとECRの概要について

Posted at

概要

AWS SAA合格へ向けてAWSについて1から勉強した際に学んだことを定期的にアウトプットしたいと思います

前提

  • Dockerおよびコンテナ仮想技術についてある程度知っていること
  • EC2についてある程度知っていること

ECSとは

Amazon Elastic Container Service (Amazon ECS)は、非常にスケーラブルで高速なコンテナ管理サービスです。これを使用して、クラスター上のコンテナを実行、停止、管理できます。

公式ドキュメントに記載している通り、コンテナの実行、停止、管理を簡単に実行できるAWSのフルマネージドサービスです

起動タイプ

ECSを使用する際に起動タイプを選択する必要があり、

  • EC2
  • Fargate

の2種類存在します

EC2

EC2インスタンス上でコンテナを実行、停止、管理する起動タイプです
EC2インスタンスの制御と管理を自身でする必要があるものの、後述するFargateタイプと比べてカスタマイズ性が高いです

Fargate

EC2インスタンスを管理せずにサーバレスでコンテナを実行、停止、管理する起動タイプです
Fargateを使用することでサーバ(EC2インスタンス)のプロビジョニング(必要に応じたリソースの提供や準備)や管理せずにコンテナを実行、停止、管理できます
ただし、前述のEC2タイプと比べてカスタマイズ性が低いです

クラスター

後述するコンテナインスタンスをグループ化した論理グループのことです

コンテナインスタンス

クラスター上でコンテナを実行するEC2インスタンスのことです

タスク定義

コンテナを実行するための設定が記載されたJSONファイルのことです
タスク定義には

  • コンテナ定義
    • コンテナイメージ
    • コンテナ名
    • コンテナ起動時のコマンド
  • ネットワーク定義
    • ホスト名
    • IPアドレス
    • DNS
  • ボリューム定義
    • 使用するボリューム

などが記載されています
複数のタスク定義を使って複数のコンテナで構成されたアプリケーションを実行できます

タスク

タスク定義に基づいて起動するコンテナ群のことです

サービス

複数のタスク(コンテナ群)の管理および実行を行う機能です
サービスを使用することで、

  • スケールアップ/ダウン
  • アプリケーションの負荷分散

などを自動化することができます
スケールアップ/ダウンをする点ではApplication Auto Scalingと似ていますが、
サービスは自動的にタスクの数をスケールアップ/ダウンをすることができるものの、
スケールアップ/ダウンの特定の条件下でしか行うことができません
それに対してApplication Auto Scaling はECS以外に

  • DynamoDB
  • EC2
  • RDS

など様々なサービスでスケールアップ/ダウンができる汎用的なマネージドサービスになっています

ECRとは

Docker(コンテナ)イメージをAWS上で管理するためのマネージドサービスです
ECRとECSを組み合わせることでローカル上のDockerイメージのbuildからdeployまでを自動化することができます

ECSの構成

図にすると以下の通りです

ecs.drawio.png

参考

1
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
1
0