EC2上のDockerコンテナーのプロセスを停止させるには、下記コマンドを使います。
docker stop {コンテナーのID}
kill {コンテナーのプロセスID)
両方ともコンテナーを停止した直後にコンテナーが再生成されます。
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(Amazon マシンイメージ)を使用する場合は、一度デフォルトで環境を作成し、その後にカスタムのAMIでEC2を作成し直す必要があります。
「Beanstalkを使ったDockerのクラスター環境を構築」に従いDockerの環境を作成します(参考)。
作成されたEC2インスタンスをAMI化し、新しいEC2インスタンスを作成します。
作成された新しいEC2インスタンスをカスタマイズし、カスタマイズされた内容をAMIで保存します。
保存されたAMIを作成したDocker環境に設定します。
環境のナビゲーションペインの「Configuration」をクリックします。次に、「Instances」の横にある「編集」をクリックします。「Custom AMI ID」ボックスの値に作成したAMIを設定します。「Apply」ボタンを押すと、EC2インスタンス、AutoScalingの設定が自動的に変更されます。
今回は、BeanstalkのDocker管理ツールとしての側面について解説しましたが、いかがでしたでしょうか。最後に、ECSとの機能の違いをまとめておきます。これらの違いを意識して、使い分けてみてはいかがでしょうか。
BeanstalkはECSと比べると下記の機能があります。
一方で、ECSと比べると下記の機能がありません。
次回も、Docker管理サービスを紹介しますので、お楽しみに。
NTTデータで基盤系技術者として各種開発に従事。運用管理製品Hinemosをクラウドに対応させるべく開発をしつつ、AWSにおける運用を議論するコミュニティ「OpsJAWS」の立ち上げに携わるなどしている。
富山県出身。NTTデータに入社後、PostgresForestやHinemosの開発、保守、導入支援に携わり、今はHinemosのクラウドへの普及展開を進めている。休日は仕事を離れ、宝塚観劇のため日比谷や兵庫に訪れるなど趣味を満喫している。
Software Design plusシリーズ『Hinemos 統合管理[実践]入門』(共著:技術評論社)
所要時間わずか10分で「Docker」を体験しよう――Azureで始めるDocker入門
Linux/OSSに不慣れでも大丈夫! WindowsでDockerを扱う際のポイント
Docker代替のコンテナーランタイム「Rocket」をCoreOSが公開
Docker、そしてCloud FoundryとPaaSの価値とは
レッドハットが発表したOpenShift Enterprise 3は「Dockerを知らなくても使える」基盤
米グーグルのDockerコンテナ管理サービスが一般提供開始Copyright © ITmedia, Inc. All Rights Reserved.