Posted on Apr 25
Elastic Beanstalk は初めてElastic Beanstalk で Docker が使えるようになったそうなので試してみるドキュメントを読むと現時点ではコンテナで Listen している複数のポートを晒すのは非対応のようだ。
You can specify multiple container ports, but AWS Elastic Beanstalk uses only the first one to connect your container to the host’s reverse proxy and route requests from the public Internet.
ああ、残念。EXPOSE させている最初のポートが ELB の 80 ポートにバインドされるようだ。
Elastic Beanstalk で生成されたインスタンスを TerminateElastic Beanstalk で生成された Security Group を DeleteTerminateって感じ。
初 Elastic Beanstalk なのでちょっとだけ何者かを調べたが一言で言うと…
PaaSHeroku や Engine Yard 等(共に使用経験ほぼ無し)と同じ土俵な製品なのかなという位の理解しか無い。すいません。
クラスメソッドさん仕事が速い!
マネジメントコンソールから Elastic Beanstalk を選んでプルダウンから Docker を選択して… Launch Now をクリックするだけ…

以下のような画面に切り替わる。

そして暫くすると以下のような画面になれば準備完了!!

この間に以下のようなことが行われているようだ。
ELB の作成S3 のバケット生成Security Group の生成(後になって環境を Terminate 出来ないよーとなる原因)Auto Scaling のグループ作成Cloud Watch の設定EC2 インスタンスの作成かなりのお仕事を裏でやっててスゴイなあと思いつつ Security Group を消さないと環境を Terminate 出来なかったりするのは要注意(私的見解)。
ウンチクはこれくらいにして、さっそく docker build してみる。参考にさせて頂いた資料を斜め読みすると従来の Dockerfile を直接利用出来る以外に以下から設定出来るとのこと。
DockerfileDocker.aws.json という JSON 形式のファイルDockerfile or Docker.aws.json と ADD する設定ファイル各種そのまま Dockerfile 使えるのが嬉しいですな。ということで既に作成済である以下の Dockerfile を使ってみる。

上図の Upload and Deploy をクリック!

ローカル PC から Dockerfile をアップロード。同時に Version lable を記入する。この Verion Label をいい加減に設定すると怒られる。(何度か試すうちに同じ label とかになると…)アップロードして記入した後で Deploy をクリックすると…

おお、始まりましたな。暫くすると…

おやっと様でした。右上のリンクをクリックすると…

早速ログイン!といきたいところだったがログインが出来なかったので何か設定が足りないようだ…上記の画面が見れるということはInfluxDB の 8083 ポートが ELB で 80 ポートにバインドされているっぽい。では、その他のポートはどこで設定するかな調べなきゃ←イマココ
EC2 インスタンスでも Docker は扱うことが出来るけどボタン一発は嬉しいDockerfile が一応、それなりに動くのも更に嬉しい2014 かっぱのほげふが