最近人に教える機会が増えてきたのでその時にぱっと渡せるように記事にすることとしました。
- AWSを触ったことがある(VPC、EC2と聞いてピンとくる)
- コンテナ技術に触れたことがある
- WebアプリをデプロイするならECSを使うと良いよと聞いたが、何からすれば良いかわからない
こんな感じの方を対象としています。
一方で私自信も経験2年のジュニアエンジニアですので、ちょっと先輩の人がふわっと教えてくれるんだな〜てスタンスで読んでいただけると助かります。
タイトル詐欺で申し訳ありませんが、以下の記事をこの記事より前に読むことをおすすめします。
大変感銘を受けました。ECSの専門用語を全く使わずに概念を解説してくれる素晴らしい記事です。
今回の記事は上記の記事の続きだと思って読んでいただけると理解が進みやすいと思います。
Amazon Elastic Container Serviceは、AWSが提供するフルマネージドのコンテナオーケストレーションサービスです。
と言われても全然ピンとこないと思うので簡単に図にまとめてみました。わかりやすさを重視しているので完全性に欠ける部分があることはご了承ください。
こんな感じだとイメージしやすいのかなと思っています。
オレンジの部分が実際にECSにて使用されている専門用語で、それぞれの用語に近い概念を下に書いています。
あくまでもイメージですので、正確な内容についてはブラックベルトやら公式読んでください
上記の図が出てくるECSのブラックベルト
タスク
コンテナです。
正確には、タスク定義に基づいて起動されるコンテナ群 です
ここにWebアプリケーションを置いて動かしていきましょう
この説明を読んでピンときてない方はまず、コンテナ周りの概要を掴んでおかないとECSを扱うことは難しいと思いますので、以下の記事を読んでみることをお勧めします
タスク定義
docker composeと仕事の内容が似ています。
コンテナをどう動かすか?(= タスクをどう起動するか)の定義です。
ECS触っている時に一番触ることになる部分です。
ECR
Docker Hubのリポジトリみたいなものです。コンテナイメージの保管庫。
AWS内でDocker imageを管理できます。タスク定義で「どのリポジトリのどのイメージを使うよ〜」って時に指定される感じです。
Container Instance
コンテナを起動するパソコンです。
ECSを学習しているとFargateという単語も出てくると思いますが、Fargateもこの部分の概念です。(正確にいうとContainer InstanceはEC2モードでの表現ではありますが、、、)
- EC2を指定すると、OSなどの細かい部分も自分で決めることができるけど自分で管理しないといけない
- Fargateを指定すると、メモリとCPU決めるだけで他は全部AWSがいい感じにしてくれる、物理サーバを意識せずに使える実行環境を提供してくれる
という認識を持っておくと、今後様々なドキュメントが読みやすくなると思います
サービス
コンテナの実行を管理する社員です。
正確にはタスク定義に基づいて「いつ」「いくつ」動かすか、負荷分散(ALB)やスケーリング設定を管理する概念です。
クラスター
会社と表現していますが、ローカルネットワークと表現しても良いのかな…?って感じです。
社員が他の会社のPCを扱う権限がなかったり、そもそも触ることを考えないように、ECSのクラスターはVPCのようなネットワークそのものではなく、ECSサービスとタスクをまとめる単位です。
最初のうちはあまり触ることはないのかな〜と思ってます。
以上のイメージを持っておくと、他の入門向けの記事や公式などが読みやすくなるのではないのかなと思います。
誤解を招く表現などがございましたら、ご教授いただけますと幸いです。
また、ここまで読んでいいただくと以下の記事が結構参考になるのかなと思うのでぜひ読んでみてください
Views: 0