LoginSignup
9
12

More than 5 years have passed since last update.

ECSでCloudwatch Logsにログを出力する

Last updated at Posted at 2016-06-24

cloudpack大阪の佐々木です。
Docker1.9からlogging driverにAWSのCloudwatch Logsが追加されたので、ECSで試してみました。

logging driverとは

DockerはImmutable Infrastructureとして構成され、不要になったコンテナは削除され、必要に応じて用意に追加できる構成をとることが多いと思います。なので、ログをコンテナ内に保存させておくと、コンテナが削除されるとなくなってしまいます。そのために外部にログを出力させる必要が出てくるのですが、これを容易に実施できるのが、logging driverという機能です。標準出力にログを出力しておけば、logging driverを使ってログを外部に保存できます。

対応しているlogging driverは下記に記載されています。
https://docs.docker.com/engine/admin/logging/overview/

fluentdがよく使われると思いますが、splunkなんかもあります。

Cloudwatch Logs logging driverの使い方

logging-driverにawslogsを指定して、オプションとして、リージョンとロググループを指定するだけ!
超簡単ですね

ECSで使ってみる

CloudWatch Logsの画面からロググループを作成します。

Kobito.LjqebH.png

Kobito.7mPSpE.png

ecs-cliでECSクラスタを作成します。
対応しているECS Agentのバージョンが1.9.0以降ということで、ECS optimized AMIの2016.03.bが必要になります。
http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/using_awslogs.html
今回は2016.03.c(ami-095dbf68)を使用しました。

$ ecs-cli up --capability-iam --keypair KeyName --image-id ami-095dbf68

ecs-cliの使い方は下記も見てください。

環境ができたらWordpressを立ち上げてみます。

docker-compose.yml
wordpress:
  image: wordpress
  mem_limit: 268435456
  ports:
    - "80:80"
  links:
    - mysql
  log_driver: awslogs
  log_opt:
    awslogs-group: "ecs-log-group"
    awslogs-region: "ap-northeast-1"
mysql:
  image: mysql
  mem_limit: 268435456
  environment:
    MYSQL_ROOT_PASSWORD: password

logging driver関連は下記の部分だけです。

  log_driver: awslogs
  log_opt:
    awslogs-group: "ecs-log-group"
    awslogs-region: "ap-northeast-1"

起動します。

$ ecs-cli compose service up

インスタンスのIPアドレスにブラウザでアクセスすると、Wordpressが立ち上がっています。
Kobito.rAjF1B.png

Cloudwatch Logsを見てみます。

Kobito.USOkS0.png

ログが出力されています。

まとめ

Cloudwatch Logs logging driverを使えば、ECSのコンテナのログを簡単にCloudwatch Logsに保存できます。
Cloudwatch Logsのアラートと組み合わせることができるので、ログの管理だけでなく、監視等も簡単にできるのではないかと思います。

9
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12