ECSでEC2インスタンスにコンテナをデプロイする際に指定するCPUとメモリの設定値の指定方法についてご教示いただきたいです。
普段は、Dockerをローカル環境でしか使わないためCPUの割り当てを意識した事がありませんでした。
ECSのドキュメントを参考にすると、cpu_shares
とmem_limit
を指定しているのですが、何を基準に設定しているのか検討がつきませんでした。
サーバー構成について
EC2のt2.microを使う場合で考えています。
そもそも、インスタンスタイプがt2.microで良いかという問題もあります。
参考までに、スペックを載せます。
vCPU* | CPU クレジット/時間 | メモリ (GiB) | ストレージ |
---|---|---|---|
1 | 6 | 1 | EBS のみ |
お聞きしたい事
構築するコンテナの構成の場合に想定される割り当て値について
単純なWebアプリケーションのサーバーを作るとします。
下記のように2コンテナの場合は、2コンテナとも同じ割り当てで良いのでしょうか?
コンテナの役割 | 備考 |
---|---|
webサーバー | nginxで構築 |
アプリケーションサーバー | phpを動かすために使用 |
※ データベースはRDSを使いますので、コンテナでは用意しません。
大雑把な質問で大変申し訳ございませんが、CPUやメモリは割り振り方の基準をご教示いただけますでしょうか?
実際に稼働してみて調整していくものなのでしょうか?
公式解説ページの構成の見方について
上記構成とは関係ありませんが、公式のチュートリアルを見ると、下記の構成で説明されています。
この構成について、「100 CPU ユニットおよび 500 MiB のメモリ」と説明されています。
yaml
1version: 1 2task_definition: 3 services: 4 wordpress: 5 cpu_shares: 100 6 mem_limit: 524288000 7 mysql: 8 cpu_shares: 100 9 mem_limit: 524288000
t2.microで想定した場合、
メモリが500MiBが2コンテナで使い切るという考え方は分かるのですが、
cpu_sharesが100であるのが理解できません。
cpu_sharesのデフォルト値は1024なので、100という事は、1コンテナあたり約1/10使うと言う事でしょうか?
それとも、両方とも100なので等分して使うと言う意味でしょうか?
あなたの回答
tips
プレビュー