はじめてのECS

ゼロで始めるECSその1

Posted by めろん on 2024/10/07 21:50

【PR】本記事はアフィリエイト広告を利用しています。

ECSとは


ECSとはAmazon Elastic Container Service (ECS) の略で、フルマネージドのコンテナオーケストレーションサービス、だそうです。

ここで初めて触る人には「なんのこっちゃ分からん」と思うかと思います。
実際に触って感じたのは、「クラスター」の中にある「サービス」で稼働している「タスク」をいい感じに制御してくれるサービス
です。

ECS自体は、サービスの運用状態を管理してサービスがダウンしても設定した数だけサービス維持しようと再起動してくれたり
タスクのバージョンアップも自動的に設定した通りに更新なんかもしてくれます。

There is a service in the cluster, and a girl wearing a shirt that says

イメージ的にはこんな感じ?
クラスターの中で稼働するサービスの中で稼働するタスクたち(?)です。
早口言葉みたいですが、まあまあヤヤコシイのです。

タスクを動かすもの

Containers labeled

「タスク」とは、開発者が定義した稼働させる「アプリ」だと思ってください。
実際には開発者が開発した「Docker」のイメージになります。

更にヤヤコシイのは、そのDockerイメージをどこで稼働させるかです。
「EC2」か「Fargate」が選べます。

EC2は有名ですが、ここではサーバレスと呼ばれる「Fargate」に絞ります。
ECSを利用する場合は「Fargate」を使った方が便利でしょう。

ただ用途によってはEC2を使わざる得ない場合がある「GPUを利用したいなど」
のでよく考え自分にあった環境を選びましょう。

Fargate

じゃあFargateって何?となると思いますが、Dockerコンテナを稼働させる為の

装置だと思ってください。

EC2のようにOSのメンテはAWS側に丸投げしてアプリを稼働させたい場合に
利用します。



タスクを稼働させる先をFagateを選ぶと、このFargateがタスクを受け取って
責任をもって稼働させてくれます。

Fargateの欠点は起動がおっそいです。
後述するECRからFargate環境でタスクを起動させる度にイメージを引っ張り出して
きて起動しようとするので、ECRから取り出す場合にも課金されるという特徴が
あり、個人で遊んでるとチャリンチャリン数値があがってドキドキします(笑)

ECR

タスクをどう定義するのかというと、タスク定義する設定画面があるのですが

そこでDockerコンテナイメージが格納されている「ECR」を指定することに
なります。
Amazon Elastic Container Registryの略です。

また新しい登場人物がでてきたと思いますが、ご理解ください。

An anime girl is using a cart to carry a container with the word

細かいこと言うと、他のレジストリサービスを選ぶことができると思いますが
AWSの標準機能で説明致します。

開発者がDockerイメージを作成すると一旦このECRに登録して一旦保存して
おく場所ぐらいに思ってください。

タスクの作成前に済ませておく必要があります。

タスク定義

タスクは、先ほど説明したECR登録しているDockerイメージを指定して

作成します。
メモリの容量だったりCPUサイズだったりを定義します。



こんな感じで細かく定義しておきます。
タスクはバージョンの概念をもっているので、再定義させることができます。

ECSはこの設定されたものを元にコントロールしてくれます。

まとめ

An anime girl wearing a shirt with
ECSが、登録されたクラスタとサービスの設定をみて指示すると・・・
An anime girl wearing a shirt with
タスクに定義されたDockerイメージをECRから・・・
An anime girl wearing a shirt with
Fargateに渡して・・・
An anime girl wearing a shirt with
一生懸命に仕事をし始める、といったイメージです。

ECS・・・コンテナオーケストレーションサービス。
タスク・・・ECSで稼働させるアプリケーション。中身はDockerイメージ。
Fargate・・・タスクを稼働させるサーバレス環境。
ECR・・・Dockerイメージを格納しておく倉庫みたいなもの。

クラスタとサービスはここでは省略しています。

AWSコンテナ設計・構築[本格]入門 [ 佐々木拓郎 ]

価格:3300円
(2024/10/7 22:56時点)
感想(1件)