9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

※これは「株式会社ネクスウェイ Advent Calendar 2025」11日目の記事です🎄

あらゆるコミュニケーションを支援する株式会社ネクスウェイの開発メンバーが、好きな技術・取り組み・学びをゆるく書いていきます :snowman2:


こんにちは。まいちです。

エンジニア界にもアドベントカレンダーがあるんですね!
読んだらお菓子がもらえるといいなぁ :chocolate_bar:
ではみなさん、さっそく12/11をあけてみましょう。
わくわく!

あーECSね。おいしいよね。

ECS、Docker、タスク...このへん、用語がたくさんあってややこしや!
調べても小難しい説明ばかりで結局なんなのよ!
ってなりませんか??
(「なりません」の方は暖かい目で読んでください。)

こういうのってイメージで覚えたいよね!
というわけで、

  • GitHub Copilot
  • Gemini 3 Pro
  • Googleスライド

G3:crown:のみなさんにご協力を仰ぎ、図解してみました。
※ Geminiさんの作成する画像や動画はまだ日本語がわりと苦手ですが、御愛嬌 :relaxed:
※ 画像はGeminiで作成し、一部スライドで加工してます

ECS

ではまず、ECS全体から!
qiitaネタ1.png
ECSはキッチン(クラスター)がたくさんあるレストランです。
キッチンは本番用カレーキッチン、開発用カレーキッチンと細かくわけて使ったりします。

ECSで、Fargate使うか?EC2使うか?の選択イメージはこんなかんじ。

qiitaネタ2.png
お手軽なレントルレンタルキッチンのほうが人気なイメージがありますが、コストメリットで選択する方も多いのではないでしょうか。

ECR

お次はパントリー!
要するにここは、開発したソースコードをぎゅっとしたカレールー(イメージ)をたくさん置いている場所です。
qiitaネタ3.png

Geminiのプロンプトでは「カレールーを10個置いてあるパントリーの絵」と言ったんですが、100個くらいありそうですね。

タスク定義

カレールー(イメージ)をどのようにして提供するのか詳しいことを書いたのがレシピことタスク定義!
1個のタスク定義の中に複数のコンテナ定義が書けます。
つまりタスク定義は単品(コンテナ)をどう組み合わせてセットにするかの概要も含まれています。
qiitaネタ9.png

サービス

それらを踏まえて!
ドヤ顔でお客さんにセットメニューを提供しているのがシェフ(サービス)です。
キッチン(クラスター)で、
レシピ(タスク定義)の通りにカレールー(イメージ)を使って、
注文数のセットメニュー(タスク)を提供します。
qiitaネタ8.png

基本的に1シェフ1料理がスマートなやり方とされているため、
カレーシェフはカレーセットだけ、デザートシェフはデザートだけを作ります。
ひとりのシェフにフルコースをお願いするとてんやわんやですもんね。

ちなみに、シェフ(サービス)を無視して、野良のカレーセット(タスク)を提供することもできます。このタスクに関してはシェフは関与しません。
野良のタスクを提供するのはそう、あなたです。

qiitaネタ.png

deploy

ではECSのdeployってなにがどうなること?

というと、まず、おうち(ローカル)で開発チームがカレーをもっとおいしくします。(ソースコード改修)
出来上がったら、そのカレーをルー設計図(Dockerfile)に従ってDockerでルー(イメージ)にする!(docker build
そしてDockerで出来上がったルー(イメージ)をパントリー(ECR)に送ります。(docker push
これで新しいルーがキッチン(クラスター)で使えるようになったね✨
qiitaネタ6.png

新しいルーが出来たので、レシピ(タスク定義)を変更します。
そしてシェフ(サービス)に、レシピの変更と次の必要セット数を伝えます。(ecs update-service ... --desired-count xx)

するとシェフは提供中のセットメニューをすべて破棄し、新しいセットメニューを作り直します🍛

qiitaネタ9.png

ここで、1個破棄して1個作りなおしていくやり方がローリングアップデート、
裏で新カレーセットを3つ用意しておいて、すっと入れ替えるのがBGdeployです。

ちなみにこのdeployの流れをGeminiで動画にしてみたらこうなりました。
何度かプロンプト修正したんですが、うまく行かなかった :cry:
※10MBまでしかQiitaにアップできず、めちゃくちゃ縮小したら画質悪くなりましたが、Geminiさんが作った元動画はもちろん画質良く声も効果音もありなのです

2847 (1).gif

1年後に同じプロンプトで動画作成したらどうなっているのかやってみたいですね!

さて、カレーのいい匂いがしてきたところで :curry:
それでは、メリークリスマス :santa: :christmas_tree:


最後まで読んでいただきありがとうございました。

株式会社ネクスウェイ Advent Calendar 2025では明日以降も、開発メンバーがそれぞれの「好き」と「学び」を自分の言葉で綴っていく予定です。

明日 12 日目の記事は、同じくネクスウェイ開発メンバー@ryu_nxw さん です。

引き続き、お楽しみください🎄


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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?