課題
タイトルの通りですが、実際ログ(CloudWatch)に出力されるのに10秒〜12秒かかってしまい、困っています。
私が知りたいのは「これぐらいかかるもん」なのか、「Fluend設定ファイルやKinesisの設定等を変えれば、早くなるよ」なのかです。
FluentdとかKinesisに詳しい方の、意見を頂きたく質問致しました。
Fluentdの環境はローカルPCで構築されたDockerコンテナを立ち上げています
ソース
Dockerfile
1FROM fluent/fluentd:v1.10 2 3USER root 4 5# install plugin 6RUN apk add --update-cache --virtual .build-deps sudo build-base ruby-dev \ 7 && gem install fluent-plugin-kinesis -v 3.0.0 --no-document \ 8 && gem sources --clear-all \ 9 && apk del .build-deps \ 10 && rm -rf /var/cache/apk/* \ 11 /home/fluent/.gem/ruby/*/cache/*.gem 12 13# set timezone (Alpine) 14RUN apk --update-cache add tzdata && \ 15 cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \ 16 apk del tzdata && \ 17 rm -rf /var/cache/apk/* 18 19WORKDIR /fluentd 20COPY ./fluent.conf /fluentd/etc/fluent.conf 21 22USER fluent 23
fluent
1<source> 2 @type forward 3 @label @mainstream 4 port 24224 5</source> 6 7<filter **> 8 @type stdout 9</filter> 10 11<label @mainstream> 12 <match kinesis.**> 13 @type kinesis_streams 14 stream_name sample-kinesis-stream 15 aws_key_id "#{ENV['AWS_ACCESS_KEY_ID#']}" 16 aws_sec_key "#{ENV['AWS_SECRET_ACCESS_KEY']}" 17 region ap-northeast-1 18 19 <buffer> 20 @type file 21 path /fluentd/log/kinesis 22 timekey 5 23 timekey_wait 5 24 timekey_use_utc true 25 flush_interval 1 26 chunk_limit_size 1m 27 flush_thread_interval 0.1 28 flush_thread_burst_interval 0.01 29 flush_thread_count 15 30 </buffer> 31 32 <format> 33 @type json 34 </format> 35 </match> 36</label> 37
試したこと・調べたこと
- fluentd公式:bufferタグのプロパティの種類やデフォルト値を参考にしました
- Qiita:ここではKinesis Firehoseを使用した例
- github:aws-fluent-plugin-kinesisプラグインのREADME参考
その他、ネットで「Kinesis Lambda 遅い」などと検索しまたが、有効な情報が見つかりませんでした。
その他
今はFluentd→Kinesis Stream→Lambdaの構成ですが、Fluentd→DynamoDB→LambdaやFluentd→S3→Lambdaも試そうかなと思います。
いずれにせよ、速度は大事にしていきたいと思うので、その他「速度ならこの構成の方がおすすめだよ」というのがあれば、ご教授頂けると幸いです。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/07 09:50