Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS Startup Tech Meetup #3: かんたんコンテナロギング選手権
Search
Tamirlan 893 Torgayev
March 25, 2021
Technology
17
7.7k
AWS Startup Tech Meetup #3: かんたんコンテナロギング選手権
コンテナでログをどう取得すればいいの?そもそもどういうログがあるのか?
ログの取得パターンから活用方法まで、 @prog893 が選定のためのヒントとサンプルアーキテクチャで紹介します。
Tamirlan 893 Torgayev
March 25, 2021
Tweet
Share
More Decks by Tamirlan 893 Torgayev
See All by Tamirlan 893 Torgayev
第一回 似てるサービス使い分け大会 / AWS DevDay Tokyo 2023 E-5
prog893
11
3.3k
Startup.fm: スタートアップのためのデータレイク構築の流れ / Startup.fm: Build a Data Lake in steps
prog893
4
2.9k
Startup.fm: SIEM on Amazon Elasticsearch Serviceでログ調査&分析を楽にしよう / Startup.fm: Easier log analysis with SIEM on Amazon Elasticsearch Service
prog893
0
2.5k
Startup.fm: re:Cap for startups - Analytics
prog893
0
250
タップル誕生: オンプレからAWS Fargateまで @ JAWS DAYS 2020
prog893
11
5.6k
KinesisとLambdaでつくるServerlessなログ基盤 @ AWS DevDay Tokyo 2019 [C-2]
prog893
6
4.9k
JAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみました
prog893
4
2.4k
Other Decks in Technology
See All in Technology
プロダクト成長に対応するプラットフォーム戦略:Authleteによる共通認証基盤の移行事例 / Building an authentication platform using Authlete and AWS
kakehashi
1
150
Gradle: The Build System That Loves To Hate You
aurimas
2
140
2024-10-30-reInventStandby_StudyGroup_Intro
shinichirokawano
1
610
話題のGraphRAG、その可能性と課題を理解する
hide212131
4
1.4k
生成AIの強みと弱みを理解して、生成AIがもたらすパワーをプロダクトの価値へ繋げるために実践したこと / advance-ai-generating
cyberagentdevelopers
PRO
1
180
来年もre:Invent2024 に行きたいあなたへ - “集中”と“つながり”で楽しむ -
ny7760
0
450
「 SharePoint 難しい」ってよく聞くけど、そんなに言うなら8歳の息子に試してもらった
taichinakamura
1
580
pandasはPolarsに性能面で追いつき追い越せるのか
vaaaaanquish
4
4.3k
Commitment vs Harrisonism - Keynote for Scrum Niseko 2024
miholovesq
6
1k
[JAWS-UG金沢支部×コンテナ支部合同企画]コンテナとは何か
furuton
3
230
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
9
120k
プロダクトチームへのSystem Risk Records導入・運用事例の紹介/Introduction and Case Studies on Implementing and Operating System Risk Records for Product Teams
taddy_919
1
160
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
The World Runs on Bad Software
bkeepers
PRO
65
11k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
790
Scaling GitHub
holman
458
140k
We Have a Design System, Now What?
morganepeng
50
7.2k
Statistics for Hackers
jakevdp
796
220k
Transcript
© 2021, Amazon Web Services, Inc. or its Affiliates. Tamirlan
Torgayev @prog893 Startup Solutions Architect Amazon Web Services Japan 2021/03/25 かんたんコンテナロギング選手権 AWS Startup Tech Meetup #3
© 2021, Amazon Web Services, Inc. or its Affiliates. Tamirlan
Torgayev (ティーマ) Startup Solutions Architect Amazon Web Services Japan メガベンチャーグループ企業に新卒入社、 様々なメディアサービスのインフラを支援 AWSでスタートアップ支援 好きなもの: Amazon Kinesis、 Amazon ECS、 カメラ!、猫" @prog893
© 2021, Amazon Web Services, Inc. or its Affiliates. 本日のアジェンダ
• ログにまつわるよくある課題 • ログの種類 • ログの転送方法 • 用途ごとに選べる、ログの格納先 • 最適化後のサンプルアーキテクチャ
© 2021, Amazon Web Services, Inc. or its Affiliates. ログにまつわるよくある課題
© 2021, Amazon Web Services, Inc. or its Affiliates. よくあるコンテナアーキテクチャ
• コンテナを活用したアーキテクチャを作れた • リリースもできて、ビジネスも成長している Amazon CloudWatch ECS Task Application Users AWS Cloud Amazon Aurora Application Load Balancer logs user data
© 2021, Amazon Web Services, Inc. or its Affiliates. よくあるコンテナアーキテクチャ
(Cont.) • しかし、ログ周りの構成について考えられていないので、 問題発生時の調査に困ったり、コストがかかったり • とりえあずawslogsでやっている • FireLensとか色々あるけどよくわからない • fluentdの管理大変 • stdoutをparseするのもつらい • ログ周りを作り込むのに時間をかけられない いくつかのログ周りアーキテクチャパターンと選定のヒント、紹介します!
© 2021, Amazon Web Services, Inc. or its Affiliates. AWS
Fargateのメリットと利用時の課題 • Fargateを使うことでサーバ管理不要 • コード、ビジネスに集中できる • しかし、observabilityが課題 • 状況把握のためにログを出力を導入 • 共有ボリュームの容量が少なくログが吐けない • ログ転送のための相乗りを改善したい • New: ECS Execでコンテナへのコマンド実行、 インタラクティブシェルが可能に!
© 2021, Amazon Web Services, Inc. or its Affiliates. そもそもログで何をして欲しいのか
• ログとは • アプリケーションでどの時点で何が起きているかを 把握するための出力情報 • ログをしっかり、全部とりましょう • ログがないと、何かが起きた時に原因調査ができない • アプリケーションの現状を把握することも困難 # 必要なログ、しっかり出力しましょう
© 2021, Amazon Web Services, Inc. or its Affiliates. そもそもログで何をして欲しいのか
(Cont.) • どういうログを取ればいいのか? • アプリケーションとその要件による • 一般的なログ種類を紹介する • ログ転送、保管の方法は? • ログの要件によって最適な格納、転送方法が異なる # 最適な格納方法、転送方法になっていないと、 調査が難しく、コストがかかる
© 2021, Amazon Web Services, Inc. or its Affiliates. ログの種類
© 2021, Amazon Web Services, Inc. or its Affiliates. ログの種類
• ログの種類と、それぞれの種類に対する要件を確認しましょう • 要件によって、適切な転送方法と格納先が変わリます • それぞれの要件に合わせた設計にしましょう • 保持期間、スループット、許容欠損率、活用方法、高速アクセス
© 2021, Amazon Web Services, Inc. or its Affiliates. ログの例
• Access logs: 1年保持、max 1 Mbps、daily 20GB、簡単な調査 • nginxログのような、アクセス情報 • Activity logs: 1年保持、max 1 Mbps、daily 20GB、集約クエリ (BI) • ユーザ行動、SNSならいいね、友達申請など • Error logs: 3ヶ月保持、max 0.1 Mbps、daily 2GB、高度な調査 • エラーの概要 • Trace logs: 1ヶ月保持、max 0.1 Mbps、daily 1GB、閲覧のみ、非構造 • スタックトレースのようなもの • Audit logs: 5年間保持、max 0.1 Mbps、daily 5GB、欠損許容できない • 金融サービスなどにおける監査ログ
© 2021, Amazon Web Services, Inc. or its Affiliates. ログの転送方法
© 2021, Amazon Web Services, Inc. or its Affiliates. awslogs
logging driver Pros: • stdoutに出力するだけ • 転送ロジックの実装不要 • 転送のためのリソース不要 Cons: • 高度な処理は難しい • ログ種類ごとに異なる場所への 格納が難しい • CloudWatch Logsにしか転送できない ! Traceにおすすめ ECS Task Application Docker Daemon logging driver Amazon CloudWatch
© 2021, Amazon Web Services, Inc. or its Affiliates. fluentd
sidecar Pros: • カスタマイズ性が高い • 格納先が選べる Cons: • コンフィグの管理が必要 • カスタムプラグインを使いたい場合、 Docker Imageの管理も • 共有ボリュームへのファイル出力が 必要 • ログローテーション必要 in_tailなどのinput pluginがロテーション検知に対応、 logrotate sidecarを導入することでアプリ変更なしで ロテーション対応可能 ! Access、Activityのような 大容量ログにおすすめ ECS Task Application File output fluentd tail Volume Amazon CloudWatch … …
© 2021, Amazon Web Services, Inc. or its Affiliates. FireLens
Pros: • カスタマイズ性が高い Cons: • コンフィグの管理が必要 !全ログ種類に使える ECS Task Application FireLens (fluentbit) logging driver Docker Daemon Amazon CloudWatch … …
© 2021, Amazon Web Services, Inc. or its Affiliates. 用途ごとに選べる、
ログの格納先
© 2021, Amazon Web Services, Inc. or its Affiliates. ログの格納先と活用方法
• CloudWatch Logs • GUIでログ一覧をみたい • 簡易検索、フィルタリング • S3 • 大量のログを安価に保存 • Athenaを活用することでクエリ可能 • Elasticsearch • Kibanaでの可視化、アラート、高度なクエリ • QuickSight • エンジニアでない人に提供するBIダッシュボード • S3 + AthenaでデータをQuickSightに反映可能 # 要件に合わせて 適切な格納先を選定しましょう
© 2021, Amazon Web Services, Inc. or its Affiliates. ログの格納先と活用方法
(Cont.) • Elasticsearch、3rd party にログを格納するとき、API操作が必要 • Elasticsearch Bulk APIなど • 例えばLambdaを使えば実装できる • しかし、リトライ処理、ログが欠損しないための一時的な置き場所を どうすれば…
© 2021, Amazon Web Services, Inc. or its Affiliates. Kinesis
Data Streamsのログへの応用 • 「保持期間」を活用することでリトライ処理を実装する必要がない • 例えば、Lambdaを使う場合、実行が成功するまでリトライされる • 低レイテンシー • データ収集から活用可能になるまで ~70 ms • 高スループット • 1時間あたり数TBの処理までスケール可能 ここでリトライされる ECS Task Application Kinesis Data Streams AWS Lambda Amazon S3 Amazon Elasticsearch Service
© 2021, Amazon Web Services, Inc. or its Affiliates. サンプルアーキテクチャ
© 2021, Amazon Web Services, Inc. or its Affiliates. End-to-end
logging architecture primer ECS Task Application FireLens (fluentbit) logging driver Kinesis Data Streams AWS Lambda Amazon S3 Amazon Elasticsearch Service Amazon CloudWatch Amazon QuickSight Activity logs 可視化、BI All logs Access, error logs 調査、可視化、アラート Trace logs Activity logs クエリ Amazon Athena
© 2021, Amazon Web Services, Inc. or its Affiliates. 欠損の考え方
• ログでいうところの可用性は欠損率 • 可用性とコストのトレードオフ • どこまでの欠損率が許容できるのか • 例えば、fluentdやfluentbitの急停止によるmemory buffer上のログの 消失の対策は: • awslogs • Kinesis Data Streamsへの直接書き込み • fluentd/fluentbit → EC2集約サーバ (disk buffer) 欠損が許容できないなら、DBに書き込んだ方が良いのでは?
© 2021, Amazon Web Services, Inc. or its Affiliates. 最後に
• ログの考え方は、コンテナでもそうじゃなくても一緒 • コンテナではlogging driverなどで、難しく考えられがち • ログをどうすればいいのか、ログの要件、転送方法や格納先は変わらない • 要件に合わせた、将来性・拡張性のあるアーキテクチャを目指しましょう • ビジネスがさらに成長したら、 アーキテクチャを大きく変えなくてもいいように • 溜まったログを活用しましょう • パフォーマンス改善、トラブルシュート、BI コンテナな人もそうじゃない人も、ログアーキテクチャを最適化しましょう!