開発者も知っておきたいDocker管理ツールとしてのAWS Elastic Beanstalkの使い方:Docker運用管理製品/サービス大全(6)(3/3 ページ)
数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する特集。今回は、いまさら聞けないDockerとPaaSの関係、BeanstalkでDocker環境を作成した場合の構成や構築手順、運用テクニック、Amazon EC2 Container Serviceとの比較などについて。
Dockerコンテナーの障害の自動復旧
EC2上のDockerコンテナーのプロセスを停止させるには、下記コマンドを使います。
docker stop {コンテナーのID}
kill {コンテナーのプロセスID)
両方ともコンテナーを停止した直後にコンテナーが再生成されます。
BeanstalkでDockerコンテナーのログを収集するには
Dockerコンテナー内のログをBeanstalkで収集するには、Dockerrun.aws.jsonにLoggingオプションを追加します。
下記のDockerrun.aws.jsonをBeanstalkでアップロードします。
{ "AWSEBDockerrunVersion": "1", "Image": { "Name": "ishiguroj/docker-repo", "Update": "true" }, "Ports": [ { "hostPort": 80, "ContainerPort": "80" } ], "Logging": "/var/log/httpd" }
コンテナーが起動したら80ポートに何度かアクセスを行います。
Beanstalkの「Logs」の「Request Logs」から「Last 100 Lines」を選択します。
出力されたログのDownloadボタンを押してログを表示させます。
ログの中の「/var/log/eb-docker/containers/eb-current-app/access_log」にコンテナーのhttpdのaccess.logが表示されます。先ほど何回かアクセスしたログが表示されます。
上記の手順でコンテナー内のログをBeanstalkで確認することが可能です。また、上記のログは、Amazon S3の下記のアドレスに15分間保存されます。
BeanstalkでカスタムAMIを使用するには
BeanstalkでカスタムのAMI(Amazon マシンイメージ)を使用する場合は、一度デフォルトで環境を作成し、その後にカスタムのAMIでEC2を作成し直す必要があります。
「Beanstalkを使ったDockerのクラスター環境を構築」に従いDockerの環境を作成します(参考)。
作成されたEC2インスタンスをAMI化し、新しいEC2インスタンスを作成します。
作成された新しいEC2インスタンスをカスタマイズし、カスタマイズされた内容をAMIで保存します。
保存されたAMIを作成したDocker環境に設定します。
環境のナビゲーションペインの「Configuration」をクリックします。次に、「Instances」の横にある「編集」をクリックします。「Custom AMI ID」ボックスの値に作成したAMIを設定します。「Apply」ボタンを押すと、EC2インスタンス、AutoScalingの設定が自動的に変更されます。
Amazon EC2 Container Serviceとの比較
今回は、BeanstalkのDocker管理ツールとしての側面について解説しましたが、いかがでしたでしょうか。最後に、ECSとの機能の違いをまとめておきます。これらの違いを意識して、使い分けてみてはいかがでしょうか。
BeanstalkはECSと比べると下記の機能があります。
- コンテナーのダッシュボード
- AutoScalingの設定機能
- インスタンスの設定機能
- CPU、ディスク、ネットワークのモニタリング機能
- CPU、ディスク、ネットワークのしきい値監視の通知機能
- Dockerコンテナーのログ取得機能
- Dockerコンテナー内のログ取得機能
- 上記ログのAmazon S3への出力機能
- Beanstalkのイベント履歴取得機能
一方で、ECSと比べると下記の機能がありません。
- Dockerコンテナーの多重化機能
- 複数のTaskを1インスタンス上で動かす機能
次回も、Docker管理サービスを紹介しますので、お楽しみに。
筆者紹介
長妻賢
NTTデータで基盤系技術者として各種開発に従事。運用管理製品Hinemosをクラウドに対応させるべく開発をしつつ、AWSにおける運用を議論するコミュニティ「OpsJAWS」の立ち上げに携わるなどしている。
澤井健
富山県出身。NTTデータに入社後、PostgresForestやHinemosの開発、保守、導入支援に携わり、今はHinemosのクラウドへの普及展開を進めている。休日は仕事を離れ、宝塚観劇のため日比谷や兵庫に訪れるなど趣味を満喫している。
- 執筆履歴
Software Design plusシリーズ『Hinemos 統合管理[実践]入門』(共著:技術評論社)
関連記事
- 所要時間わずか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億以上のコンテナを立ち上げているグーグルの経験に基づくサービスだとしている。
Copyright © ITmedia, Inc. All Rights Reserved.