8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ecs-cli composeを使用してFireLensからDatadogへログを送信するYamlの記述方法

Last updated at Posted at 2019-12-10

TL;DR

ecs-cli コマンドでDocker Compose YamlからTaskDefinitionを生成してデプロイが可能です。
ですが、これを使ってFireLensを具体的にどう記述すればよいのか良い記事を見つけられなかったのでメモしておきます。
公式のREADMEで完全に理解できなかった私のような人向けです。
ついでにDatadogの設定方法も記載しておきます。

記述方法

さくっと例を記載します。

docker-compose.yaml
version: '3'
services:
  app:
    image: nginx
    ports:
      - "80:80"
# 以下がログ関連設定
## log driverにfirelensを指定
    logging:
      driver: awsfirelens
      options:
        Name: datadog
        apiKey: "hogehoge"
        dd_service: "app-service"
        dd_source: "nginx"
        dd_tags: "project:example"
        provider: "ecs"
# FireLens本体
  log_router:
    image: 906394416424.dkr.ecr.ap-northeast-1.amazonaws.com/aws-for-fluent-bit:latest
# FireLens自体のログはCloudWatchLogsへ出力
    logging:
      driver: awslogs
      options:
        awslogs-group: firelens-container
        awslogs-region: ap-northeast-1
        awslogs-stream-prefix: firelens
        awslogs-create-group: "true"

FireLensのイメージ取得レジストリはリージョンによって異なるので注意してください。

ecs_params.yaml
version: 1
task_definition:
:
省略
:
  services:
    app:
      essential: true
# FireLens設定
    log_router:
      essential: true
      firelens_configuration:
        type: fluentbit
        options:
          enable-ecs-log-metadata: "true"
run_params:
:
省略

基本はこんな感じで動きます。
fluentbitの設定をS3から直接流し込めたりもします。その場合は ecs_params.yaml を下記のようにしてください。

ecs_params.yaml
version: 1
task_definition:
:
省略
:
  services:
    app:
      essential: true
# FireLens設定
    log_router:
      essential: true
      firelens_configuration:
        type: fluentbit
        options:
          enable-ecs-log-metadata: "true"
# fluentbit設定ファイルをS3に配置して、そのarnを設定
          config-file-type: s3
          config-file-value: arn:aws:s3:::firelens/extra.conf
run_params:
:
省略

また、ecs-cliのバージョンが 1.15.1 の時に下記エラーが出ました。

When awsfirelens log driver is specified in log configuration, a firelens configuration object must be configured in one of the containers.

その場合はecs-cliのバージョンを上げてください。
少なくとも 1.17.0 では発生しなくなってます。

それでは良いECSライフを。

8
3
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
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?