見出し画像

【Part2】ぜんぜんわからなかったECSについてまとめてみました (概念と実際の画面で見ていくAWS ECS解説)

こんにちはこぐまです。

前回のAWSのサービス「ECS」の記事の続きです。
今回は「その2」です。「その1」は以下をご参照ください。

今回の記事も、AWSの前提知識を必要とせずに読める・・と思います。

まずは前回のおさらいです。

前回のまとめ

・ECSとは、AWSが提供する「統合的コンテナ運用管理サービス」である。
・リアルな貨物船業務とIT(ECS)を比較しながら話を進めた。
・リアルな貨物船業務もIT(ECS)も、運用管理の面で気にしなきゃいけないことはそんなに変わらない。
・ECSでは専門用語がたくさん出てくる。(これがなかなかとっつきにくい・・)


今回は、AWS ECSで登場する専門用語を抑えていきましょう。
専門用語ですが、なるべくAWSを知らなくても理解できるように
書いていきたいと思います。
まずは、この2つの用語を改めて理解します。

1.コンテナ
2.コンテナインスタンス

1.コンテナ

「コンテナ」です。(そのままですね)
前回も少し触れたとおり、
貨物船の「コンテナ」の中には、いろんな「モノ」が詰まっているように、
ITの「コンテナ」の中にもいろんな「ITリソース」が詰まっています。
このコンテナの中の話については、別の機会に記事にします。
「コンテナ」は「コンテナインスタンス」の上で動きます。

2.コンテナインスタンス

「コンテナ」を載せる「サーバ」のことを指します。

しかし、「サーバ」のことをAWSでは普通「「EC2インスタンス」と呼びます。(AWS知っている人は良く聞く用語だと思います。)
では、「コンテナインスタンス」と「EC2インスタンス」って何が違うんだろう?・・その違いが理解できるまで自分は結構時間がかかりました。

実は、結局のところ、
「コンテナを載せるための準備が初めからできているEC2インスタンス(サーバ)」のことを「コンテナインスタンス」と呼んでいるだけだったのです。

船で例えると、
イカダ、釣り船、観光船、貨物船・・いろんな船があると思いますが、
最初からコンテナを載せる準備ができているのは「貨物船」です。
もちろん、ほかの船もその準備をすれば「貨物船」相当になることはできますが船の大改修が必要です。
(イカダはそれでも無理かもしれませんが・・)

コンテナインスタンスとEC2インスタンスの違い。
赤いギアがコンテナを稼働させるための必須アイテムを示している。
この赤いギアの詳細(「ECS Agent」といいます。)は別の記事で説明します。
・・・ということをわかってもらえると嬉しいです。

でも・・初めから準備万端といっても、もともとは「EC2インスタンス」なわけです。「EC2インスタンス」は何がきっかけで準備万端な「コンテナインスタンス」へと進化するのでしょうか・・?
もう少し話を進めます。
次の専門用語は・・

3.クラスター

最近のコロナ情勢で結構認知されている用語ではありますが、IT(特にインフラ)の世界ではずっと前から使われていた用語でした。
クラスターには、「集まり」「集団」という意味があります。

では、ECSで使われる「クラスター」とは何の「集まり」なのかというと、
「EC2インスタンス」の「集まり」です。

ECSでは最初に「クラスター」の名前を決めて、「そのクラスターに何台のEC2インスタンスを用意し所属させるか」を決めます。
貨物船軍団の「チーム名」をまず決めて、そこに属する「貨物船たち」を選ぶ・・みたいな感覚でいいと思います。
(これ以外にも決定する要素はありますが、まず、「チームに所属する」という感覚が自分はとても大切だと思っています。)

そして、この「クラスター」の作成が完了すると、指定した台数の「EC2インスタンス」が「コンテナを載せる準備万端のEC2インスタンス」・・つまり「コンテナインスタンス」へと進化するのです。

貨物船がチーム「こぐま団」を作るように、
EC2インスタンスを束ねてクラスター「koguma」を作成する様子。
クラスターが作成されると、「EC2インスタンス」は「コンテナインスタンス」へと進化する。

「EC2インスタンス」は何がきっかけで準備万端な「コンテナインスタンス」へと進化するのでしょうか・・という先程の問いに対する答えは、
クラスターの作成が完了すること」でした。

・・・ということをわかってもらえると嬉しいです。

4.EC2 Auto Scailing

いきなり長め?の英語が出てきてすみませんが、次のECSの専門用語は
「EC2 Auto Scailing(いーしーつーおーとすけーりんぐ)」です。
これはいったい、なんでしょう?
まずは、「EC2」という頭文字を除いた「Auto Scailing」という用語から説明してみます。

「Auto Scailing」とは「サーバ」突然の負荷や障害、または予定に応じて自動的に増やしたり減らしたりする機能です。
少し話が脱線しますが、オンプレミス(物理サーバを自前で準備しなくてはいけなかった)時代には、急に需要があがったとき、新しいサーバを追加で準備するのにたくさんの時間を要しました。
物理サーバ機器を購入・調達し、配線つないで、セットアップして・・気づいたら3か月・・とか。
それが、「サーバの仮想化(パソコンの中にパソコンを仮想的に作って動かすというイメージで大丈夫です)」という考え方が定着し、かつAWSのようなクラウドサービスが浸透してきたことで、すぐに用意できる仮想サーバ(実際の「物理的なサーバ」ではなく、その上で稼働する「仮想サーバ」)が広く利用されるようになりました。
「物理サーバ」の準備が「数か月」かかるのに対し、「仮想サーバ」の準備はほんの「数分」で完了します。
そんな「数分」で用意できる「仮想サーバ」だからこそ、急な需要や予定に備えて、簡単に数を増やしたり減らしたりすることができるわけです。その監視と数の増減を誰かが「手動」で行うのではなく、システムが「自動的」に行う仕組み・機能のことを「Auto Scailing」と呼びます。

・・・話を戻すと、「EC2 Auto Scailing」とはその名の通り、
「EC2インスタンス」を負荷や予定に応じて自動的に増やしたり減らしたりする機能です。
すでに何度か名前も出てきていますが、AWSでは「仮想サーバ」のことを「EC2インスタンス」と呼びます。(今までの説明では単に「サーバ」のことを「EC2インスタンス」と呼ぶ・・と記載していましたが、正確には「仮想サーバ」のことを「EC2インスタンス」と呼ぶ・・が正しいです。)

ECSにおいて、「クラスター」を作成する(すなわち、「クラスター」の名前を決めて、「EC2インスタンス」を何台用意するか決める)と、なんと「EC2 Auto Scailing」が自動で有効になります!
また、先に説明した通り、「クラスター」の作成が完了すると、用意した「EC2インスタンス」は「コンテナインスタンス」へと進化するので、
「EC2 Auto Scailing」によって、「コンテナインスタンスの台数」を、突然の負荷や障害、または予定に応じて自動的に増やしたり減らしたりできるということです。

・・・ということをわかってもらえると嬉しいです。

ここまでを図にするとこんな感じです。

クラスターを作成すると、EC2 Auto Scailingが有効になる。(右側)
薄緑色の上下の矢印は、コンテナインスタンスが負荷に応じて増減する様子を表している。

第2回は、コンテナを載せる「コンテナインスタンス」まわりの専門用語
を中心に説明してきました。

ここまで見ると、コンテナインスタンス側には「EC2 Auto Scailing」があるんだから、コンテナ側にも、コンテナを自動で増やしたり減らしたりする仕組みがあるんじゃないの?
と勘よく気づかれる方もいらっしゃるかと思います。
その通りです。

それも含めて、次回は「コンテナ」まわりの専門用語を説明していきたいと思います。

ここまで読んでくれて、ありがとうございます。


【マガジン紹介】

「ぜんぜんわからなかったECSシリーズ」のマガジンです!
鋭意更新中です!
AWS未経験者にもわかるように、優しく解説しています。
是非お読みいただけると嬉しいです!


この記事が気に入ったらサポートをしてみませんか?