DockerfileからコンテナをEC2にデプロイする方法は、基本的には AWS Elastic BeanstalkでDockerコンテナをデプロイしてみた の手順に従えばOKだった。
上の記事でデプロイしているGhostのDockerfileの代わりに、こちらで試したPentahoのものを使った。Elastic BeanstalkにアップロードするDokcer向け設定ファイルは下を使った。
{
"AWSEBDockerrunVersion": "1",
"Image" : { "Name" : "wmarinho/pentaho-biserver:5.1-TRUNK" },
"Ports" : [{ "ContainerPort": "8080" }]
}
Elastic Beanstalkのデフォルトの m1.micro インスタンスだとメモリが足りずにコンテナのセットアップに失敗した。なので、コスパなど考慮してt2.small インスタンス (メモリ2GB, $0.04/hour) に変更した。このt2.smallインスタンスはVPC環境でしか使えないやつなので、とりあえずデフォルト設定のVPCサブネットをAWS管理画面から作成しその中にElastic Beanstalkのアプリケーションを作成した。また、今回はお試し起動でロードバランサは不要なので「シングルインスタンス」の環境タイプにした。
Dockerfileのアップロードから10分弱でインスタンスの起動が完了。Beanstaslkアプリの作成時に設定したホスト名 ***.elasticbeanstalk.com にブラウザでアクセスするとPentahoのログイン画面が表示された。サンプルレポートも問題なく表示された。
Refernce: こちらに似たようなことをやっているムービーがある