0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🍯【はちみつと学ぶIT #15】Amazon ECSとは?コンテナを管理するサービスをやさしく解説

0
Posted at

🍯【はちみつと学ぶIT #15】Amazon ECSとは?コンテナを管理するサービスをやさしく解説

はじめに

前回は、必要なときだけプログラムを実行するAWS Lambdaについて学びました。

今回は、コンテナ化したアプリケーションをAWS上で動かすためのサービスである、Amazon ECSについて解説します。

ECSを一言で表すと、

複数のコンテナをまとめて管理するサービス

です。


Amazon ECSとは?

Amazon ECSは、正式には

Amazon Elastic Container Service

と呼ばれます。

コンテナ化したアプリケーションをAWS上に配置し、次のような操作を行うためのサービスです。

  • コンテナを起動する
  • コンテナを停止する
  • 必要な数のコンテナを維持する
  • アクセスに応じて数を増減する
  • コンテナの状態を監視する

ECSを利用することで、複数のコンテナを一つずつ手作業で管理する必要がなくなります。

4d7bce81e8ee39b6684c8bb07e02829588c3021518289c24275abfea73f9e84b.png


そもそもコンテナとは?

コンテナとは、

アプリケーションと、その実行に必要なものを一つにまとめた箱

のようなものです。

例えば、コンテナの中には次のようなものを入れられます。

  • アプリケーション
  • ライブラリ
  • 実行環境
  • 必要な設定

同じコンテナイメージを使えば、開発環境や本番環境でも、同じようにアプリケーションを動かしやすくなります。

ただし、コンテナが増えてくると、

  • どのコンテナを動かすのか
  • 何個動かすのか
  • 停止したコンテナをどう復旧するのか

といった管理が必要になります。

その管理を担当するのがAmazon ECSです。


はちみつ屋さんで例えると

はちみつ屋さんが、商品を配送するとします。

はちみつだけをそのまま運ぶのではなく、

  • はちみつ
  • 容器
  • ラベル
  • 説明書

を一つの配送箱にまとめます。

この配送箱がコンテナです。

商品を入れる箱が数個であれば、クマさん一人でも管理できます。

しかし、注文が増えて配送箱が100個、1,000個になると、

  • 箱を何個用意するか
  • どの車に積むか
  • 壊れた箱を交換するか
  • 注文が増えたら箱を追加するか

を管理する仕組みが必要です。

この配送全体を管理する係が、Amazon ECSです。

2b0bdd080a7df145a827a4e3a2ad53abb9cc9653b81947609f8c885c8c8d2bd9.png


ECSを理解するための基本用語

コンテナイメージ

アプリケーションを動かすための中身をまとめた、コンテナのひな型です。

はちみつ屋さんでいえば、配送箱に何を入れるかを決めたセットにあたります。


タスク定義

コンテナの動かし方を記載した設計書です。

例えば、次のような内容を設定します。

  • 使用するコンテナイメージ
  • 必要なCPU
  • 必要なメモリ
  • 使用するポート
  • 環境変数

タスク

タスク定義をもとに、実際に起動されたコンテナです。

タスク定義:設計書
タスク:設計書から実際に作られたもの

という関係です。


サービス

指定した数のタスクを継続的に動かすための仕組みです。

例えば、タスクを3個動かす設定にしておくと、1個停止しても、新しいタスクを起動して3個の状態に戻します。


クラスター

ECSで動かすタスクやサービスを、まとめて管理するためのグループです。


コンテナをどこで動かすの?

ECSでは、コンテナを実際に動かす環境を選択できます。

AWS Fargate

サーバーの準備や管理をAWSに任せる方法です。

利用者は、コンテナに必要なCPUやメモリを指定して実行します。

サーバー管理の負担を減らしたい場合に向いています。

Amazon EC2

自分で用意したEC2インスタンス上でコンテナを動かす方法です。

EC2の種類や設定を細かく管理できますが、サーバーの運用も利用者が担当します。

実行環境 サーバー管理 特徴
Fargate AWSに任せる 手軽に始めやすい
EC2 利用者が行う 構成を細かく調整できる

ECSを利用するメリット

  • 複数のコンテナをまとめて管理できる
  • 必要な数のコンテナを維持できる
  • アクセスに合わせて拡張・縮小できる
  • Fargateを使えばサーバー管理を減らせる
  • AWSの各種サービスと組み合わせられる

588d511531940119b6d472e80c28bb2c7e9a360d47b6cb64025bd749fff39002.png


🍯 はちみつメモ

Amazon ECS = 複数のコンテナをまとめて管理するサービス

コンテナが「商品を入れた配送箱」なら、ECSは「配送箱の数や状態を管理する係」です。


まとめ

  • コンテナは、アプリと実行環境をまとめた箱
  • ECSはコンテナの起動・停止・管理を行う
  • タスク定義はコンテナを動かすための設計書
  • ECSではFargateまたはEC2などを使ってコンテナを実行できる
  • Fargateならサーバー管理をAWSに任せられる

次回

🍯【はちみつと学ぶIT #16】AWS Fargateとは?サーバー管理不要でコンテナを実行できるサービスをやさしく解説

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?