AWS Black Belt Online Seminar AWS上でのログ管理の資料およびQA公開
こんにちは、ソリューションアーキテクトの舟崎です。
2016/11/29に開催されました AWS Black Belt Online Seminar AWS上でのログ管理の資料を公開しました。
また、ご質問の回答についても併せてご覧ください。
Q1: 出力されるlogの文字コードを指定できますか?
CloudWatch Logsの場合に関してはUTF8でログが出力されます。
fluentdの場合は、fluent-plugin-record-modifierというプラグインを使用することで文字コードの変換ができますのでこちらを使用して頂くことも可能です。
参考:https://github.com/repeatedly/fluent-plugin-record-modifier
Q2: Cloudtrailのログは改ざん可能ですか?S3上のログの編集など。
S3 のバケットポリシーで必要な権限をつける事で制御が可能です。例えばput/getなどの必要な権限がある状態であれば、S3に保存されたログをLambda,EC2,EMRなどで取り出して処理をし、保存し直すことで編集が可能ですし、また逆にCloudTrailの保存先バケットに対して権限を付けないことでログの改ざんを完全に防止することも可能です。
またCloudTrailの改竄防止/検知機能としてはDigest Fileという機能があります。Digest FileをValidateする事でログファイルが改ざんされていないか確認することができますのでこちらも活用ください。
Q3: VPC FLow logsはAWSの_基盤側とのネットワーク接続に関するログも出力可能ですか?
VPC FLow logsは、VPC のネットワークインターフェイスとの間で行き来する IP トラフィックに関する情報をキャプチャできるようにする機能です。
ただし、一部のトラフィックはVPC FLow logsに記録されません。下記参考URLの「フローログの制限事項」を確認ください。
参考:http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/flow-logs.html#flow-logs-limitations
Q4: ELBやCloudFrontのアクセスログの時刻はUTCだと思うのですが、タイムゾーンをJSTに設定したEC2とのログの突合等のため、UTCをJSTに変換したクライアント事例ですとか、その方式について情報をお持ちでしたらご教授下さい。ELBのログフォーマット(日時)= 2016-09-30T23:00:11.310667Zhttp://docs.aws.amazon.com/ja_jp/quicksight/latest/user/data-source-limits.html#supported-date-formats
この場合はETL処理ということになるかと思いますので、アクセスログがS3にアップロードされたら、Lambda を実行して変換をかけて保管しなおす。EMRやバッチサーバで変換処理を実行する、等が方法としてあるかと思います。
Q5: 現在、KinesisについてはVPC endpointがないかと思います。そのためインターネット_へ通信が流れることになるかと思うのですが、通信の暗号化など可能でしょうか?(Fluentdに関する質問になって申し訳ないです。) cloudwatch logsについても同様にインターネットへ出るかと思いますが、暗号化はどのようにしたらいいでしょうか?
どちらの場合にもSSL暗号化に対応しておりますので、SSL暗号化を行うことでEnd to Endのセキュアな通信を行う事が可能です。
Q6: Lambdaで作成したアプリケーションからのアプリケーションログを出力する際の最適な出力先はKinesisが良いでしょうか?基本的にはアプリケーションが出したエラー等を記録し、致命的なものとしては即時に検知させたいです、また、ユーザからの問い合わせにも応じやすく出来るよう、最終的には検索可能なサービスに落としたいです。
LambdaはログをCloudwatch Logsにもログを出力しておりますので、そちらをAmazon Elasticsearch serviceになげる事で検索性を高めることもできますし、Cloudwatch Logs 、Kinesis経由でS3にもExportしてそこからRedshift等に送ることも可能です。
これらは要件によって最適なものは変わってきますのでケースバイケース にはなると考えます。
Q7: Kinesis Firehoseを使わずにstreamとlambdaを併用するシチュエーションはどんな時ですか?
Kinesis Firehoseで対応していないサービス(DynamoDB等)にデータを入れたい場合はKinesis Stream+Lambdaを使用するパターンが有るかと思います。
それ以外にも、細かいビジネスロジックをもしLambdaやKCLアプリケーション側で保つ必要があるのであればKinesis Streamを使う場合というのはあります。
今後のBlack Belt Online Seminar のスケジュールは こちら です。次回も多くの方のご参加をお待ちしております。
コメント