開発者も知っておきたいDocker管理ツールとしてのAWS Elastic Beanstalkの使い方:Docker運用管理製品/サービス大全(6)(1/3 ページ)
数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する特集。今回は、いまさら聞けないDockerとPaaSの関係、BeanstalkでDocker環境を作成した場合の構成や構築手順、運用テクニック、Amazon EC2 Container Serviceとの比較などについて。
いまさら聞けない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への対応を表明しています。
- 「AWS Elastic Beanstalk」でDockerコンテナの作成、管理が可能に
- ユーザーは「PaaS」「IaaS」を求めているわけではない:狭義の「PaaS」を超えようとするレッドハットのOpenShift
- James Watters氏に聞く:Docker、そしてCloud FoundryとPaaSの価値とは
- OpenShift Enterprise 3を発表:DockerでPaaSは離陸し、「分散アプリケーションシステム」に進化する、米レッドハット
- PaaS最新事情:レッドハットが発表したOpenShift Enterprise 3は「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を使用することができます。
下記は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管理ツールとしてのBeanstalkの機能一覧
ここからはDocker管理ツールとしてのBeanstalkの機能を紹介します。
Dashboard
Dockerコンテナーの状態やDockerのバージョンなどの情報を確認できます。
Configuration
AutoScalingなどの設定を変更することが可能です。
Logs
DockerコンテナーのログやDockerコンテナー内のログを確認できます(「BeanstalkでDockerコンテナーのログを収集するには」参照)。
Monitoring
Auto Scaling グループなどのCPU、ディスク、ネットワークの使用率が監視できます。
Alarms
Monitoringのしきい値に合わせて通知を行えます。
Events
Beanstalkのイベントが表示されます。
Tags
Beanstalkのタグです。EC2、ロードバランサー、AutoScalingの全てにタグが適用されます。
ただしタグを設定できるのは、Beanstalkの環境作成時のみです。AWSのサポートに確認したところ、「環境作成後にタグを変更することはできない」との回答でした(個々のEC2などのタグを変更することは可能ですが、この設定変更はBeanstalkのタグ画面には反映されません)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 所要時間わずか10分で「Docker」を体験しよう――Azureで始めるDocker入門
2014年から急速に注目度が増しているコンテナー型仮想化技術「Docker」。すでに多くのLinuxで利用可能な技術ですが、次期Windows Serverでもサポートされる予定です。Dockerとはどのようなものなのか、一度、実際に触って体験してみてはいかがでしょうか。 - Linux/OSSに不慣れでも大丈夫! WindowsでDockerを扱う際のポイント
本連載第31回は「Azureで始めるDocker入門」を掲載しました。掲載後、すぐに「Docker 1.6」がリリースされたので、意図したわけではありませんが、タイムリーな記事になったと思います。今回は、その記事でも紹介した「Docker Client for Windows」をフォローアップします。 - Docker代替のコンテナーランタイム「Rocket」をCoreOSが公開
CoreOSがDocker代替のシンプルなコンテナーランタイムを公開。Dockerの当初の目的であるシンプルなコンテナーを目指すプロトタイプだ。 - Docker、そしてCloud FoundryとPaaSの価値とは
Docker人気を踏まえたとき、Cloud Foundryはどのように位置付けられるのか。PaaSの最終的な価値とは何なのか。AWSとの競合とは。Cloud Foundryの責任者である米PivotalのJames Watters氏に聞いた。 - レッドハットが発表したOpenShift Enterprise 3は「Dockerを知らなくても使える」基盤
レッドハットが2015年7月22日に国内発表したPaaS製品「OpenShift Enterprise 3」の最大の狙いは、Dockerを知らなくてもアプリケーションの開発・運用ができるようにすることだという。ここでは、レッドハットの日本法人の説明に基づき、OpenShift Enterprise 3を紹介する。 - 米グーグルのDockerコンテナ管理サービスが一般提供開始
米グーグルがGoogle Cloud Platform上で提供しているDockerコンテナオーケストレーション/管理サービス、Google Container Engineが2015年8月26日、ベータ段階を終了、一般提供が開始された。毎週20億以上のコンテナを立ち上げているグーグルの経験に基づくサービスだとしている。