AWS Beanstalk でdockerを使う

beanstalk触り始めの時に理解に苦しんだので備忘録。

やりたいこと
aws beanstalk dockerを使ってデプロイする

マルチコンテナを使ったwebアプリのデプロイ

まずはシンプルな構成で、
1インスタンス1コンテナを起動するところから

使った環境
操作端末:EC2 (Amazon Linux)
aws eb cliを使用


beanstalkでdockerを使うにあたって、Dockerrun.aws.jsonというファイルを作る

[ec2-user@ip-10-0-2-9 bs-docker-1]$ cat Dockerrun.aws.json 
{
  "AWSEBDockerrunVersion": "1",
  "Image": { "Name" : "nginx:latest" },
  "Ports" : [{ "ContainerPort": "80"}],
  "Volumes": [{"HostDirectory": "/var/app/current/html","ContainerDirectory": "/usr/share/nginx/html"}]}

jsonに馴染みがないので苦戦。。

今回はEC2で作ったファイルをbeanstalkのインスタンスにデプロイするという形。

Linux上でmkdirでディレクトリを作って、それを丸ごとアップデートしてデプロイする感じ。
Linuxからだとzipする必要がないらしい。
"eb create"コマンドで対話的に環境を作ることができる
アップロードされたディレクトリは、beanstalk上のインスタンスの"/var/app/current"にアップされる。

Windows環境からファイルを作成した場合はフォルダにいれないでファイルを直接zipすればOK(多分)