連載
» 2015年12月18日 05時00分 UPDATE

Docker運用管理製品/サービス大全(6):開発者も知っておきたいDocker管理ツールとしてのAWS Elastic Beanstalkの使い方 (1/3)

数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する特集。今回は、いまさら聞けないDockerとPaaSの関係、BeanstalkでDocker環境を作成した場合の構成や構築手順、運用テクニック、Amazon EC2 Container Serviceとの比較などについて。

[長妻賢, 澤井健,株式会社NTTデータ]

いまさら聞けないDockerとPaaSの関係

 数多く台頭している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を使っています。

Docker管理ツールとしてのBeanstalk

 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環境を解説します。

 BeanstalkのDocker環境を作成すると、「AWS CloudFormation」によりDockerEngineが動作する環境が自動生成されます。作成されたEC2インスタンスの情報は「Amazon CloudWatch」(以下、CloudWatch)で監視できるようになります。

 上記の制限で問題ないようなコンテナー構成の場合は、Beanstalkを使用することができます。

docker_manage6_1.jpg

 下記はBeanstalkで作成されるコンポーネントです(参考)。

EC2インスタンス

 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用のロードバランサーが自動作成されます。

AutoScaling

 Beanstalk用の「AutoScaling」が自動作成されます。

CloudWatch

 EC2のNetworkout(アプリケーションからのネットワークトラフィックの量)に対するアラームが自動生成されます。

docker_manage6_2.jpg

Docker管理ツールとしてのBeanstalkの機能一覧

 ここからはDocker管理ツールとしてのBeanstalkの機能を紹介します。

Dashboard

 Dockerコンテナーの状態やDockerのバージョンなどの情報を確認できます。

docker_manage6_3.jpg

Configuration

 AutoScalingなどの設定を変更することが可能です。

docker_manage6_4.jpg

Logs

 DockerコンテナーのログやDockerコンテナー内のログを確認できます(「BeanstalkでDockerコンテナーのログを収集するには」参照)。

docker_manage6_5.jpg
docker_manage6_6.jpg

Monitoring

 Auto Scaling グループなどのCPU、ディスク、ネットワークの使用率が監視できます。

docker_manage6_7.jpg

Alarms

 Monitoringのしきい値に合わせて通知を行えます。

docker_manage6_8.jpg

Events

 Beanstalkのイベントが表示されます。

docker_manage6_9.jpg

Tags

 Beanstalkのタグです。EC2、ロードバランサー、AutoScalingの全てにタグが適用されます。

 ただしタグを設定できるのは、Beanstalkの環境作成時のみです。AWSのサポートに確認したところ、「環境作成後にタグを変更することはできない」との回答でした(個々のEC2などのタグを変更することは可能ですが、この設定変更はBeanstalkのタグ画面には反映されません)。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。