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(多分)