Home
Slides
Blog
slide.seike460.com
Home
Slides
Blog
Home
Slides
JAWS DAYS 2019
JAWS DAYS 2019
JAWS DAYS 2019
2019年2月23日
AWS
AWS
Serverless
Monitoring
Keyboard Shortcuts
←
→
Navigate slides
Space
Next slide
F
Fullscreen
ESC
Exit fullscreen
Home
First slide
End
Last slide
B
.
Pause
S
Speaker notes
?
Reveal.js help
Close
## AWS Serverlessを活用したサービス監視 JAWS DAYS 2019 清家史郎(@seike460)
###### Who? Fusic Co., Ltd.  清家史郎  @seike460 [](https://twitter.com/seike460) [](https://www.facebook.com/seike460) [](https://github.com/seike460)
### tech - Program Language - PHP - Go - infrastructure - Server - Network - Infrastructure as code - Cloud - AWS SA Professional - Other - Serverless - Vue.js、React
### OSS products - AWS Tools (Go) - [s3ry](https://github.com/seike460/s3ry) (s3 prompt cli) - S3を使いやすくしたCLI - [utakata](https://github.com/seike460/utakata) (Serverless Slack Notificatier) - IcalイベントをSlack通知する
### Organizer - Serverless Meetup Fukuoka
#### Agenda - 抱えていた課題 - 課題を解決する為に必要なもの - 2つのOSS - まとめ
### 抱えていた課題 - Fusicは主に受託案件を多数扱っている中小企業 - 顧客の課題を解決するシステムを提案・構築・納品 - 多数のメンテナンス案件を抱える - 監視の仕組みが必要 - 個別に構築するのは費用の問題がある - 多種多様化する監視対象 - AWSに限らない
### 課題のさらなる言語化 - 増える監視対象 - 増える監視項目 - 増える費用 ### 求められているもの - どんな数の監視対象でも - 柔軟に監視出来る - 費用のかからない仕組み - (AWS以外も)
### 解決出来る仕組み - Service - Mackerel - New Relic - Datadog - OSS - Nagios - Zabbix - Prometheus - サービス利用料 - サーバー費用
### エンジニアとして技術で戦う - 僕の武器 - Webアプリケーションの知見 - AWSの知見 - Serverlessの本番投入経験 ### 監視の仕組みを創る ### Serverlessで創る
### 何故Serverlessで創るのか? - 常時データを送信しても良いエンドポイントの提供 - サーバーを常時起動せずとも実行できるランタイム環境の提供 - サーバー不要な管理レス、運用、費用面での大きなアドバンテージ このアドバンテージを利用しない手はない!
### 技術で戦う - 何と戦うのか - どう戦うのか ### 監視を知る必要がある
#### 入門監視  - 監視のアンチパターン - 監視のデザインパターン
### 監視のデザインパターン - 組み合わせ可能な監視 - 1つのことを行い、またそれをうまくやるプログラムを書け - 協調して動くプログラムを書け - 監視サービスのコンポーネント - データ収集 - データストレージ - 可視化 - 分析とレポート - アラート
### 監視のデザインパターン - ユーザー視点での監視 - ユーザーはサーバーやアプリケーションの状態など気にしていない - 継続的改善 - 世界レベルの仕組みは1週間で出来ない - 作るのではなく買う - 人件費に比べると安いから - 今回の趣旨からは外れるので対象外にする
### 監視サービスのコンポーネント - データ収集 - データストレージ - 可視化 - 分析とレポート - アラート
- データ収集 - Agent - サーバーの状態を監視する - Monitoring - サービスの提供状況を監視する - Error - サービスのエラー状況を監視する
- データストレージ - AWS マネージドサービス - CloudWatch - Dynamodb - S3
- 可視化 - CloudWatch - EC2以外も対象
- 分析とレポート - QuickSight
- アラート - CloudWatch Events SNS - lambdaによるSlack通知
### 創るもの - インシデントの認識 - Agenda - Monitoring - Error - インシデントの記録 - AWS マネージドサービスへデータ送信 - メトリクスの可視化 - アラート - CloudWatch Events SNS - lambdaによるSlack通知
### 倒し方は決まった - Serverless - 監視コンポーネント
### 2つのOSSで戦う - FictionBase - faultline
### FictionBase `AWS managed Runtime Base` https://github.com/fictionbase 情報を集約し、処理を行う架空の基地 ### α版 - ✔️ Done!!!! - 💪 β版!!!! (3/31Release) - ⭐️ production!!!!
### FictionBase Architecture 
### SQSを挟む理由 - Agent,Monitor -> Storage はコンポーネントの入れ替えを困難にする - API Gateway -> lambdaは起動数が大変なことに…
- fictionbase - agent - monitor - endpoint - router - fictionbase - cli
### fictionbase-agent 役割 - Serverの情報をendpointに伝える - リソース情報 ✔️ - プロセス情報 💪 - 各種ログの収集 💪 - Plugin ⭐️ 実装 - Go daemon - goroutineで各種情報取得、endpointへの送信 - 多様な情報も(ほぼ)遅延なく送信
### fictionbase-monitor 役割 - 外部からのアクセス ✔️ - http/https ✔️ - レスポンスタイム ✔️ - サービス提供状況 ✔️ - ssh 💪 - VPC内からのPrivate ACCESS 💪 - Plugin ⭐️ 実装 - Go lambdaの定期処理 - サービス外部から接続を行いユーザーへの影響を監視
### fictionbase-endpoint 役割 - agentとmonitorからのデータを受け取る ✔️ 実装 - API Gateway To SQSのendpointの提供 - serverless frameworkにて構築
構築し終えた頃にタイムリーなpluginが出現 - [horike37/serverless-apigateway-service-proxy](https://github.com/horike37/serverless-apigateway-service-proxy) - API Gateway のServiceProxyを簡単に実装出来る - Kinesis Streams - SQS !!!! 自分の書いたYMLを投げ捨てました
### fictionbase-router 役割 - SQSから各種ストレージにデータを保存 - CloudWatch ✔️ - Dynamodb 💪 - S3 💪 実装 - 定期処理で取得して各種ストレージに保存
### fictionbase 役割 - 集めた情報から自由に処理を組める - 監視通知 ✔️ - Slack ✔️ - SNS 💪 - メール 💪 - CloudWatch Events の 代替 💪 - Plugin ⭐️ 実装 - 定期処理でストレージの情報を元に各種処理を実行
### fictionbase-cli 役割 - FictionBaseの設定を行う為のCLI 💪 実装 - GoのCLI - 利用にあたり、必要な設定を行う
### フィードバックをください - もっと視野を広げたい - これが欲しい - このArchitectureはどうだろう - Twitterで繋がってください - 懇親会で是非フィードバックをください  [](https://twitter.com/seike460)
- FictionBase - Agenda - Monitoring ### Error
### faultline  `Error tracking tool on AWS managed services` [@k1low](https://twitter.com/k1LoW)さんが作成したOSS https://github.com/faultline
以下の機能を提供 - アプリケーションエラーの検知 - エラー情報をマネージドサービスに保存 - WebUiの提供 - サードパーティツールにインシデント登録 - Github - Gitlab - Slack通知
### 監視サービスのコンポーネント - データ収集 - データストレージ - エラー情報をマネージドサービスに保存 - 可視化 - 分析とレポート - WebUiの提供 - アラート - アプリケーションエラーの検知 - Slack通知
### Architecture 
faultline対応言語 - PHP - Go - Ruby - Node
### Slack通知 
### WebUi 
### エラーの `根本` を監視 - アプリケーションの層からエラー監視 - エラーの根本からの、価値の高い情報 - 最速復帰をする為のDeveloper向けの情報 - ユーザーへ最速の復帰を提供出来る
### 入門監視を元に監視OSSを作った(利用した)
### 何が変わるのか - Serverlessで安価にサーバー監視 - 柔軟な仕組みを自分自身で構築出来る - 疎結合にすることで仕組み自体のテコ入れも可能 ### Serverlessのアドバンテージにより課題を解決
### AWS の Serverless がもたらしたもの - AWS マネージドなストレージ - AWS マネージドなエンドポイント - AWS マネージドなランタイム ### Serverlessで目の前の世界を変える体験 ### Serverlessに監視の未来を見た
### 皆様もServerlessで目の前の世界を変えましょう
Thank you! Fusicは技術が大好きなエンジニアを募集しています  https://fusic.github.io
Swipe to navigate
Previous
Next
Related Slides
AWS reInvent 2024サービスアップデートデモ
2024/12/1
View
Amazon Q Developer Proで効率化するAPI開発入門
2024/8/1
View
とにかくAWS GameDay!AWSは世界の共通言語!
2024/3/1
View