質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

2回答

1106閲覧

AWS ecsでドメインが異なる複数のコンテナを1つのec2で運用できるのでしょうか?

DeepRoastBeans

総合スコア79

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2022/03/02 02:42

ec2のvirtualhostでドキュメントルートを設定して1つのインスタンスで複数のドメインサービスを運用するみたいに、ecsを使う場合でも1つのec2で複数のドメインのコンテナを並列で動かせるのでしょうか?

例えば、
hoge.com のコンテナA
fuga.com のコンテナB

この二つのコンテナを
ecsの1つのtask definitionにまとめて定義し、
1つのEC2で運用できるのでしょうか?
もしできるのであれば、やり方を教えていただきたいです。

理解が間違っていたらすみません。
※1つのコンテナAをecs・ec2で動かすところまではできたのですが、task definitionで二つ目のコンテナを追加しようとすると、ポートで80:80のところが重複してしまい、うまくいきません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2022/03/02 03:52

なんで1つのtask definitionにまとめたいんでしょうか? 普通に別々に作れば良いと思うのですが…。あまりメリットを感じません。
DeepRoastBeans

2022/03/02 03:58

なるほどですね。ありがとうございます。 ※運用するドメイン・コンテナの数が4~6位あるので、 1つのEC2にまとめられたらランニングコストが安くなるように思ったので 質問させていただきました。
yu_1985

2022/03/02 05:36

インスタンスの台数に影響するのはECS Cluster のキャパシティプロバイダー戦略であって、task definitionではありません。 なのでtask definitionをまとめようが分割しようが関係ありません。 ECS Clusterで使っているEC2インスタンスが1台の場合、ポートの扱いがどうなのかは気になるところですが。
yu_1985

2022/03/02 05:50

EC2インスタンスを1台にすることにこだわるならわざわざECSを使わずに普通にEC2上に構築してはどうでしょうか。 せっかくECSを使うことによってクラスターにできているのに肝心のクラスターが1台ではそのメリットが死ぬように思えます。 ECSを使うならスペックの低めのオンデマンドインスタンス1台+スポットインスタンス複数台(スケーリング)などの構成にするかFargateにしてFargate Spotを使うとかしないとクラスターのメリットを享受しきれないかと。
DeepRoastBeans

2022/03/02 06:05

ありがとうございます。非常に参考になります。 アプリケーションによって使用しているフレームワークなどが異なり、それにより必要な言語のバージョンなどが異なる可能性が高いので コンテナ化することで、各アプリごとに必要なミドルウェア・ソフトウェアで開発できるなど 幾つかメリットはあると考えておるのですが、コストに関しては概算でどれ位かかるのかを考慮して おっしゃる通りEC2にまとめるのか、コンテナ化するのかジャッチするのが良いのではと思います。
yu_1985

2022/03/02 06:12

コンテナ化するなと言っているのではなく、コンテナをEC2インスタンス上で複数動かせばいいのではないですか、と言っています。 フレームワークを使っているとなると複数動かすにはそれなりの性能が要求されると思いますが、そもそも必要スペックは見積もれているのでしょうか?
DeepRoastBeans

2022/03/02 06:19

なるほどですね、承知いたしました。 現行の稼働状況を見ながらインスタンスタイプの目安は選定しております。
yu_1985

2022/03/02 07:42

必要なインスタンスタイプがmicroとかmediumとかじゃなければせっかくのクラスターなのでそもそも1台で動かす必要もないかと思います。
guest

回答2

0

追記・修正の依頼のところに書いちゃいましたが、EC2インスタンス1台で運用するために必要なのはtask defenitionをまとめることではありません。
ECSを使いたいのならECSクラスターのキャパシティープロバイダーでEC2インスタンスが1台になるようにやってみてください。
もっとも、クラスターなので1台にしてしまったらどうなるかはわかりません。

そこまでして1台にしたいのなら普通にEC2インスタンス上でコンテナを動かして、別途ApacheやNginxにリクエストを振り分けさせるといいでしょう。
ECSを使うのならスポットインスタンスやFargate Spotでコスト削減することを検討してみてください。前段にALBが必要な気もしますが、NginxなりApacheなりのコンテナにプロキシさせてリクエストを振り分けたりすることももしかしたらできるかもしれません。(そこまで試したことはないので実際に可能かは明言できないです。)

投稿2022/03/02 06:52

yu_1985

総合スコア7427

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

2つのドメインを同じIPを指すように設定しといて、あとはドキュメントルートで割り振ればいいのでは

投稿2022/03/02 03:01

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2022/03/02 03:55

ECSの2つのタスクにリクエストを割り振りたいという話なので(恐らくコンテナ内にあるであろう)DocumentRootで割り振ることは出来ないと思います。 同じコンテナの中にあるならわかりませんが、せっかくコンテナ作ってるのにわざわざ同じコンテナの内部でVirtualHostを使うメリットはちょっと見いだせません…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問