数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する特集。今回は、いまさら聞けないDockerとPaaSの関係、BeanstalkでDocker環境を作成した場合の構成や構築手順、運用テクニック、Amazon EC2 Container Serviceとの比較などについて。
数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する本特集「Docker運用管理製品/サービス大全」。前回は、AWSのDocker管理サービス、Amazon EC2 Container Service(以下、ECS)を紹介しました。今回は、AWSが提供するPaaS「AWS Elastic Beanstalk(以下、Beanstalk)」のDocker管理ツールとしての側面について、概要と使い方を解説します。
基本的にBeanstalkはPaaSであるため開発者向けですが、開発者としてもDockerを活用する場面は多いので、知っておいて損はないと思います。これまでPaaSというと、「どの開発言語の実行環境が対応しているか」が開発者の間で話題になることが多かったですが、BeanstalkがDockerにも対応したことで、PaaSの位置付けが大きく変化したといえるでしょう。オープンソースソフトウエア(OSS)のPaaS基盤であるOpenShiftやCloud FoundryもDockerへの対応を表明しています。
なお今回の内容は、Beanstalkが2015年7月の記事執筆時のものです。環境構築手順の紹介で扱うDocker自体のバージョンは1.6を使っています。
Beanstalkでは、DockerEngineがインストールされたAmazon EC2(以下、EC2)インスタンスを作成し、単体または複数のコンテナーを動かすことができます。
Beanstalkでは「Dockerfile」「Dockerrun.aws.json」(Dockerレジストリからイメージを取得)、「DockerfileとDockerrun.aws.jsonを含めたzipファイル」の3形式を使用できます。
Beanstalkは裏ではECSを利用していますが、Beanstalkには「1インスタンスに1タスク」という制限があります。Beanstalkは1タスクのコンテナーを持つDockerEngineのホストを増減させることでスケールを行います(コンテナー単位ではなくホスト単位のスケールです)。
ここからは、Beanstalkで作成できるDocker環境を解説します。
BeanstalkのDocker環境を作成すると、「AWS CloudFormation」によりDockerEngineが動作する環境が自動生成されます。作成されたEC2インスタンスの情報は「Amazon CloudWatch」(以下、CloudWatch)で監視できるようになります。
上記の制限で問題ないようなコンテナー構成の場合は、Beanstalkを使用することができます。
下記はBeanstalkで作成されるコンポーネントです(参考)。
DockerEngineがインストールされたEC2インスタンスが自動作成されます。EC2インスタンスでは下記のプロセスが起動しています。
ps -ef | grep docker root 1265 1 0 02:12 ? 00:01:00 /usr/bin/docker -d root 1589 1 0 02:12 ? 00:00:00 docker events root 26261 26226 0 05:38 ? 00:00:00 docker logs -f f03f57d4f67e
Beanstalk用のセキュリティグループが自動作成されます。インバウンド22、80のポートが設定されています。
Beanstalk用のロードバランサーが自動作成されます。
Beanstalk用の「AutoScaling」が自動作成されます。
EC2のNetworkout(アプリケーションからのネットワークトラフィックの量)に対するアラームが自動生成されます。
ここからはDocker管理ツールとしてのBeanstalkの機能を紹介します。
Dockerコンテナーの状態やDockerのバージョンなどの情報を確認できます。
AutoScalingなどの設定を変更することが可能です。
DockerコンテナーのログやDockerコンテナー内のログを確認できます(「BeanstalkでDockerコンテナーのログを収集するには」参照)。
Auto Scaling グループなどのCPU、ディスク、ネットワークの使用率が監視できます。
Monitoringのしきい値に合わせて通知を行えます。
Beanstalkのイベントが表示されます。
Beanstalkのタグです。EC2、ロードバランサー、AutoScalingの全てにタグが適用されます。
ただしタグを設定できるのは、Beanstalkの環境作成時のみです。AWSのサポートに確認したところ、「環境作成後にタグを変更することはできない」との回答でした(個々のEC2などのタグを変更することは可能ですが、この設定変更はBeanstalkのタグ画面には反映されません)。
Copyright © ITmedia, Inc. All Rights Reserved.