AWS ECS やBeanstalk Docker Multicontainer でGetting “RESOURCE:MEMORY”というエラーが出たとき。

ECS_beanstalk_resource_memory

AWS Beanstalk Docker Multicontainer について、
いいね!って記事は多いんだけど、エラーに関する記事が少なすぎる気がする。。
実戦投入は少ないのかな?

今回は、AWS Elastic BeanstalkのDocker Multicontainerを使って
サービスを構築しているときに生じたエラーがGetting “RESOURCE:MEMORY”
出たときの対応を書き溜め。
Multicontainerのとき、実態はECS EC2インタンスモードで起動するので
ECSでも同様のエラーがでます。(てかECSのエラーというほうが正しい)

広告

先に対策

Dockerrun.aws.json内、memoryの値を小さくする。

これです。

原因

ECSクラスターで使用するEC2に割り当てられているメモリ以上を指定すると
アプリケーションは起動せずエラーを起こします。

公式によると、

コンテナに適用されるメモリの量 (MiB 単位)。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます

だそうです。

t2.microだと1GiBなので、1024以内に抑えればokです。

それぞれのメモリと相談って感じ。
Multicontainerの場合、
コンテナの合計メモリが1024ということなので気をつけてね。

m5.largeなら8Gibと、インスタンスサイズに依存します。
nginxには、これだけで、Railsにはこれだけ。
みたいな感じでうまく割り振ってください。

詳しくは公式をどうぞ。



じゃあね〜〜。